Ok, so I made a minimal failing example, so you know exactly what I’m doing and can try to repdroduce the issue.
The goal is to transition from a “LobbyMap” to the “GameMap” using seamless travel, while at least one client is connected to the server.
I start a new project, the default FirstPersonShooter example.
First, I create a “LobbyMap”. Nothing special here, it’s just a default empty map.
Next comes the LobbyGameMode. For the sake of convenience, let’s just define a timer of 15 seconds after which the map get’s started:
The last thing I did is selecting the LobbyGameMode in the LobbyMap as the preferred GameMode.
Now I load the LobbyMap in the editor, select “2 Players” and start the game.
I join the lobby, as expected, after 15 seconds the map loads, as expected, but then the game and the editor crash, not quite as expected.
This is the crash report:
MachineId:B9583C1144759F5D15A7E09AC92499E0
EpicAccountId:a1ccd53fa2be4c999c0e53801a92194d
Access violation - code c0000005 (first/second chance not available)
UE4Editor_Engine!UActorChannel::CleanUp() + 1252 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\datachannel.cpp:1443]
UE4Editor_Engine!UChannel::ReceivedSequencedBunch() + 335 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\datachannel.cpp:279]
UE4Editor_Engine!UChannel::ReceivedNextBunch() + 2851 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\datachannel.cpp:588]
UE4Editor_Engine!UChannel::ReceivedRawBunch() + 675 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\datachannel.cpp:344]
UE4Editor_Engine!UNetConnection::ReceivedPacket() + 3880 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\netconnection.cpp:979]
UE4Editor_Engine!UNetConnection::ReceivedRawPacket() + 266 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\netconnection.cpp:457]
UE4Editor_OnlineSubsystemUtils!UIpNetDriver::TickDispatch() + 1367 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\online\onlinesubsystemutils\private\ipnetdriver.cpp:174]
UE4Editor_Engine!TBaseUObjectMethodDelegateInstance<0,UNetDriver,void __cdecl(float)>::ExecuteIfSafe() + 231 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:772]
UE4Editor_Engine!TBaseMulticastDelegate<void,float>::Broadcast() + 165 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:1030]
UE4Editor_Engine!UWorld::Tick() + 1024 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\leveltick.cpp:1027]
UE4Editor_UnrealEd!UEditorEngine::Tick() + 5618 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\editor.cpp:1329]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() + 22 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\unrealedengine.cpp:347]
UE4Editor!FEngineLoop::Tick() + 4179 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\launchengineloop.cpp:2257]
UE4Editor!GuardedMain() + 1404 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
Did I do something wrong? Is this not how to use seamless travel?
I’m not afraid to use C++, but I want to know what I’m doing. I thought this should work that way…