How to tackle replication delayes

Hi there, I’m facing some basic architecture problems with my game. I’m building a foundation with blueprints and observer / subscriber pattern.

After a player has joined the game, I want to refresh the player list on the clients. For this, the PlayerController subscribes to the GameMode, the GameMode informs every playercontroller that a new player has joined. The playercontroller executes an RPC “On Owning Client” and calls the “RefreshPlayers” on the HUD Widget.

Now “Get Game State” function returns “None” which indicates, the GameState is not “there” yet on the client I suppose. Of course you could work with delays, but I don’t like delays for fixing such issues because the replication times are coupled to the replication settings of the actor and the lag (bandwidth) of the player / server.

One other approach would be, to create a separate actor and setting up a custom tick time and just “polling” for the data, but again, from a performance perspective, a “push” approach would be better.

Is there any pattern or mechanism for tackling such issues?