SeamlessTravel: How does server know all clients are ready?

I know this question is fairly old but I noticed that there isn’t any answer here that doesn’t rely on a poll.

I think the best way to tackle (as you mention in a comment) is via a GameMode callback.

Unreal’s client-server model is focused around the concepts of worlds and their GameModes. A dedicated server will sit listening on a particular map with a GameMode loaded. When connections happen, the GameMode gets the chance to reject or accept connections with PreLogin, available when deriving AGameModeBase in C++ (this is probably also available in BP but I’m not sure of it).

After PreLogin is accepted we get PostLogin which will happen for you in the Lobby and I guess this is what is how you are detecting to initiate the Seamless Travel.

I think the callback that you are looking for is called HandleStartingNewPlayer. According to the GameMode docs, it is:

Called after PostLogin or after seamless travel, this can be overridden in Blueprint to change what happens to a new player. By default, it will create a pawn for the player.

So overriding this will give the server a notification after a seamless travel has occurred.


Sam Pattuzzi - Co-instructor on the Udemy’s Best Selling Unreal Course

2 Likes