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

I don’t exactly trust Roblox moderation with going about this change, to be blunt, nor am I particularly fond that this is occurring in the first place when I still find TextChatService to be terribly more annoying to work with than the legacy chat system.

TextChatService just doesn’t have the same level of feature parity out of the box as the Lua Chat System. Accomplishing the same things you could do relatively easily with the legacy system requires more work. The biggest problem is the default interface being locked to the CoreGUI, meaning that you cannot modify it in any way. If you want to have anything close to the original system, you have to create your own GUI entirely, which can be a headache for many developers.

And then there are the other issues, highlighted by many a reply in this thread.

It’s like every year Roblox decides to attempt a change that rug-pulls developers and forces them to scramble and change their code, and it’s really, really exhausting.

I’m not surprised, but I’m still disappointed, honestly.

3 Likes

My game Poser relies on a fork of the legacy chat system. I don’t want to be forced to switch over to TextChatService, if I can find a way to do it. I understand depreciating it, and I understand deprecating it. But to force us through platform policy? This is a very distasteful move.

4 Likes

This would only be an issue if the developer uses a forked version fo legacy chat for each experience: it will be automatically migrated if using vanilla legacy chat as seen here:

keep team create chat i use it alot

This is not true. Many developers utilize the changing the chat window’s position with SetCore. Now we’re limited to the basic four corners without any utility to atleast offset from a corner.

For anyone who, just like me, is negatively impacted by this update, I just wish to state that I created a feature-request, hoping for this to be changed to support more use cases. Feel free to contribute any of your own personal pain points in there; including if a solution similar to my suggestion would be helpful or not.

2 Likes

this is one of the most stupidest updates you guys have ever done

you are REQUIRED to remove custom chat and migrate with the roblox intergrated chat system??? and if not you would get moderated??? what???

dude, allot of my games use the legacy chat system and needed for related stuff like that, what did you think before rolling this out

just a fyi: this will ruin allot of roblox games using it, atp you are killing your own platform

2 Likes

Will this update also effect the use of the “Chat” service for non-chat related functions such as filtering user-generated text? I have a highway sign system that uses Chat:FilterStringAsync() in order to filter player-inputed text as per original rules. I used that because it is simply to integrate, simply call the function with the text you need to filter and you get a simple string straight back with the filtered message. Unlike the TextService equivalent that returns an entirely seperate instance that needs further processing to extract the filtered string from for display.

No. You are simply required to modify your custom chat in a way in which all messages are sent and delivered through TextChatService. This can be quite annoying unfortunately.

This explains it well:

2 Likes

In my opinion, forcing this change and moderating not only the places but the creators’ accounts is too far. I’d rather have the legacy chat completely removed and for non-compliant experiences to be unavailable to certain audiences until changes are made. At least improve the performance of TextChatService, since for fast paced non cash grab games, every bit of performance matters.

What?

Also does this just mean I have to comply with new API? My games text chat is entirely custom, so do I just have to change message sending/receiving to go through TextChatService? The wording of this announcement is all over the place. “You can use custom chat, but also you can’t!”

4 Likes

100% Agree with this, couldn’t have said it better myself.

1 Like

I have a question about this situation:

I made fully custom chat for my game, which supports RichText fully (color, bold, italic, font, stroke and etc). In order to work, I did it so:

  1. Any message that user has typed is checked for RichText tags.
  2. After, valid RichText tags are removed from string (Invalid are not, so if you type inapopriate things inside it they will be filtered).
  3. Result string is being filtered.
  4. RichText tags are re-applied.
  5. Text is shown to everyone.

One note is that I didn’t use any chat features, only TextService:FilterStringAsync() (I don’t remember exact name sorry)

That’s how this turned out - in studio test environment, I show both my own text and filtered one. My own text instead of “#####” shows original text with red highlight.
image
image
image
image

Will it be possible to preserve such functionality of my chat? I spent a heck ton of time doing it and ensuring that there won’t be any possiblity to bypass it.

I am glad that ChannelTabs and UI gradients will be supported in TextChatService and hopefully will roll out next week, now I hope that most community requested features and concerns will be addressed before the removal of Legacy Chat in April 30th, 2025 including the performance issues related to ExperienceChatMain that even affects Legacy Chat and the bugs. The performance issues and the bugs related to TextChatService has been ignored and neglected for the most part and many of them have been left with little to no staff response which is disappointing to say the least, they should be addressed if Roblox wants the migration to be as smooth as possible.

Here’s are the most predominant bugs that affect TextChatService that should be addressed and haven’t yet :-

  1. (❣️ Easy To Fix Bug) Lack of Spacing in Right to left languages (RTL) Chat text Using New TextChatService

  2. Notification icon still appears for removed chat messages (TextChatService)

  3. Emoji Incorrectly Tags in the new Roblox Chat (it affects both chats though)

  4. Overlapping messages in chat while using TextChatService

  5. Chat Input Text Invisible on Mobile (this bug also affects both chats)

  6. Inconsistent chat bubble height between Roblox Player and Roblox Studio

  7. New TextChatService bubble chat is hidden by avatar

  8. [CoreScript] ExperienceChat, Player's TargetTextChannel gets overwritten away from any channel, if their Team Property changes

  9. TextChatMessageProperties Overriding Bubblechat's Text Color by RichText - #7 by RVVZ

  10. Custom Textbox using ChatInputBarConfiguration does not Focus on Keybind Pressed - #19 by hunterk1241 (there has been a staff response on this though and hopefully it will get addressed)

  11. TextChatService Text Box not expanding while typing long messages - #3 by ItzAidfoplays390

  12. TextChatService not correctly adding player to newly created Team's chat channel (CreateDefaultChatChannels=true)

  13. TextChatService Legacy ChatVersion is not respected by ExperienceChatMain

  14. TextChatService:DisplayBubble() does not work for NPCs - #11 by Jhettblocks789

  15. TextChatService OnIncomingMessage rich text overrides OnBubbleAdded text chat color

  16. 'LegacyChatService' Continues To Run A Bubble Chat Heartbeat With Bubble Chat Disabled

  17. Multibyte symbols "exceed the limit" in new TextChatService

  18. TextChatMessageProperties Overriding Bubblechat's Text Color by RichText - #9 by Extuls

  19. Hidden chat messages show in the unread badge

Finally and most importantly all the performance issues that affects ExperienceChatMain, that had numerous bug reports created for them.

12 Likes

This is also how my chat works. Both versions of Roblox chat didn’t have what I wanted in terms of customization. Is this possible through TextChatService? This announcement is too full of contradictions regarding custom chat windows for me to understand what is possible, or rather allowed now.

You and many others are making this a bigger deal than it has to be. This change is good so that any chat system can now be standardized through one API. You are still allowed to customize and whatnot. I doubt the investors were begging for this change. This is more about keeping players safe considering the largest audience is children.

Will you make the new TextChatService support more options like Legacy Chat System did? Because the reason why I haven’t switched is because I prefer the older system with more flexible options.

If you’re talking about having ChannelTabs, then yes, they said they will add support for that in TextChatService next week. Additionally they will also add support for UI gradients next week.

Now I can use the skull emoji in every game :smiling_imp:

i feel like this is a massive update… as many people said, you’re telling us to migrate to a new api that does not have everything that legacy chat. plus, on top of that TCS is completely different from how LCS handles stuff. i’ll wait until you guys finish the tabs and whatever and then fork the chat window to get me a result acceptable for my game theme