Integrate TextChatService:CanUsersDirectChatAsync or TextChannel:SetDirectChatRequester API to Comply with Settings

Thats a great idea and suggestion. While we didnt have any initial plans to do this, it might be interesting to see how easy this would be to add. This is not a commitment, but I will write this idea down for consideration.

14 Likes

Thank you for the detailed reply! That sounds reasonable - I presume that system messages are exempt because they’re not user-initiated.

Would it be possible to make TextChannels require using :SetDirectChatRequester(), and allow nil to represent the server as the requester (for cases like system messages)? This would:

  • prevent people from missing adding this function to their code if it’s actually needed.
  • remove ambiguity about the system, because the code handles more of the details.
  • prevent a whole lot of moderation cases based on a programming mistake (that doesn’t throw any warning or errors).
5 Likes

My game uses legacy chat but heavily modified both the chat bubbles and the chat box window to my personal preference. (including making the distant chat bubble UI have randomized texts, making certain error messages not show up and etc)

The heavy modifications are done on purpose for the style the game is going for, since I am not fond of some parts that roblox’s new chat has, which I could try to make similar modifications to what I’ve done for my game’s legacy chat however it seems I could only customize the UI of it. Which means I cannot make the new chat have a modified distant chat bubble, nor prevent certain error messages showing up on the chat box window.

So what I’m getting here is that even if I implement the API into my heavily modified legacy chat, I still have to migrate to TextChatService anyway?

I’d like to point out that a game like Deepwoken also does use legacy chat judging by the old chat bubbles, and I’m sure there are a good amount of games that use either custom chat or legacy chat. It is all by preference or part of how the game is supposed to be styled.

By the way my modified legacy chat does this:
image

14 Likes

This is such a power-playing guideline and just makes implementing custom chat solutions more painful. Why can’t we just translate and filter text on the server for each player? Why do we have to link who the chatting users are, and who started it?

The answer is Roblox wants to be able to listen in on everything said in our games. They can’t determine who is saying what if you bypass their chat system and send it all through remotes.

Which begs the question–why would they need to track that? Moderation is already taken care of with text filtering, so they must have some other ulterior motives.

12 Likes

Legal reasons. If your experience has a bad actor saying bad things, then even if it’s moderated, Roblox would still be liable for your custom chat API not letting them see the bad actor talking.

11 Likes

We require the following two features to be added in order to move our game over to TextChatService by the deadline:

Please add both (they are incredibly easy fixes that will take maybe an hour), otherwise we will be unable to switch

13 Likes

Honestly this is mostly confusing for me and I might just wait to see if I’m effected. I think this just effects direct messaging with other users?? But I don’t even know if I’m using legacy or the new chat? And why would it matter without any form of direct messaging besides just bubble chat?

Slightly confused, oh well!
My game uses a slightly custom chat system just to display the messages, but everything else is built in, so I guess I just hope I’m not effected? ???

5 Likes

I’m a little confused by these new rules, I currently have a game that has custom chat only for “admins” of the experience that works across different places. Right now the custom chat goes through the FilterStringForBroadCast, and then goes through MessagingService to be replicated to other places. If i update my custom chat to use TextChannels, can I still send the messages to other places through MessagingService?

2 Likes

People are confused about Fork Chats requirements, is this meant to be the following?

  1. Either:
    a. Forked version of the legacy chat system

b. Custom chat that does not use legacy chat system or TextChatService as its backend|By January 30, 2025
Integrate TextChatService: CanUserDirectChatAsync API and check that Whisper and direct chats are gated by this method;

OR

By April 30, 2025
Migrate to TextChatService

If not the case, are we actually required to fully use TextChatService on April 30, 2025?

3 Likes

i don’t understand why Chage something when its ok i use Roblox chat in my games i don’t use voice

3 Likes

A reminder that not all developers can even migrate over to this because cross-server communication, in-transit message editing and message history just don’t exist as features. This effectively kills off social-deduction games as many become easier to exploit. Cross-server messaging systems also just outright became a no-go. Please do re-consider this change in favour of a different API structure that doesn’t shoot down these use-cases. :pray:


Why wasn’t CanUsersChatAsync considered for this, it seems to have the exact same documented purpose? Is CanUsersChatAsync used for a different purpose?

10 Likes

is there a way Xbox can use chat to say hello on Roblox?

4 Likes

As I stated before and will say again, please dont moderate people who forked the chat in the past.

I dont know which games I forked it in.

5 Likes

I agree. Roblox should have grandfathering policies. E.g. Something like “Experiences created before [DATE] are exempted from this policy change.”

5 Likes

I can’t miss the opportunity to voice this:

Enabling the new TextChatService, in any capacity, will grind my experience to a laggy halt. There are significant performance issues when dealing with many players, StreamingEnabled, non-standard characters (particularly without a Head) and Persistent characters over long distances.

6 Likes

You’re leaving us in the dark on how to migrate!

4 Likes

Does Chatted still work? Since I’ve heard posts talking about how it’s not very compatible friendly with TextChatService.

4 Likes

According to this, messages from admin commands don’t count as a “chat” so it doesn’t need to go through TextChatService. But it still has to be filtered.

4 Likes

It definitely isn’t friendly. I don’t know how can I check if player wants to directly message somebody, because there’s no variable that says so. Let me consider the fact I cant listen to specific TextSources speaking compared to Speaker API of L U AChatService.
It’s so limiting I swear.
Chatted should still work, but you can’t tell if player is trying to whisper to someone else.

4 Likes

I would assume that by the time the migration deadline hits, TextChatService will be fully up to date with both the legacy chat and also have additional features that lets you do things like this

3 Likes