Issue with running code on all clients after running through the player list

Hello! I’m currently trying to turn all players which aren’t the LocalPlayer another color. To achieve this I made a Local and a Server script.
On Server

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local enemyCreate = ReplicatedStorage:WaitForChild("EnemyEvent")

local function PlayerAdded(plr)
	for i, onPlayer in ipairs(Players:GetChildren()) do
		print(tostring(onPlayer))
		enemyCreate:FireClient(plr, onPlayer)
		print("Fired Enemy creation")
	end
end

Players.PlayerAdded:Connect(PlayerAdded)

Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local enemyCreate = ReplicatedStorage:WaitForChild("EnemyEvent")

enemyCreate.OnClientEvent:Connect(function (onPlayer)
		local player = game:GetService("Players")
		print(onPlayer)
	if onPlayer ~= player.LocalPlayer then
		workspace:WaitForChild(tostring(onPlayer))["Body Colors"].HeadColor3 = Color3.new(0, 0, 0)
		workspace:WaitForChild(tostring(onPlayer))["Body Colors"].LeftArmColor3 = Color3.new(0, 0, 0)
		workspace:WaitForChild(tostring(onPlayer))["Body Colors"].LeftLegColor3 = Color3.new(0, 0, 0)
		workspace:WaitForChild(tostring(onPlayer))["Body Colors"].RightArmColor3 = Color3.new(0, 0, 0)
		workspace:WaitForChild(tostring(onPlayer))["Body Colors"].RightLegColor3 = Color3.new(0, 0, 0)
		workspace:WaitForChild(tostring(onPlayer))["Body Colors"].TorsoColor3 = Color3.new(0, 0, 0)
	end
end)

The issue I’m having is this: while testing with clones of myself in studio, Player1 sees nobody as the new color, Player2 sees only 1 with changed color, Player3 only 1 and 2, and so on… while everybody should see everyone except themselves with a different color.
It’ll be really helpful is someone could point out what I’m doing wrong!

use “fire all client” other wise, if people join, they wouldnt be able to see other people colors.

Thanks for the answer, but now my problem is the opposite: Player 1 sees Player2 as he shoudl, but Player2 doesn’t. The print function on Local for Player2 also only prints Player2.

another way to do is stick with what you have but instead of just changing your colors, you do some checks with the other players and see if they have different colors [you can use a colorvalue] on their body or smth.

if you get what i mean, just fireclient and change ur color and see if others have a different color.

I managed to finally solve this using your suggestion. I noticed i made a mistake in the parameters for FireAllClients. Have a great day!

oo, that’s good to hear. Goodluck anyways