PackedLevelActors - Workflow and Best Practices Clarifications

Hello,

I’ve been looking at Level Instances and PackedLevelActors and had a few questions around proper usage of PLA’s.

When a PLA is created both a BPP and a LevelInstance are created.

  • Is this simply for flexibility such that I can edit the BPP and any LevelInstance with an instance of that BPP in it is updated?
    
  • When the LevelInstance is created with the BPP within it - is it best practice to place no other assets inside that LevelInstance (e.g. it's solely the BPP that triggered its' creation?)
    
  • If not, is it best practice / does it matter if that LevelInstance has solely BPP's in it? Is that LevelInstance specially optimized such that I should avoid placing dynamic content inside next to the BPP?
    

Generally regarding Level Instances:

  • Is there a maximum recommended nested depth? That is it's possible to have a LI nested within an LI, nested within ... etc. Is there a depth that should not be exceeded - if so, why?
    

To answer your questions:

Is this simply for flexibility such that I can edit the BPP and any LevelInstance with an instance of that BPP in it is updated?

When you create a PLA (Packed Level Actor) both the level and blueprint work together. The level is just a normal level, meanwhile the Blueprint is of parent Packed Level Actor. The blueprint is using the assets found in the level to construct a instance static mesh per one type of mesh in the level. It should ignore anything that isn’t a static mesh, as those assets and components can’t be used in the Packed Level Actor blueprint.

When the LevelInstance is created with the BPP within it - is it best practice to place no other assets inside that LevelInstance (e.g. it’s solely the BPP that triggered its’ creation?)

You are free to put whatever you want in the Level that is connected to the blueprint, but it is not a good practice. Anything that isn’t a static mesh won’t work in the blueprint.

If not, is it best practice / does it matter if that LevelInstance has solely BPP’s in it? Is that LevelInstance specially optimized such that I should avoid placing dynamic content inside next to the BPP?

The level is just a normal level, and if you want to use it as a level instance in the world that contains a Packed Level Actor blueprint, it’s completely fine. Keep in mind that nesting too many assets could cause loading problems and dependencies in the editor.

Is there a maximum recommended nested depth? That is it’s possible to have a LI nested within an LI, nested within … etc. Is there a depth that should not be exceeded - if so, why?

I somewhat answered this in the question above. In essence, this bogs down to loading times in the editor and workflow. You don’t want to nest too deeply as it creates dependencies. I have also heard from some of my colleagues that nesting causes immense lag in editor. So I would avoid it.

Other notes:
Place the BPP (Packed Level Actor) Blueprint in the world if you want to leverage the mesh instancing. If you don’t have multiple of the same meshes in the packed level actor, there are no gains from using it.

I hope this was helpful! :slight_smile: