Countdown to Match System

I have a countdown system that gives players in the server 1 minute to register to an existing match. If new players join 10seconds after countdown started, the countdown they will see will be 50seconds.

I’m having a dilemma on whether I should leave the countdown to the server or client side. These are the 2 methods I have tried:

Client-side:
When player enters, server sends the remaining countdown time over a remote event to get client side to start countdown.

Pros: prevents server from being overloaded
Cons: if the client device is laggy, it will not sync with the server timer

Server-side
Every second, server fires a countdown time to all clients through Remote Event.

Pros: all client timings are synced, regardless of whether their device is good or laggy
Cons: server is overloaded every second as they have to keep firing Remote events to all the clients every second.


Ultimately, I’m not sure which is better. I personally would prefer the server-side execution but it has proven to overload my server quite a bit. Does anyone have any workarounds to this countdown issue?

Instead of firing a remote event, why don’t you put a string value into replicated storage, Change its value on the server, and use a textlabel to update its text with the status.Value using the .Changed event.

thanks for the suggestion! I’m curious though, why would using the change event make it less costly than using a remote event?