Possible bug with level streaming and owners

Hey there.

After a couple of hours of trial and error I’ve discovered what could be a bug with level streaming and owners.

If you spawn an actor from a class and set it’s owner using the input pin, the actor will be placed in the streaming level of this owner (instead of the actor that spawns it).

However if you set the owner of the actor after it spawns, it stays in its current level and doesn’t change to the streaming level of the new owner. Can confirm this is the case with a fresh project.

Does anyone know if this is working as intended? If it is I’m disappointed that you can’t change the streaming level of the actor in this way, as there doesn’t seem to be any way to do it in blueprints once it’s been spawned (other then cloning the actor, which isn’t really the same for performance and other reasons).

The project I’ve been working on uses streaming levels pretty extensively and up until now it’s been fine just changing it on spawn. I can work around this issue for now, but it would be nice if the actor’s streaming level stayed consistent with its owner.

If anyone knows any way to change an actor’s streaming level in blueprints once it’s been spawned, without cloning the entire thing, please let me know.

Thanks.

No way to do it in blueprints, but you can in code. You would call Rename(*GetName(), GetWorld()->PersistentLevel); to move it to a persistent level, or you can get the specific level name you want to move it to. Original solution I found here: