Why does this only get 1 player when multiple players are red?

I am trying to make a script that finds when a player has a red body color and it only detects one player. How can I make this detect ALL players with a red body color?

local kid = {}

local brickcolors = {
	BrickColor.new("Really red");
}

for i, d in pairs(game.Players:GetPlayers()) do
	local char = d.Character or d.CharacterAdded:Wait()
	for i, color in brickcolors do
		local bc = char:WaitForChild("Body Colors")
		if bc.HeadColor == color then
			table.insert(kid,d)
		end
	end
end

task.wait(0.1)

for i, a in kid do
	print(a.Name)
end

How are you changing the body color?

Are you doing it on server or client?

It might be that you are changing the color on client which doesn’t replicate to the server.

Otherwise it might be timing of when the script occurs. You could loop it to keep printing out the colors of all the players.

I’m replicating it from the client, but I’ll try looping it
[ I am also not changing the body color I am looking for if a player is that certain body color then printing their name ]