[Bug][4.15] Client Load Level Instance Kicks Client
Whenever a client tries to stream a level in 4.15, the client is kicked from the host and loads the default loading map.
Replication: Start a new 3rd person blueprint project, create a new level, add the level to the sub-level list, make the new level current, create a single mesh in the new level for proof of loading.
Add the following code:
Play game with 2 players, or 1 and dedicated server. When the client loads the level, they are immediately kicked.
Loading on the server does not replicate to the client, and obviously manually streaming this causes a kick.
asked Mar 13 '17 at 12:44 AM in Bug Reports
Not a bug, Security Feature
I am the author of that node that is in the engine, contributed via github: https://github.com/EpicGames/UnrealEngine/pull/2320
It is not a bug, UE4 has code to prevent a client from loading a level that the Server has not loaded first. Presumably this is a security / cheating management decision, present in PlayerController.cpp
To work around this, you just need to always load the level instance on the server first, with the exact same name.
I wish this security feature was optional, it makes certain aspects of dynamic level generation more complex/less stable because if there is even a slight timing difference, the client can get dc'ed making this anti-cheat feature reduce overall capability of UE4 to be handle dynamic worlds without the developer having to worry about the chance of a client getting dc'ed
The code is so embedded so as to prevent cheating that it is also impossible to work around.
As with all major engine decisions, it would be great if we as the developers had more control so that UE4 can play its role as dominant awesome engine of the world even better.
PS: This is in regards to https://issues.unrealengine.com/issue/UE-43726
More in-depth explanation of solution:
Thank you for reporting this issue. I've reproduced this issue and entered a bug report for it. You can find / track the report here: UE-43726
answered Apr 06 '17 at 03:05 PM
I've found a work around here, using the victory plugin: https://forums.unrealengine.com/development-discussion/blueprint-visual-scripting/102757-dynamic-level-streaming-with-multiplayer-support
answered May 08 '18 at 01:18 AM
So I was having this issue with a level loading system and the solution was to use the node "Load Stream Level" instead.
answered Apr 27 '19 at 02:04 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here