Waiting for All Players to Prepare Map Before ServerTravel in Networked Game

Hello! I’m struggling with trying to wrap my head around a networking issue.
I have a networked multiplayer game, and I want to have my game load in a map in the background (E.g. via PrepareMapChange) and then once all clients are ready, commit the map change.

I generally get the server->client communication framework, but it’s becoming a pain in the butt when trying to communicate from the client that it’s ready.

I’m also unsure what classes should be performing what roles. My initial idea was having the GameState alert all of the players that they need to prepare for the transfer, and then have the PlayerStates handle a bool that says whether they’re ready or not. I’m not sure if this is viable, or a gross misuse of what those classes are intended for.

The primary problem is propagating the information back up the chain. Loading is very… well, client-based. As such, I’m not sure how to tell the server that the client is ready.

I know it’s possible, seeing as games like Deep Rock Galactic (which also use UE4) are able to do this during loading screens. The game doesn’t start until each player is fully loaded.

If anyone has any tips, advice, or general flow I should follow, please let me know!