Adding actors to Data Layers at runtime [UE5]

I was wondering, is there any way to add an actor to a data layer at runtime? There’s no node in BP so I’ll go fishing through the source code in a bit, however, there’s a node that does this for the old Actor layer system, so I’m wondering if this is just a missing node in BP or an actual feature.

The problem comes when spawning actors. If you load and unload Data layers to control content, the spawned actors will not be assigned to any data layer so will always be loaded. If you set the actor’s “Owner” on spawn, then it will be assigned to its parent’s data layers (not checked the source on this so can’t be 100%, but from some testing that’s what I found). However, this doesn’t work for attached actors. If actor B is attached to actor A, if actor A’s data layer is unloaded, actor B will still persist in the world.

One way I thought of to get around this is to have a Dummy actor ( that is not spatially loaded) in every data layer, so when you spawn an actor you can set the data layer’s dummy as the spawned actor’s owner, so it is assigned to the correct data layer (I think). But it would be nice to have an option in the World’s settings that automatically assigns a data layer to spawned actors. Anyway, back to the initial question, has anyone found a better way to assign data layers to actors at runtime? :slight_smile:

3 Likes

I would like to know more about data layers. I can’t find most of these functions listed in the API.

1 Like

If I set the actors “owner” on spawn, when I unload the cell the actor will unload as well?
Could you elaborate on how to set the actors owner on spawn?
Thank you

Also struggling with data layers , mine wont let me rename them, also missing advanced option to activate runtime at the bottom. Please help .

The question remains valid.

While it works, having a dummy actor in a DataLayer to be set as owner when spawing an actor works to place the spawned actor into the DataLayer, this requires to start the project with the world partition in question. When starting to a main menu and open the world partition at runtime, the method fails. Any actors spawned with a DataLayer dummy actor as owner will stay visible after setting the DataLayer from activated(visible) to loaded(invisble).