This script doesn't print success once, I don't know what the issue is? "Players Ready" is a text label, it is a local script
game.Players.PlayerAdded:Connect(function(plr)
plr:WaitForChild("PlayerGui"):WaitForChild("Game"):WaitForChild("Frame"):WaitForChild("Night"):WaitForChild("PlayersReady").Changed:Connect(function()
local ign = game.ReplicatedStorage.InGameNames:GetChildren()
if #ign > 0 then
print("Success!")
if plr:WaitForChild("PlayerGui"):WaitForChild("Game"):WaitForChild("Frame"):WaitForChild("Night"):WaitForChild("PlayersReady").Text == tostring(#ign) then
print("Success!")
game.ReplicatedStorage.RemoteEvents.DayNightCycle:FireServer()
end
end
end)
end)

3 comments
"ign" is the amount of children in InGameNames. Maybe it ISN'T greater than 0?
This script fires when the"Players Ready" text label is changed, there is a button that you press to say you're ready, when you press it, a local script updates the "Players Ready" text label to + 1, this works, you cannot press the players ready button if you are not in the game, when you are in the game, a value is created inside of theInGameNames
Also if I change it to | if #ign >= 0 then | it still doesn't print "Success!"