I have a problem in my project where during seamless travel the client travels faster than the server. As a result, when the server enters, the client is already in the map.
Because of this, HandleSeamlessTravelPlayer does not get called on the server’s gamemode, and therefor the playercontroller of the client never gets upgraded to the one required by the new game mode.
Any idea how I can ensure that my server always travels first before the clients?
I’m working on the same project. After some debugging I found out this is caused by UNetConnection::ClientWorldPackageName being set to NONE after it is set to the loaded world by APlayerController::ServerNotifyLoadedWorld.
Somewehere in the FSeamlessTravelHandler::Tick function it calls UNetConnection::ResetGameWorldState() which sets this value back to NONE.
As a result the client keeps waiting forever to complete the travel.
I set breakpoints in the travel function on the server to force the client to load first to test this.