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

Not really that’s on studio only unless you’re talking about the callbacks then I don’t think that’s possible

The right choice here ROBLOX is to throw your hands up, put out an announcement that goes something along the lines of “We have heard your feedback and will be postponing this for later until we have a better plan of how to do this again!”

… then forget it, sweep it under the rug and go on. Just like
another very controversial update where many developers rioted. Those who remember, remember. That announcement from months ago was definitely buried. ( Experiences using Marketplace Items - Policy update - Updates / Announcements - Developer Forum | Roblox)

3 Likes

It is possible, I’ve made it many times before. You can even use commands to do it.

1 Like

They’re so vague on this, my game uses a custom chat script based on the late 2014 chat, and trying to change it to use TextChatService just does NOT work, i really hope they add things like being able to place the input bar somewhere else at the screen.

1 Like

TextChatService singleton and related instances ~= ExperienceChatMain core script that was written by some intern.

So many people in this thread are not understanding that. They should have worded the OP more carefully.

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.

2 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.

1 Like

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

1 Like

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:

1 Like

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

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

8 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.