How to Alert Server when Client Has Loaded Next Level


I’m trying to implement a system in which clients load a new level (dictated by the server) in the background. Once the level is loaded, the clients should alert the server that they’re ready, which then initiates the ServerTravel. Essentially I’d like for all of the clients to be ready to travel to a new map as soon as they’ve all loaded it up.

The problem I’m having right now is trying to let the server know that the client is ready to travel. I’ve tried to go about it at least 3 or 4 different ways, but I keep hitting road blocks. The main one is trying to alert the server that all clients are ready to travel. The way I’m doing things is a little convoluted right now:

  1. The server multicasts to everyone to tell them to begin loading the next level (Currently, this is done through the GameState)
  2. The GameState calls a UObject that’s currently attached to the GameInstance that has all of the delegates and functions I need to prepare the new map.
  3. Once the level is loaded in the background, a delegate from the GameInstance is executed that tells the GameState that it’s ready

And here-in lies the issue: Because the GameState is owned by the server, it seems like the GameInstance calls get dropped when trying to communicate to it. Only one client (the listen server) successfully alerts the GameState that it’s ready to travel.

I’m not sure what other way I could go about relaying this information to the GameState. The method I have right now is extremely convoluted, and I’m definitely looking to see if there’s any cleaner way I can deal with all of this.

If anyone has any suggestions, or an outline on how you’d go about handling this scenario, please let me know!