Basic Legacy Chat Rewrite for TextChatService

Added on to the README the changes I made, these specifically (for accuracy to Legacy Chat):

--[[
CHANGES MADE
ChatConstants.RemoveTranslationsEnabledMessage added, defaults to false
ChatConstants.UseCustomCommandsColor added, defaults to false
ChatConstants.ChatWindowLayoutOrder added, defaults to 6
ChatConstants.MessageFrameAutomaticSize added, defaults to Enum.AutomaticSize.Y
ChatConstants.MessageLabelAutomaticSize added, defaults to Enum.AutomaticSize.Y

MessageLog.registerMessageAddedCallback shouldn't error when Message.create returns nil
ChatConstants.DefaultChatWindowSizeScale set to (0.4, 0.33) from (0.4, 0.34)
]]

One thing this forgot is that ChatConstants.WindowResizeable defaults to false
And I made a mistake (ChatConstants.RemoveTranslationsEnabledMessage defaults to true), Iā€™ll fix these with a simple update

I also included a command bar loader to save some time, this is the code (minus the comment which has instructions on using it)

local legacyChatRewrite = workspace["Basic Legacy Chat Rewrite"]
local whatGoesInChat = legacyChatRewrite["PUT ME IN CHAT AND UNGROUP"]
local whatGoesInScriptService = legacyChatRewrite["PUT ME IN SERVERSCRIPTSERVICE AND UNGROUP"]

for _, obj in whatGoesInChat:GetChildren() do
	obj:Clone().Parent = game.Chat
end

for _, obj in whatGoesInScriptService:GetChildren() do
	obj:Clone().Parent = game.ServerScriptService
end
1 Like

what command bar did you add?
???

the code snippet he provided above is supposed to be ran using command bar, he didnā€™t add a command bar to the chat.

This looks great! Mind if I overwrite the current model with your version?

Edit: Noticed this code snippet here where you were trying to override the system message color. This is unfortunately the correct way to do it; I did not set the system message color, Roblox just adds a RichText tag to all system messages to color them grey.

if not ChatConstants.UseCustomCommandsColor then
	-- hacky workaround
	-- i have no clue where the hell the color is set
	-- all i know is the setting for it is disabled and the color shall not be present
	
	scroller.ChildAdded:Connect(function(message)
		if not message:IsA("Frame") then
			return
		end
		
		local label = message:FindFirstChildOfClass("TextLabel")
		
		if string.find(label.Text, '<font color="#d4d4d4">') then
			local text = string.gsub(label.Text, '<font color="#d4d4d4">', '')
			text = string.gsub(text, '</font>', '', 1)
			
			label.Text = text
		end
	end)
end

Saezi covered this issue in this thread a little bit ago: