Seamless Travel with Play in Editor

Hello Epics, any plans to fix Seamless Travel in PIE?

You where promising to fix it someday.

It’s still not fixed in 4.19.2: Let’s hope its fixed in 4.20

4.22, nope. I’ve put three years into my game, and over the last year, have finally started towards the multiplayer aspect of things. And I tell you this:
THERE IS NO WAY IN **** TO DEBUG DEDICATED SERVER BLUEPRINT CODE!

Seamless Travel? → Sure, use standalone. I hope you don’t have bugs.

Turn off Seamless Travel and just ServerTravel? → Sure, your clients will just sit at the old map, after being rejected four times, and then it will just SPAM your log about a GameNetDriver being out of date

Use Open Level? Sure, even though its not meant for this, but that doesn’t matter, you can’t find session/connect anyways.

Try loading Dedi and player, into a “special” map, which tells the server to load the menu map, and create a session, so HOPEFULLY when the client finds sessions and joins, it will load up. NOPE, doesn’t even find a session if they are on different maps.

Try turning on/off AutoConnect in the play settings? Still nope, doesn’t help. All it does when its turned on, is magically connect the client to the dedicated server, it appears to create a session and join automatically for you, but thats it. ServerTravel? Don’t think about it.

OOOhhhh, I know! Here is the ‘ULTIMATE’ answer, you know, the kind for try hards, and know it all’s:
CREATE 1150 PRINT STRINGS AND READ THROUGH THAT SPAMMED LOG!!! (lets hope you printed the right string for debugging, or you can just keep guessing at what is wrong)

Fine, fine, I’ll just print string EVERYTHING… but wait… how the hell do you filter the output window… Wait… Do I really have to click every option on/off manually? Do you guys even USE the output log? How about a “all on/off” button?

Hmm… I’ve wasted a few days now looking for this bug, and fighting the log window, writing clever print string systems…

AND I STILL DON’T KNOW WHY THE D*** DEDICATED SERVER SPAWNS A PIG INSTEAD OF A HORSE, OR WHY THE DEDICATED SERVER THINKS ITS NIGHT WHEN ITS DAY OR WHY A PLAYER GOT THE WRONG ITEM. ect

****!

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!
dq fan feedback

4.25.3 Still unresolved. You cannot perform seamless travel in PIE.

Still not possible in UE5. Not being able to debug seamless travel is a huge burden. So much to the point I’m looking at disabling it and creating a complicated save data approach for preserving Game Mode / Game State / Player Data.

Is this something that is on the roadmap to accomplish?

1 Like

Do you know what issues you’re having? I’m have the UE5 EA branch and use seamless travel in my game with PIE and it seems to work out okay. I thought I had made an custom engine change to get around some issue but I can’t seem to find one in my source control history. We’re also doing it at my work with 4.27, but again I’m pretty sure we’ve got an engine modification or two to allow it.

I think there are some quirks with it that add some small wrinkles to deal with. But overall it can mostly work. If you’re willing to modify Engine source.

Interesting. I’m using Preview 2. Simply put, ServerTravel does absolutely nothing when running in PIE. Currently as a work around, to make PIE somewhat usable for testing, I detect if running in PIE and do a OpenLevel instead.

There definitely seems to be Editor and PIE handling in the FSeamlessTravelHandler (at least in EA). Hard to say why it’s not working without debugging it directly.

Giving it a quick debug: AGameModeBase::CanServerTravel() has the following:

	// 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 (World->WorldType == EWorldType::PIE && bUseSeamlessTravel && !FParse::Param(FCommandLine::Get(), TEXT("MultiprocessOSS")))
	{
		UE_LOG(LogGameMode, Warning, TEXT("CanServerTravel: Seamless travel currently NOT supported in single process PIE."));
		return false;
	}

So, still being prevented in core code.

Oh, maybe I’m not having an issue because I’m calling SeamlessTravel which doesn’t seem to check that like a call to ServerTravel does.

I mean you could just comment that out … maybe you won’t have those issue :wink: .

After all these years, seems like we can finally seamless travel in PIE(UE5 only though): https://github.com/EpicGames/UnrealEngine/commit/917ebf5038844cb10bb8ee8df6412d9d6b8567bb