Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How Do I Make The Players' Name Colors Random On A Custom Chat GUI?

I'm making a chat GUI similar to the old one, and I'm trying to figure out how to make it so the people have similar colors like on the normal chat GUI. This is what I got so far.

function UpdateOldLabels(Parent)
	for i,v in pairs(Parent:GetChildren()) do
		if v.Name:sub(1,4):lower() == "line" then
			local LineNumber = v.Name:sub(5)
			if LineNumber == "6" then
				v:destroy()
			else
				v.Name = "line"..tostring(tonumber(LineNumber) + 1)
				v.Position = v.Position - UDim2.new(0,0,0,15)
			end
		end
	end
end

game:getService("Players").PlayerAdded:connect(function(player)
	player.Chatted:connect(function(msg)
	    for _,v in ipairs(game:GetService("Players"):GetChildren()) do
			UpdateOldLabels(v:WaitForChild("PlayerGui").ScreenGui.Frame)
			newchatline = Instance.new("TextLabel",v:WaitForChild("PlayerGui").ScreenGui.Frame)
			newchatline.Text = player.Name.. ": " ..msg
			newchatline.Size = UDim2.new(1,0,0,15)
			newchatline.Position = UDim2.new(1,0,0-15)
			newchatline.Font = "Arial"
			newchatline.TextColor3 = Color3.new(1,1,1)
			newchatline.TextStrokeTransparency = 0
			newchatline.BackgroundTransparency = 0.1
			newchatline.BorderSizePixel = 0
			newchatline.FontSize = "Size14"
			newchatline.TextXAlignment = "Left"
			newchatline.TextYAlignment = "Top"
			newchatline.ClipsDescendants = true
			newchatline.Name = "line1"
		end
		UpdateOldLabels(game:GetService("StarterGui").ScreenGui.Frame)
		newchatline:Clone().Parent = game:GetService("StarterGui").ScreenGui.Frame
	end)
end)

1 answer

function UpdateOldLabels(Parent)
    for i,v in pairs(Parent:GetChildren()) do
        if v.Name:sub(1,4):lower() == "line" then
            local LineNumber = v.Name:sub(5)
            if LineNumber == "6" then
                v:destroy()
            else
                v.Name = "line"..tostring(tonumber(LineNumber) + 1)
                v.Position = v.Position - UDim2.new(0,0,0,15)
            end
        end
    end
end
game:getService("Players").PlayerAdded:connect(function(player)
    player.Chatted:connect(function(msg)
        for _,v in ipairs(game:GetService("Players"):GetChildren()) do
            UpdateOldLabels(v:WaitForChild("PlayerGui").ScreenGui.Frame)
            newchatline = Instance.new("TextLabel",v:WaitForChild("PlayerGui").ScreenGui.Frame)
            newchatline.Text = player.Name.. ": " ..msg
            newchatline.Size = UDim2.new(1,0,0,15)
            newchatline.Position = UDim2.new(1,0,0-15)
            newchatline.Font = "Arial"
            newchatline.TextColor3 = BrickColor.Random().Color
            newchatline.TextStrokeTransparency = 0
            newchatline.BackgroundTransparency = 0.1
            newchatline.BorderSizePixel = 0
            newchatline.FontSize = "Size14"
            newchatline.TextXAlignment = "Left"
            newchatline.TextYAlignment = "Top"
            newchatline.ClipsDescendants = true
            newchatline.Name = "line1"
        end
        UpdateOldLabels(game:GetService("StarterGui").ScreenGui.Frame)
        newchatline:Clone().Parent = game:GetService("StarterGui").ScreenGui.Frame
    end)
end)

3 comments

0

That just broke the GUI.

0

Sorry, Did it wrong. Lemme repost.

0

There, Look at the new edit and try that.

This discussion is preserved as it was. New answers, comments, and votes are closed.