New In-Experience Text Chat System Public Release!

Have you read the documentation for TextChatService | Roblox Creator Documentation?

1 Like

No, i think you guys patched it :partying_face:

1 Like

I have, and I did try using this event in a server script. It doesn’t seem to pick up any messages. Maybe this is a bug? Unless I’m misunderstanding how to use it.

game:GetService('TextChatService').MessageReceived:Connect(print)
1 Like

I think it would be really nice if you could click/tap through the background of the chat window, like you can with the old chat if you set the DisplayOrder of your UI to be above the old chat, since we can’t do that with the new chat.

4 Likes

How can I reenable the /me command again? Is there a new possible way to do so?

I’m so happy to see this released, but it’s in an unfinished state.

Quite a few features of the old chat don’t seem to be here at the moment, this includes:

  • /clear and /cls chat commands, used for clearing the chat for the LocalPlayer
  • Tabs for channels don’t seem to be supported by the looks of it
  • /me isn’t supported by the sounds of it, sorta understandable, but it would still be nice to be a toggleable command

Quite nice to see the /version command get some love though, hasn’t been updated for standard chat since 2018 by the looks of it.

2 Likes

I assume that it has been disabled for now. @SubtleShuttle can we get a ETA for when we are getting it back?

We’re looking into this issue! The default chat UI should still work normally,

2 Likes

I noticed that it is no longer possible to initiate the /w and /team commands by clicking on names and team tags in the chat window under the new system. It was really convenient to just click on someone’s name and enter a private message rather than manually type the /w command and a portion of the recipient’s name. And the /w command now only initiates when a portion of the player’s display name is entered, not their username. Will this functionality be restored in the future?

2 Likes

If possible, click in whisper command can rewrite who you are whispering to, which legacy can’t.

1 Like

This should be rolling out in the coming few weeks!

4 Likes

Suggestion :
Add backward compatibility with the old chat system so it is way easier to add chat tags

2 Likes

Hey! After using a packet profiling tool, I’ve noticed that the chat system sends quite a bit of data whenever a player messages:
image
image
Sending each message roughly takes ~600 bytes of data, since there’s a remote both for when the message is done filtering, and when the message is sent & replicated.
Would it be possible for optimizations to be put in place for this? Most notably:

  • Packing & unpacking the data from a dictionary to an array would save a ton of space - strings take up a lot of byte size!
  • Sending the Player object who initiated the message only takes 4 bytes, and would eliminate having to send SpeakerDisplayName (inferable through Player.DisplayName) and SpeakerUserId (inferable through Player.UserId).
2 Likes

To confirm, this reading is from the previous lua chat system? The contents seem to indicate that.

Sorry, yeah! I’ll compare it to the new chat system in a moment.

It seems like the new chat system does not rely on RemoteEvents for communication, at least nothing that the profiler plugin can pick up - is text communication handled directly through TextChannel instances now?

Yup, its handled through instances directly and can’t be spied on in the same way RemoteEvents can. TextChatMessages are replicated with an internal remote event.

For client → server, we send:

  • message text as string
  • message metadata as string
  • messageId as string (guid)
  • textChannel instance reference
2 Likes

Thanks for the information!
Would it be possible to be able to expose any form of events which would allow for reading what’s being sent & received respectively? It’d be really helpful for helping measure how much network bandwidth one’s games take, without leaving ‘mysterious areas’ that aren’t accessible.

1 Like

When message text is filtered? Is there any chance to turn filtered text into Soundex version of it?

Will there be a way to edit built-in scripts (like emote script)?
It would give me some freedom, when it comes to tweaks.

1 Like