Cannot UNLOAD level as expected

I’m working on a small game with several small levels. There is a HUB where the player can choose which level they would like to visit.

Initially, I had each level added as a sub-level of a persistent master level, and I would use LoadStreamLevel to load sublevels and UnloadStreamLevel to remove them. This worked, HOWEVER, because the levels overlap, I cannot properly build lighting for them – tons of warnings about overlapping geo, and the lighting build process hangs at 96%. (If anyone can tell me how to fix this problem, I could go back to this method.)

I’ve changed the setup so that I am now using several different levels rather than sublevels. The old persistent level uses LoadLevelInstance to load the next level, then disables the HUB sublevel using UnloadStreamInstance. This works.

BUT, when the level is done, I cannot manage to UNLOAD it again. I call UnloadStreamInstance on the level, and LoadLevelInstance on the HUB again. When this completes, BOTH the HUB and the level are loaded at the same time.

My question is, how do I UNLOAD a level loaded with LoadLevelInstance? UnloadStreamInstance is NOT working – I’ve triple checked the parameters, etc. The blueprint runs over those nodes without any apparent problems, but the level remains intact.

If you rightclick your level in the level streaming window, you’ll have Lightning Option and the option to set it to “Lighting Scenario”, that means it will build its light on its own.

I realize this post is super old, but you may find this suggestion useful:

forums.unrealengine.com - Unload level instance after loading