Is there any way to keep actors/component instances active while changing Level (Open Level)

Hello UE community,

So first i should mention im not trying to make a Game, im trying to use UE for interactive projection
of 3d scenes over multiple video-projectors.

So im relying much on NDI for that purpose. About NDI in 2 words, you need a scenecapture2d which gonna send though the network a video stream with ndi sender actor and ndi broadcast component.

To do so, I have create a custom blueprint who use “Spawns” and “Create Instances” and “Construct” to make a SceneCapture 2d, some dynamic texture, some material instance and then creating a NDI Sender (network). just know thoses actors are not present in world outliner or component list, they all “generated” at runtime.

Why? Because im able to spawn multiple instance of that blueprint and having just the custom parameters in the actor description. i can even instanciate more stream at runtime.

BUT !
I would need to keep thoses Actors (blueprint instances) actives while transitioning levels (not streaming levels)

It has to be the same instance because they aims to sender a video stream through NDI and that streaming should stay active at all time

Because its all “generated” with a blueprint i can put it anywhere (i made it works inside GameMode BP, GameInstance BP etc)

But wherever its generated it still disappear when level change.

So i don’t know where to look for, maybe there is a global persistent owner that could handle global Objects (Actor, Component).

I hope i’m clear in my explanation.

I have a secondary question, Is there any way to create a dynamic Material in a blueprint without any existing asset reference ?

1 Like

If you want to keep actors around while changing levels, you have to do it with streaming.

You keep your actors in the persistent level, and stream and un-stream the other levels around them.

The only other things that are persistent between normal ‘open level’ calls are the save game and the game instance. And you can’t have components in them.

Actors are placed in a level in order to exist. If the level gets removed, everything in the level does too.
The only way to keep same instances would be to stream the levels

1 Like