Migrate to TextChatService: Removing Support for Legacy Chat and Custom Chat Systems

Is there any way to get this chats chat bubbles to not be behind other UIs
image

1 Like

I doubt people will want to use sticky notes instead of discussing in a chat window

yeah no i believe that’d be more annoying to work with, just keep the team chat, we love our little small talk every now and then

A bit late on responding here but I like this and will definitely give the credit to Roblox where due - They are giving us a very large chunk of time to adjust our experiences to match their new standards, which has not always been the case, and at the same time also appears to be taking a big step in addressing a major issue which is the child safety issue that has plagued Roblox for a long time.

Why /e messages don’t count for chatwindowadded or incomingmessage? I ain’t going to create these command instances for stuff like spell casting through chat with /e, that’s absurd. Also what’s the deal with the player keeping on jumping when u hit the / to open chat while jumping, why do I have to come up with a custom solution to make the character stop jumping as expected?! If you’re going to force us to migrate to your new chat system y’all better make sure it’s actually better than the old one. Y’all be constantly pushing incomplete updates and forcing them down our throats

This is a terrible idea. The older Chat system had functions and events which TextChatService doesn’t have. Many things like TheDevKing’s Funny Scripting Ideas stops working, and Player.Chatted is used for many things like Chat based commands. Is there a TextChatService version of Player.Chatted?

Yes, there is. There’s probably even more than I say here!

Player.Chatted (works on the Server only)

TextChatService.OnIncomingMessage - (client only, only 1 works at a time naturally)
TextChatService.MessageReceived - (client only, perhaps other issues)

TextChatCommand - (hides chat message)

The issues mentioned here can be solved easily.

Is there any news of fixing the slow ExperienceChatMain?? I refuse to switch till this has been fixed, it severely affect my game’s framerate, any date of removal shouldn’t have been released whilst crippling bugs like this exist

The issue is that all of these are client-only. As far as I’m aware, an equivalent that exists on the server has not been made yet.

This event has a vulnerability: An exploiter can not fire it.

Sorry, I don’t really understand. Did you mean an exploiter can fire it?
What would make them unable to do so make this a vulnerability?

An exploiter can modify their chat system so as not to cause this event to be fired, even when they chat. The developer couldn’t see or detect their message on the server.

1 Like

It was probably the same with the old chat then, wasn’t it?

We can still create and publish new experiences that use the Legacy Chat System. It’s 18 December 2024 today, is this a bug or an oversight or did you backtrack to implement this change?

1 Like

I don’t know how to trigger an event when a message in TextChatService has been received, I tried using MessageReceived and OnIncomingMessage. But it doesn’t work. Here is my script:

local TCS = game:GetService("TextChatService")

local function textc()
print("Chat!")
end

TCS.OnIncomingMessage:Connect(textc)

I want to be able to detect a text message in Chat. In the TextChatService of my experience, the ChatVersion is set to TextChatService, not LegacyChatService.

MessageReceived can be used on the client to get when a message is received, are you sure you implemented it correctly?

Also, OnIncomingMessage is a callback, not an event. Callbacks always return something and are written like this:

TextChatService.OnIncomingMessage = function(textChatMessage)
    local textChatMessageProperties = Instance.new("TextChatMessageProperties")
    return textChatMessageProperties
end

From what I can understand, after TextChannel:SendAsync() is called by a client:

  1. SendingMessage immediately fires on that specific client.
  2. The server receives the message.
  3. TextChannel.ShouldDeliverCallback is invoked on the server for each TextSource present under that channel. If it returns false for a specific TextSource, that client will not receive the message.
  4. The server sends the message to all relevant clients.
  5. OnBubbleAdded is invoked on the client to optionally modify the chat bubble for that message.
  6. OnChatWindowAdded is invoked on the client to optionally modify the visual chat message appearance in the chat window.
  7. OnIncomingMessage is invoked on the client to optionally modify the message text.
  8. MessageReceived then fires on the client with the final results of the message.
1 Like