Chat Color Won't Change

I am using the ChatService and my custom chat gui to make a bubble chat when a player chats. This works fine, but when I fire the bubble message, the chat color won’t change even if I tell if to make the chat color something other than white? Is this a bug? Am I doing something wrong? Any help would be appreciated. This is the line of code that tells the game to make the bubble chat message (bts it tells it only when someone chats and that works fine). Added variables are on top to help.

local chatservice = game:GetService("Chat")
msgPlr = (coded to the player itself within the function)
msg = (coded as the message to make on the bubble chat)
chatService:Chat(msgPlr.Character.Head, msg, Enum.ChatColor.Red)

Again, this works, but when I try to make the bubble chat color red or anything else like above, it still makes it the default color.

1 Like

It would help if you posted the entire script rather than just 4 lines.

4 Likes

Roblox’s new chat system doesn’t have colors

1 Like

Tried it myself too, sucks but also who uses colors

1 Like

The new bubble chat system does have colours but it’s coded differently.

1 Like

Here you go.

-- goro7, csfcaden25413

local plr = game.Players.LocalPlayer
local chatService = game:GetService("Chat")
local vipServerOwnerId = game.ReplicatedStorage.Interactions.Server.GetVIPServerOwnerID:InvokeServer()

local specialColors = {}
-- specialColors["userId"] = Color3.fromRGB(RGB) -- Username
specialColors["900320725"] = Color3.fromRGB(220, 135, 174)	-- justyfeelinGood
specialColors["126131894"] = Color3.fromRGB(151, 32, 229) -- iiDxnnyO
specialColors["221567745"] = Color3.fromRGB(0, 255, 0) -- csfcaden25413
specialColors["423458771"] = Color3.fromRGB(89, 136, 235) -- itDann
specialColors["1062476453"] = Color3.fromRGB(121, 245, 137) -- entractive
specialColors["543319226"] = Color3.fromRGB(53, 234, 169) -- AntyDominates
specialColors["1529058538"] = Color3.fromRGB(240,128,128) -- IManyOrphansI
specialColors["1808140304"] = Color3.fromRGB(124, 15, 172) -- V_aeq
specialColors["208994203"] = Color3.fromRGB(255, 40, 77) -- Vital
specialColors["1705867828"] = Color3.fromRGB(255, 94, 0) -- Ieqst
specialColors["115519643"] = Color3.fromRGB(255, 0, 0) -- misreliance
specialColors["322740211"] = Color3.fromRGB(137,255,248) -- JustysStepSis (don't ask)
specialColors["1091469055"] = Color3.fromRGB(83, 108, 193) -- XxsnxwyiixX
specialColors["1996414989"] = Color3.fromRGB(247, 129, 216) -- XxpedaldxX
specialColors["1902722578"] = Color3.fromRGB(136, 222, 41) -- Mandem123g
specialColors["483094618"] = Color3.fromRGB(0, 200, 255) -- Matty
specialColors["1968646950"] = Color3.fromRGB(255, 89, 208) -- Landon
specialColors["311671912"] = Color3.fromRGB(75, 0, 130) -- ivData
specialColors["1126383028"] = Color3.fromRGB(128,0,0) -- Karrinaf12
specialColors["482320358"] = Color3.fromRGB(75,0,130) -- XInsomnic

--// people who won the giveaway (july 17, 2021) [saturday, somewhere around 8 AM] \\--
specialColors["147616853"] = Color3.fromRGB(247, 129, 129) -- DayvmJerry
specialColors["2516735774"] = Color3.fromRGB(206, 206, 246) -- 3m1lysqt
specialColors["213581381"] = Color3.fromRGB(255, 89, 208) -- zvchari 

function showChatMessage(msgPlr, msg, specifiedColor)
	
	-- Get player name and color
	local plrName
	local color
	local textStroke
	if msgPlr == nil then
		plrName = "SERVER"
		color = Color3.fromRGB(0, 0, 0)
		textStroke = Color3.fromRGB(159, 164, 172)
	elseif msgPlr.UserId == vipServerOwnerId then
		plrName = "[SERVER OWNER] " .. msgPlr.DisplayName
		color = Color3.fromRGB(255, 0, 255)
		textStroke = Color3.fromRGB(0, 0, 0)
	elseif msgPlr.Stats.GroupRank.Value >= 245 then
		if msgPlr.Stats.ChatTagToggled.Value == false then
			plrName = "[" .. string.upper(msgPlr.Stats.GroupRole.Value) .. "] " .. msgPlr.DisplayName
			color = Color3.fromRGB(255, 0, 0)
			for id, c in pairs(specialColors) do
				if tostring(msgPlr.UserId) == id then
					color = c
				end
			end
		elseif msgPlr.Stats.ChatTagToggled.Value == true then
			plrName = msgPlr.DisplayName
			color = Color3.fromRGB(255, 255, 255)
		end
		textStroke = Color3.fromRGB(0, 0, 0)
	elseif msgPlr.Stats.IsPremium.Value then
		plrName = "[PREMIUM] " .. msgPlr.DisplayName
		color = Color3.fromRGB(79, 79, 79)
		textStroke = Color3.fromRGB(255, 255, 255)
	elseif msgPlr.Stats.IsDiamond.Value then
		plrName = "[💎] " .. msgPlr.DisplayName
		color = Color3.fromRGB(154, 197, 219)
		textStroke = Color3.fromRGB(0, 0, 0)
	elseif msgPlr.Stats.IsVIP.Value then
		plrName = "[VIP] " .. msgPlr.DisplayName
		color = Color3.fromRGB(255, 255, 43)
		textStroke = Color3.fromRGB(0, 0, 0)
--[[	elseif msgPlr.Stats.IsHunter.Value then
		plrName = "[HUNTER] " .. msgPlr.DisplayName
		color = Color3.fromRGB(255, 0, 0)
		textStroke = Color3.fromRGB(0, 0, 0)]]
	else
		plrName = msgPlr.DisplayName
		color = Color3.fromRGB(255, 255, 255)
		textStroke = Color3.fromRGB(0, 0, 0)
	end
	
	-- Create chat entry
	local entry = script.Parent.ChatTemplate:clone()
	entry.Name = "Entry"
	entry.Parent = script.Parent
	entry.Position = UDim2.new(0, 0, 1, 0)
	entry.PlayerName.Text = plrName .. ":"
	entry.PlayerName.TextColor3 = color
	entry.PlayerName.TextStrokeColor3 = textStroke
	entry.Message.Text = msg
	entry.PlayerName.Size = UDim2.new(0, entry.PlayerName.TextBounds.X, 1, 0)
	entry.Message.Position = UDim2.new(0, 7 + entry.PlayerName.TextBounds.X, 0, 0)
	if not entry.Message.TextFits then
		entry.Size = entry.Size + UDim2.new(0, 0, 0, 16)
	end
	if specifiedColor ~= nil then
		entry.Message.TextColor3 = specifiedColor
	end
	if msgPlr == nil then
		entry.MMXLogo.Visible = true
		entry.Message.Position = entry.Message.Position + UDim2.new(0, 15, 0, 0)
		entry.PlayerName.Position = entry.PlayerName.Position + UDim2.new(0, 15, 0, 0)
		entry.Message.Font = Enum.Font.SourceSansBold
	end
	
	-- Move all entries up
	for _, i in pairs(script.Parent:GetChildren()) do
		if i.Name == "Entry" and i ~= entry then
			i.Position = i.Position - UDim2.new(0, 0, 0, entry.Size.Y.Offset)
			if i.AbsolutePosition.Y < 0 then
				i:destroy()
			end
		end
	end
	
	-- Show chat bubble
	if msgPlr ~= nil and msgPlr.Character ~= nil and msgPlr.Character:FindFirstChild("Head") then
		chatService:Chat(msgPlr.Character.Head, msg, Enum.ChatColor.White)
	end
	
end

game.ReplicatedStorage.Interactions.Client.ShowChatMessage.OnClientEvent:connect(showChatMessage)
script.Parent.ShowChatMessage.Event:connect(showChatMessage)
local Player = game.Players.LocalPlayer
local function Restrict()
	script.Parent.Visible = not game.ReplicatedStorage.ChatRestricted:FindFirstChild(tostring(Player.UserId))
end
game.ReplicatedStorage.ChatRestricted.ChildAdded:Connect(Restrict)
Restrict()
2 Likes

The new chat system is coded differently. I believe anyways.

2 Likes

So what do I have to fix here?

1 Like

Check this link for the newest API documentation.

1 Like