What’s wrong with firing the client 8+ times? Either way you can avoid using remote events entirely by simply storing an IntValue in replicated storage and modifying its value from the server then all the clients have to do is keep track of the value.
Why would you need to create a new value? You could just change the value, and then make a loop that makes the text equal the value over and over again.
Well there’s going to have multiple countdowns, which will need to only be shown on certain screens at certain times, although now that I think about it, I can still pre-make them as there can only have X amount of countdowns at a time, just in the future when serversize changes I’d need to add more.
Do you think this will keep it more in-sync this way?
As some people have mentioned earlier, you can use either a Number/IntValue inside ReplicatedStorage & with the .Changed event, you can pretty much replicate it to all clients
Say I put 1 script inside the server that will handle the countdown changes:
local Countdown = game.ReplicatedStorage:WaitForChild("Countdown")
for Loop = 1, 60 do
Countdown.Value -= 1
wait(1)
end
And on the local-side, you can put this in a LocalScript where you want the text to change:
local Countdown = game.ReplicatedStorage:WaitForChild("Countdown")
local TextLabel = script.Parent.TextLabel
Countdown.Changed:Connect(function(ChangedValue)
TextLabel.Text = ChangedValue
end)
The .Changed Event will listen for any changes made to the Value made by the server/client