LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.
LogCommonSession: OnStartSessionComplete(SessionName: GameSession, bWasSuccessful: 1)
LogCommonSession: OnCreateSessionComplete(SessionName: GameSession, bWasSuccessful: 1)
LogGameMode: ProcessServerTravel:
LogEngine: Server switch level: /Game/FG/Maps/FgMainMenuLevel
LogNet: Browse: /Game/FG/Maps/FgMainMenuLevel
LogLoadingScreen: Showing loading screen when 'IsShowingInitialLoadingScreen()' is false.
LogLoadingScreen: bCurrentlyInLoadMap is true
LogLoadingScreen: Loading screen showing: 1. Reason: bCurrentlyInLoadMap is true
LogLoad: LoadMap: /Game/FG/Maps/FgMainMenuLevel
LogWorld: BeginTearingDown for /Game/FG/Maps/UEDPIE_0_FgMainMenuLevel
LogWorld: UWorld::CleanupWorld for FgMainMenuLevel, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogAudio: Display: Audio Device unregistered from world 'None'.
LogUObjectHash: Compacting FUObjectHashTables data took 1.53ms
LogUIActionRouter: Cleaned out [0] inactive UI action bindings
LogUIActionRouter: Cleaned out [0] inactive UI action bindings
LogPlayLevel: Creating play world package: /Game/FG/Maps/UEDPIE_0_FgMainMenuLevel
LogPlayLevel: PIE: StaticDuplicateObject took: (0.003102s)
LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/FG/Maps/FgMainMenuLevel.FgMainMenuLevel to /Game/FG/Maps/UEDPIE_0_FgMainMenuLevel.FgMainMenuLevel (0.003394s)
LogAudio: Display: Audio Device (ID: 36) registered with world 'FgMainMenuLevel'.
LogWorldSubsystemInput: UEnhancedInputDeveloperSettings::bEnableWorldSubsystem is false, the world subsystem will not be created!
LogChaos: FPhysicsSolverBase::AsyncDt:-1.000000
LogAIModule: Creating AISystem for world FgMainMenuLevel
LogPlayLevel: PIE: World Init took: (0.001524s)
LogLoad: Game class is 'B_FgMainMenuGameMode_C'
LogWorld: Bringing World /Game/FG/Maps/UEDPIE_0_FgMainMenuLevel.FgMainMenuLevel up for play (max tick rate 0) at 2025.02.22-23.59.50
LogWorld: Bringing up level for play took: 0.004226
LogGameMode: FindPlayerStart: PATHS NOT DEFINED or NO PLAYERSTART with positive rating
LogCommonGame: [B_FgGameUIPolicy_C_0] is adding player [CommonLocalPlayer_34]'s root layout [UI_HUD_C_0] to the viewport
LogLoad: Took 0.072006 seconds to LoadMap(/Game/FG/Maps/UEDPIE_0_FgMainMenuLevel)
AdvancedSteamFriendsLog: Warning: GetSteamFriendAvatar Had a bad UniqueNetId!
LogLoadingScreen: Hiding loading screen when 'IsShowingInitialLoadingScreen()' is false.
LogLoadingScreen: (nothing wants to show it anymore)
LogLoadingScreen: Garbage Collecting before dropping load screen
LogLoadingScreen: LoadingScreen was visible for 2.00s
LogUObjectHash: Compacting FUObjectHashTables data took 1.57ms
LogUIActionRouter: Cleaned out [0] inactive UI action bindings
LogUIActionRouter: Cleaned out [0] inactive UI action bindings
Is that for the host or for clients? Which one is getting sent to main menu? If it is the host then the name is not correct, or maybe you have a function inside the new map and it is sending the host back to main menu.
After create session use Open Level by Object Reference with ?listen as Options as a test, if with that it is working, it is because of the name.
As a note instead of Open Level I would suggest that you use ServerTravel when changing levels.
I tried using “Open level by reference” but the same thing happens, using server travel worked, but the client keeps trying to join the session infinitely, here is the log when I try to join a session:
LogOnlineSession: OSS: Join session: traveling to 192.168.0.244:0
LogNet: Browse: 192.168.0.244:0/Game/FG/Maps/FgPrematchLevel
LogInit: WinSock: Socket queue. Rx: 32768 (config 32768) Tx: 32768 (config 32768)
LogNet: Created socket for bind address: 0.0.0.0:0
LogNet: IpConnection_1 setting maximum channels to: 32767
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogHandshake: Stateless Handshake: NetDriverDefinition 'GameNetDriver' CachedClientID: 4
LogNet: Game client on port 0, rate 100000
LogLoadingScreen: Showing loading screen when 'IsShowingInitialLoadingScreen()' is false.
LogLoadingScreen: We are connecting to another server (PendingNetGame != nullptr)
LogLoadingScreen: Loading screen showing: 1. Reason: We are connecting to another server (PendingNetGame != nullptr)
LogLoadingScreen: Loading screen showing: 1. Reason: We are connecting to another server (PendingNetGame != nullptr)
LogNet: Initial Connect Diagnostics: Sent '9' packets in last '10.006452' seconds, no packets received yet.
LogLoadingScreen: Loading screen showing: 1. Reason: We are connecting to another server (PendingNetGame != nullptr)
LogLoadingScreen: Loading screen showing: 1. Reason: We are connecting to another server (PendingNetGame != nullptr)
LogNet: Initial Connect Diagnostics: Sent '10' packets in last '10.002301' seconds, no packets received yet.
LogLoadingScreen: Loading screen showing: 1. Reason: We are connecting to another server (PendingNetGame != nullptr)
LogLoadingScreen: Loading screen showing: 1. Reason: We are connecting to another server (PendingNetGame != nullptr)
LogNet: Initial Connect Diagnostics: Sent '9' packets in last '10.033933' seconds, no packets received yet.
LogLoadingScreen: Loading screen showing: 1. Reason: We are connecting to another server (PendingNetGame != nullptr)
Try to follow what you are doing once the “prematch” level starts. Go inside the level blueprint and see if maybe you added something and forgot that is switching the level. If not, go inside GameMode, PlayerController… Maybe there is something that you missed.
As for this, it doesn’t really matter from functioning standpoint. You can create it inside a Widget and players will still be able to join. It matters for you, to know where to find things, it matters for organization reason. Most tutorials online use Game Instance because that remains the same for the entirety “life” of the game.
Also, if you are not the owner of the game “Crab Game” and this is not that game, change it to 480 as that one is used for testing, and later to your Id.
You can also use these to find in your project where they are used. Right click on them Find Reference. I forgot how it was in 5.3, but in 5.5.3 you have Find reference by class member all, and it is really useful in finding stuff that way, as it is searching everywhere for them.
I managed to make it work using the server travel, Chatgpt said I needed to add “?listen” to the server travel URL, and now it is working.
About the appid, I’m using Crab Game because it is a free game so anyone can add it to the library and ignore the region check from steam, But if this really becomes a game I’ll change it.
When you are testing a game you should use 480 or your own and when you publish the game use your own id, or else you will get banned by Steam. The 480 id will not affect your testing, people from your country will still be able to join and test.
The fix wasn’t that you used server travel. ServerTravel and Open Level are ways to change the level and how it is done in the background. The plugin you are using is expecting you to use ?listen.