Seamless Travel with Play in Editor

Hi,

I was starting to wonder if seamless travel in the editor (specifically PIE) was supported as I came across a number of issues using it in 4.8, and then I looked at the 4.9 code and found that this had been added:

void UWorld::ServerTravel(const FString& FURL, bool bAbsolute, bool bShouldSkipGameNotify)
{
	// NOTE - This is a temp check while we work on a long term fix
	// There are a few issues with seamless travel using single process PIE, so we're disabling that for now while working on a fix
	if ( WorldType == EWorldType::PIE && AuthorityGameMode && AuthorityGameMode->bUseSeamlessTravel && !FParse::Param( FCommandLine::Get(), TEXT( "MultiprocessOSS" ) ) )
	{
		UE_LOG( LogWorld, Warning, TEXT( "UWorld::ServerTravel: Seamless travel currently NOT supported in single process PIE." ) );
		return;
	}

So I got my answer! It seemed to be mostly working in my tests, the two issues I came across was that BeginPlay() was not been called on the clients (due to the GameState changing from LeavingMap to InProgress on the server before it had replicated the intermediate state change to the clients), and then due to some editor only code in FSeamlessTravelHandler::StartLoadingDestination() only the clients were adding a PIE index to their package name and therefore the server was not matching the client world in APlayerController::ServerNotifyLoadedWorld_Implementation(), which meant it never called AGameMode::HandleSeamlessTravelPlayer() for the PC.

However we were only looking to use seamless travel to speed up multiplayer testing on XboxOne, so having the ability to run the tests in the editor was just for convenience.

I would be interesting in knowing if there were further issues other than the two I have noticed, which both seemed like fairly straight forward fixes.

Thanks,
Ian

The short answer is there are a few issues/crashes with seamless travel and PIE. We want to get to a point where we can spend time on it, but haven’t quite got there. We also benefit greatly from the workflow improvements, so we’re motivated to get to this. Hopefully soon!