[ARCHIVED] TextChatService disguised as Legacy Chat

Now archived as I have no plans to work on it.
Thank you for this journey.

See bottom for alternatives.


very bad showcase image

A resource to easily convert your Legacy Chat into TextChatService

Q/A

What is this?

TCS disguised as Legacy Chat is a resource which attempts to operate like the Legacy Chat, while actually using TextChatService. It even allows you to make Chat Tags, Channels and etc using the old ways!

But why?

Roblox announced that developers must migrate to use the TextChatService APIs. The Legacy Chat will be removed by April 30th, 2025, meaning you will not be able to use it. Experiences will be moderated if they try to bypass this.

This is problematic, as many experiences still use the Legacy Chat, and a major part of them prefer it over the new TextChatService. This is due to having the ability to customize the whole thing easily, as it is in PlayerGui.

Thereā€™s many instances to customize the new chat UI.
How is Legacy Chat better?

Legacy Chat can be customized way more than the default TCS UI. Donā€™t let the many instances to customize it blind you. You can do all of that with the old one, and more.

Now Iā€™m confusedā€¦
Why is Roblox removing switching over to TCS then?

You see, TextChatService isnā€™t the UI of the default chat. The default chat UI just uses TCS. You can make a chat system with TextChatService just as customizable as Legacy Chat. However, it takes lots of time.

Okay then. Itā€™s quite easy to switch over then, right?

No. They are pretty different, so while they can do the same thing, it would take lots of time to switch over, if you modified the Legacy Chat a lot.
Developers are not happy, as they now have to spend time on switching over when their previous ways worked perfectly fine.
This is why I made this. I am trying to make everything from Legacy Chat work with TextChatService.


Features

  • Works with the old way of making System Messages, Chat Tags, Name Colours and Chat Colours
  • i think that's the whole reason why i made it anyway

Things to work on View on GitHub

Working on right now View on GitHub


šŸ› BUG REPORTING

Now archived as I have no plans to work on it.
Thank you for this journey.

See bottom for alternatives.


Old text:
Please tell me if you find any bugs, or want anything to get added.
It might take me a while to respond.

If I take too long, I recommend you to try out this ladā€™s resource instead.
He made something very similar to what I did, scripted better, but with less features, at the same time as I was making this!
Basic Legacy Chat Rewrite for TextChatService


Get it on GitHub|100

Installation

Get RBLXfile.rbxm from a release and insert it!

If you have one, you can replace the default ChatSettings module with your own.
If you do that, comment out the ChatConstants lines.

You can add client and server commands you might have had in the Legacy Chat in their folders:
image

Note that not everything is supported yet. If you get an error with anything, itā€™s probably not supported.


Only channels you have added with the ChatService module will work with this.
Look here to see how to do that.

This does not use the default channels created by Roblox, it creates an All channel and System channel.

In fact, you should uncheck these two properties in TextChatService or else Roblox might sometimes override the All channel with RBXGeneral and it will not work.
image

It should work with custom TextChatCommands as it is sending with TextChatService.

This project uses Rojo to help push it over to GitHub.
Icons made by cxmeel, which can be viewed here


Now archived as I have no plans to work on it.
Thank you for this journey.


Alternatives:

18 Likes

Can you explain in more detail what is meant by disguised as legacy chat? Is it just how the chat looks or can you use legacy chat tags as well?

1 Like

Sure. The title is quite bad, sorry about that! :joy:

Both, yes. Iā€™m trying to make old methods work on the new chat.

I donā€™t really recommend to use this system in real games yet, as I kind of rushed to release this, and itā€™s a bit glitchy. Iā€™m working on fixing issues.

Chat Tags are bug-free though!
They are tested to work with this script:

local Players = game:GetService("Players")
local ChatService = require(game.ServerScriptService:WaitForChild("ChatServiceRunner"):WaitForChild("ChatService"))

local channels = {}
for i=1, 10 do
	local channel = ChatService:AddChannel("test" .. i)
	table.insert(channels, channel)
end

ChatService.SpeakerAdded:Connect(function(username)
	--get speaker and player from username
	local speaker = ChatService:GetSpeaker(username) 
	local player = Players:FindFirstChild(username) 

	local tags = {} --create the tags table
	table.insert(tags, {TagText = "VIP", TagColor = Color3.fromRGB(255, 255, 0)})
	table.insert(tags, {TagText = "role"})
	
	speaker:SetExtraData("Tags", tags) --setting the tags after they're loaded and configured
	--speaker:SetExtraData("ChatColor", Color3.fromRGB(0, 0, 0))
	
	for i,channel in pairs(channels) do
		speaker:JoinChannel(channel.Name)
	end
end)

Sorry for not adding any images/videos! Might make some soon.

1 Like

Poor LegacyChat , i was scared until you found a way to revive it :sob:
Yesterday , iā€™ve downloaded the model of LegacyChat simulaTOR

1 Like

Nice! If you find bugs, please let me know. Iā€™m already working on fixing some.

Added old bubble chat!

Just set the value of OldBubbleChat to true!
New model required.


Please report any :bug: bugs on GitHub or here.

1 Like