local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local ChatFrame = LocalPlayer:WaitForChild("PlayerGui"):WaitForChild("Chat"):WaitForChild("Frame") local MessageLog = ChatFrame:WaitForChild("ChatChannelParentFrame"):WaitForChild("Frame_MessageLogDisplay").Scroller local function interpolateColor(t) local r = math.sin(t * math.pi * 2) * 0.5 + 0.5 local g = math.sin((t + 0.33) * math.pi * 2) * 0.5 + 0.5 local b = math.sin((t + 0.66) * math.pi * 2) * 0.5 + 0.5 return Color3.fromRGB(r * 255, g * 255, b * 255) end local function updateRainbow() local time = 0 while true do for _, child in pairs(MessageLog:GetChildren()) do if child:IsA("Frame") then local textLabel = child:FindFirstChildOfClass("TextLabel") if textLabel then local color = interpolateColor(time) textLabel.TextColor3 = color end end end time = time + 0.01 if time > 1 then time = 0 end wait(0.1) end end task.spawn(updateRainbow) MessageLog.ChildAdded:Connect(function(child) task.wait(0.1) if child:IsA("Frame") then local textLabel = child:FindFirstChildOfClass("TextLabel") if textLabel then local color = interpolateColor(0) textLabel.TextColor3 = color end end end)