Does literally everythign in my game have to be under one persistent level?

I’m trying to make a game which will ultimately have a few different “worlds”. These will be large and so I figure I should separate them into their own levels and just use streaming levels/world partition for “parts” of large levels.

However, this has become an issue when trying to make a main menu to transition between levels. Currently, my main level is in a completely blank level with its own gamemode, and I have some logic that calls “open level by name” in a blueprint to open my first level which then plays a cutscene. This level takes a second or two to load though, which can delay the music in my level sequence. I would realistically like to add a loading screen to mitigate this.

This brings me to the problem: literally everywhere I look online, I have to use level streaming for this so I can async stream levels and therefore create a loading screen. Really? Surely there’s a better way than to have everything in my game under a single persistent level?

Firstly, there is

https://www.unrealengine.com/marketplace/en-US/product/async-loading-screen

You don’t have to use streaming, you can also use level instances. It’s the difference between ‘load streaming level’ and ‘load level instance’.

But, you do need to be able to load this stuff into something, and that is ( drum roll ) basically your persistent level :slight_smile:

In your case, you can have a totally separate level and game mode for the menu, then use ‘open level’ to open your persistent, and then from there, use streaming or instances to load the world. This gives you the ability to show a loading screen.

However, streaming is not compatible with WP, so you still have level instances, or just the inherent loading that comes with WP ( and hide it behind a widget ). Another option is using async load

1 Like