OK. So I claim Multiplayer, where the Host is the server, is broken with respect to level streaming with World Composure given 4.26.2.
What happens is that when the clients enter a level that is not loaded by the host/server the client loads the level; however, the server does not. Thus, if this is your terrain, the client, or clients, fall thru because the server “is king”. In addition, if there are things like houses, and the such, which show on the client; however, are not loaded on the server, the clients can just walk thru them because, on the server, they do not exist.
So… …luckily, you can assign each level to “On Demand” which turns off the built-in level streaming such that you can write your own.
Now… …writing my own level streamer… …I thought this would fix this issue since I am in control of the levels loading, or not; however, it didn’t???
Kind-of shocked, I dug deeper and discover that in PEI, for some reason, the level name on the host/server cannot be found on the PIE clients?!?!?
For example…
LogBlueprintUserMessages: [MyGameStateBase_C_0] Server: Player:0; X=-42912.734 Y=-28903.049 Z=-13666.859
LogBlueprintUserMessages: [MyGameStateBase_C_0] Server: Player:1; X=2062.312 Y=-9475.986 Z=-15572.517
LogLevel: ActivateLevel /Game/Maps/Level1/UEDPIE_1_Encounter2And4 1 1 1
LogStreaming: Display: ULevelStreaming::RequestLevel(/Game/Maps/Level1/UEDPIE_1_Encounter2And4) is flushing async loading
LogStreaming: Display: FlushAsyncLoading: 1 QueuedPackages, 0 AsyncPackages
LogLevel: Warning: Failed to find streaming level object associated with ‘Encounter2And4’
LogBlueprintUserMessages: [MyGameStateBase_C_0] Client 0: MulticastLoadStreamingLevel:Encounter2And4; GetStreamingLevel is NONE?!?!?
LogBlueprintUserMessages: [MyGameStateBase_C_0] Server: MulticastLoadStreamingLevel:Encounter2And4; loaded=true
LogBlueprintUserMessages: [MyGameStateBase_C_0] Server: Player:0; X=-42912.734 Y=-28903.049 Z=-13666.859
LogBlueprintUserMessages: [MyGameStateBase_C_0] Server: Player:1; X=2062.312 Y=-9475.986 Z=-15572.517
What?!??!
If I run the game in standalone, it works fine in that the clients and the host/server seem to be loading levels correctly.
So how are the streaming level names changed from the client’s perspective?
If I could figure this mapping out, I most likely can solve my issue.