I have this script and it does something once both statements are true, i think the problem is on line 5, I don't see anything wrong though, I get no errors. Edit: You need click "view source" to see the whole code, sorry.
game.Players.PlayerAdded:Connect(function(plr)
plr.PlayerGui:WaitForChild("Game"):WaitForChild("Frame"):WaitForChild("Night"):WaitForChild("PlayersReady").Changed:Connect(function()
local ign = game.ReplicatedStorage.InGameNames:GetChildren()
if plr.PlayerGui:WaitForChild("Game"):WaitForChild("Frame"):WaitForChild("Night"):WaitForChild("PlayersReady").Text == #ign then
game.ReplicatedStorage.Values.DayNight.Value = true
end
end)
end)

4 comments
Use the Changed event on the TextBox, that should fix it.
I did, "PlayersReady" is a text label
For detect Text and things like this, you need to use a LocalScript because the server can't see the changes of the client. and a LocalScript can, for do this that you are trying to do, try to use a RemoteEvent
^ More specifically, if the server did not assign a child of the PlayerGui to the PlayerGui, it cannot see that child. Any child that cannot be viewed by the server can be viewed by the client, via a LocalScript.