local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local sendercolor = {}
local lplr = nil
local ColorPalette = {
Color3.fromRGB(171, 173, 172),
Color3.fromRGB(140, 140, 140),
Color3.fromRGB(200, 200, 200),
Color3.fromRGB(255, 110, 110),
Color3.fromRGB(255, 80, 80),
Color3.fromRGB(255, 150, 100),
Color3.fromRGB(200, 120, 80),
Color3.fromRGB(255, 180, 120),
Color3.fromRGB(255, 255, 100),
Color3.fromRGB(240, 220, 80),
Color3.fromRGB(255, 210, 80),
Color3.fromRGB(120, 255, 120),
Color3.fromRGB(80, 220, 120),
Color3.fromRGB(100, 255, 180),
Color3.fromRGB(160, 255, 160),
Color3.fromRGB(100, 255, 255),
Color3.fromRGB(120, 220, 255),
Color3.fromRGB(80, 200, 255),
Color3.fromRGB(100, 100, 255),
Color3.fromRGB(120, 150, 255),
Color3.fromRGB(60, 130, 255),
Color3.fromRGB(140, 160, 255),
Color3.fromRGB(200, 100, 255),
Color3.fromRGB(170, 120, 255),
Color3.fromRGB(180, 140, 255),
Color3.fromRGB(255, 100, 255),
Color3.fromRGB(255, 120, 200),
Color3.fromRGB(255, 140, 220),
Color3.fromRGB(100, 255, 150),
Color3.fromRGB(120, 255, 200),
Color3.fromRGB(80, 240, 200),
Color3.fromRGB(255, 200, 150),
Color3.fromRGB(200, 180, 255),
Color3.fromRGB(150, 255, 200),
}
local function Color3ToHex(color)
local r = math.floor(color.R * 255)
local g = math.floor(color.G * 255)
local b = math.floor(color.B * 255)
return string.format("#%02X%02X%02X", r, g, b)
end
local function GetPlayerColor(player)
if sendercolor[player.Name] then
return sendercolor[player.Name]
end
local colorIndex = (player.UserId % #ColorPalette) + 1
sendercolor[player.Name] = ColorPalette[colorIndex]
return sendercolor[player.Name]
end
local function GetAvailablePlayers()
local list = {}
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= Players.LocalPlayer then
table.insert(list, plr)
end
end
return list
end
local function frc(message)
local channel = TextChatService
:FindFirstChild("TextChannels")
:FindFirstChild("RBXGeneral")
if not channel then
warn("RBXGeneral channel not found!")
return
end
local availablePlayers = GetAvailablePlayers()
if #availablePlayers == 0 then
warn("No other players available!")
return
end
local plr
if #availablePlayers > 1 and lplr then
repeat
plr = availablePlayers[math.random(#availablePlayers)]
until plr ~= lplr
else
plr = availablePlayers[math.random(#availablePlayers)]
end
lplr = plr
local playerColor = GetPlayerColor(plr)
local colorHex = Color3ToHex(playerColor)
local formatted = string.format(
'%s: %s',
colorHex,
plr.DisplayName,
message
)
channel:DisplaySystemMessage(formatted)
end
Players.PlayerAdded:Connect(function(player)
GetPlayerColor(player)
end)
Players.PlayerRemoving:Connect(function(player)
sendercolor[player.Name] = nil
end)
frc("Your IP address is 196.631.421") -- you change or add