TextChatService is now the default for new experiences!

Hi Developers,

We are excited to announce that after months of bug fixes and ensuring stability, we are making TextChatService the default in Studio for new experiences! This change does NOT affect your existing experiences.

What is TextChatService?

We’re investing heavily into TextChatService as the new Roblox in-experience text chat system. It is a secure, modern, and easily extendable chat that is a successor to the existing Chat service. This system is more sustainable for engineers at Roblox to iterate on, which means that we will be delivering regular fixes and new features to TextChatService that shouldn’t conflict with any code you may have written that uses it.

Why use TextChatService?

The primary reason we are moving forward with TextChatService is to ensure a secure chat for our experiences and users. The legacy chat system has vulnerabilities that led to security incidents, and the way it allows for forking has made it difficult for us to ship fixes and security updates. We don’t want our users or developers to have to worry about their chat not being safe, so our goal with TextChatService is to ensure a secure chat system, while still providing reasonable (and easier!) developer customization through regular updates.

What’s next?

  • We will be addressing developer needs for their experiences to migrate to TextChatService. Top examples include granular bubble chat customization and TextChannel UI support.

  • As we are no longer maintaining it, we will mark the legacy chat service and its APIs as deprecated.

    • You can still use legacy chat in your experiences, but it will no longer be actively maintained.

    • We will not require TextChatService for new experiences until a majority of developer needs are addressed.

How to switch to TextChatService

If you already have an existing experience, please read this guide on how to enable TextChatService. Some additional work may be necessary depending on your current chat use cases, so we’ve created the following docs to help you migrate:

If you have any difficulties migrating your experience to TextChatService, please reach out to us.

How to opt-out of TextChatService

If you wish to go back to the legacy chat, you can set TextChatService.ChatVersion to LegacyChatService:

If you opt-out, please let us know why so we can improve TextChatService to address your needs.

Special thanks to @be_nj, @Clasifex, @daweezy99, @Loonatheexodus, @Roblorcah, and @SubtleShuttle for their work on TextChatService!


This topic was automatically opened after 10 minutes.

This change is positive if and only if there will always be backwards compatibility, or at least until the legacy chat system has absolutely no use.

Good work to the engineers who have been working on this, and I hope to see some updates soon!


It would help out a lot if we could modify almost all the properties of each chat message as well as the bubble chat properties! Understandable if not though, it is in coregui.

For example, the voice chat icon looks bad over a black chat bubble.



Continuing the discussion from TextChatService is now the default for new experiences!:

I really love the new TextChatService because it’s easier to use and looks better than the legacy system. The only reason I have still opted out is because it doesn’t have default channel tab UI like the legacy system does. Will this be implemented soon?


Excuse me if I just don’t know if this is a thing yet, but will we ever get the ability to change the UICorner on the new UI’s?


This was answered in the original post:


My only complaints are the default keybind for chatting being é instead of / (CAFR keyboard) and having to convert my chat commands that used .chatted event. There’s no easy way to do it (unless you use filtered text which would break the commands if they do get filtered)


I really like this update!
Only one question, will the Chat that we already have (the one before this) still work?
(Also why don’t you update that Chat instead of creating a new one?)


Backwards compatibility! Wouldn’t want to break the other 99.9% of games, would we?

1 Like

I also meant in the future if it’ll become obsolete

(I don’t understand if it’s sarcasm or not)

Channels and developer UI injection portals yet? Only things stopping me from adoption, need channel tabs and a button to expand/reduce the chat window.


Finally! This update is way overdue lol. The current chat filtering is… janky, to say the least. Not entirely related, but is the new anti-cheat that got announced at RDC coming anytime soon?

This has no change of how the chat filtering works. This is just an API and UI upgrade.


They said that it is easier for engineers to improve it this way. While it won’t be better right off the bat, it will definitely be improved over time. Sorry, I guess I should have clarified that that’s what I meant.

1 Like

As a Roblox developer, this is frightening as it implies that at some point TextChatService will be forced?


This is a pretty great update that I’ve been using since it came out, just the most annoying thing right now is you can’t copy and paste the properties for the chat, you have to take a screenshot, and then edit each property one-by-one whilst looking at your screenshot of your other place’s chat properties.

1 Like

Any ideas when this’ll go live? It’s the only thing keeping me from migrating so we unfortunately have to opt out until it’s addressed. :sad:


It would be nice if we had some sort of TextChatMessage:GetChatColor() so we could utilize the new feature where the colon is now part of the prefix.

1 Like

I like this update as the new chat bubble feels modern.