Server travel connection flow
- ServerTravel()
- Check if can server travel
- Get game mode
- GameMode::ProcessServerTravel()
- GameModeBase::ProcessServerTravel()
- StartToLeaveMap()
- Sets match state to leaving map
- ProcessClientTravel()
- Iterates through list of player controllers and calls their client travel if they are Remote players and PreClientTravel if a local player
- If playing in editor both player controllers are considered local controllers and they get PreClientTravel() called and not ClientTravel()
- LocalPlayerController::PreClientTravel()
- Calls delegate broadcast notifying the new level, type of travel and whether it is seamless
- if(bSeamless)
- Do Seamless travel
- else (we are not seamless so we do this)
- Set World::NextSwitchCountdown = 0 so that switch happens immediately on next Tick in TickWorldTravel()
After the TickWorldTravelI(), the PlayerControllers ClientRestart() and ClientRestart_Implementation get called