Event Tick (also BeginPlay) fires on both client and server. You’re firing a server RPC from both places, where it’s designed to be fired from client. That’s why people usually do a SwitchHasAuthority to split the two paths, with Authority pin being server, and Remote pin being client.
GameMode is a server only, non-replicated actor, meaning the previous point isn’t valid at all, but I mentioned it, so you keep it as a note for other replicated actor classes. In addition, RPCs can’t be fired in actors that are not replicated, so surely not GameMode.
Reliable RPCs are not performance friendly. Them fired on tick is really bad, as that will fill the net buffer quickly and other RPCs won’t be able to pass through.
Read it a few times, and then come back to what you were doing. You’ll get to the conclusion that you should have done your logic in an actor class like GameState, with the timer fired on the server with no RPCs involved.