I’ve encountered a strange behavior regarding level streaming with Blueprints in a multiplayer game yesterday.
Several light actors (or part of their properties) are not unloaded when calling an unload stream level action on the Client’s machine.
These light actors are: Exponential Fog Volume, BP_Sky_Sphere, DirectionalLight and SkyLight.
3 streaming levels:
Persistent level - has no light setup, holds every actors that need to be replicated across all levels (like dungeon tiles & enemies)
Elven Ruins - have its own light setup, can teleport to GameLevel
GameLevel - have its own light setup, linked to the Dungeon, can teleport to ElvenRuins
All my lights are moveable.
When switching from Elven Ruins to GameLevel, the light actors from ElvenRuins leave kind of a “light print” on the Client machine (not the Server).
Since a video is better than a wall of text, I made a little one:
The bug comes from the fact that I’m level streaming apparently. If I spawn directly in the GameLevel I have no light differences between Server and Client.
I tried destroying these actors before the new level loads but without success (I still had light differences).
The Static Meshes in the GameLevel are spawned at the beginning of the game in the Persistent Level and they are replicated to the Client.
What bothers me is that I already made a video where I had no problems with lights while level streaming so I’m not sure what to look for (but the static meshes in this video were not procedurally generated at runtime).
If anyone has any clue on how to fix this, I’d be very happy!
Thanks in advance and have fun on your projects!