Skip to main content

A Quick Guide: Packed Level Actors & Level Instancing in Unreal Engine with KitBash3D

Elaine Deveney avatar
Written by Elaine Deveney
Updated this week

Packed Level Actors (PLAs) are part of Unreal Engine’s Level Instancing system, introduced in UE5, designed to make large-scale world building more efficient.

They reference a separate level and package its static mesh geometry into a single, optimized actor that can be placed multiple times in other levels.

What Are Packed Level Actors?

  • Purpose: Optimized for static world-building elements — buildings, large props, dense geometry clusters.

  • Static Mesh Only: Unlike regular Level Instances, PLAs only contain static meshes (no skeletal meshes, particle systems, or dynamic actors).

  • Performance-Oriented: Uses Instanced Static Mesh (ISM) and Hierarchical Instanced Static Mesh (HISM) components to batch identical meshes, reducing draw calls.

  • World Partition Support: Integrates with UE’s One File Per Actor (OFPA) and World Partition systems for efficient asset streaming.

  • Nanite-Ready: Works seamlessly with Nanite for high-poly meshes, minimizing performance costs.


Why Use Them?

  • Efficiency: Large, dense worlds can run at higher frame rates compared to placing each mesh as a separate actor.

  • Reusability: Place the same structure multiple times without duplicating mesh data.

  • Modular World Building: Build assemblies once, reuse them anywhere.

  • Nested Instances: A PLA can contain other PLAs

Use Packed Level Actors when you need static, repeatable, performance-optimized geometry in your levels. For most world building, this should be the go to choice. Break them or convert to regular blueprints only when interactivity, animation, or one-off changes are required.

Assets provided by Kitbash3D will be as Packed Level Actors by default, we recommend this in most cases, but choose the method that best suits your project!


How to Create a Packed Level Actor

  1. Select the static mesh actors you want to combine.

  2. Right-clickLevelCreate Packed Level Actor.

  3. Save the resulting Blueprint and its associated level file.

  4. Place instances of the PLA anywhere in your world.


Editing a Packed Level Blueprint

  • In-Context Editing (Viewport or Outliner)

    • Right-click the PLA → LevelEdit.

    • This opens an isolated view of the referenced level so you can adjust meshes directly.

    • Changes are global — all instances update.

  • Limitations

    • No per-instance mesh edits unless you use UE5.5+ experimental overrides.

    • Blueprint Editor view is not ideal for editing (all meshes appear flattened into generic ISM components).



Breaking a Packed Level Actor

If you need to make a PLA’s meshes interactive or animated:

  1. Right-click → LevelBreak.

  2. Set Depth to control whether nested PLBs are also broken.

  3. Optionally disable Keep Folders to avoid clutter.

  4. After breaking, all meshes become regular static mesh actors in your level.

Pros:

  • Full freedom to move, animate, or add physics to geometry.

Cons:

  • No instancing → less efficient for performance.

Organization After Breaking:

  • Clean up any undeeded “geo” or “mtl” parent actors.

  • Flatten meshes into folders for easy selection, or parent to empty actors



Workflow Tips

When to Use PLAs:

  • Best for static, repeated geometry where performance is critical.

  • Large Levels with repeating structures/geometry assemblies

  • Dense nanite meshes that benefit from instancing

  • Avoid breaking unless interaction or unique edits are required.

When NOT to Use PLAs

  • Single-use, unique geometry: No benefit from instancing

  • Frequently modified content: Breaking and recreating PLAs is inefficient

  • Animated or interactive elements: PLAs are for static content only

  • Very small, simple meshes: Overhead may outweigh benefits

Performance Diminishing Returns

  • Fewer than 3-5 instances of a PLA in your level

  • Assets with minimal geometry (instancing overhead > benefits)

  • Highly unique, non-repeating scene elements

Converting to Traditional Blueprints:

If you’d like to use traditional blueprints, it’s simple to convert provided PLAs after breaking the provided Blueprints.

  • Select static meshes → Convert Selection to Blueprint Class for prefab-style grouping.

  • Less efficient, but useful for animated sets or scripted behavior.



Pros & Cons by Method

Packed Level Blueprint

  • Pros

    • Highest performance for static meshes.

    • Global updates — edits to the source level apply to all instances.

    • Ideal for repeated, non-interactive geometry.

    • Works seamlessly with Nanite and World Partition.

  • Cons

    • Cannot include dynamic or interactive actors.

    • Limited per-instance customization (only available with UE5.5+ experimental overrides).

Traditional Blueprint Actors

  • Pros

    • Supports all actor types, not just static meshes.

    • Global updates to all instances.

    • More flexible for mixed scene content.

    • Can be given gameplay/blueprint functions like animation or light actors

  • Cons

    • Less performance-optimized than PLAs for heavy static geometry.

    • Does not benefit from ISM/HISM batching like PLAs.

    • Not editable in context, cannot unpack in level

Static Mesh Actors

  • Pros

    • Full editing freedom per instance.

    • Supports interaction, animation, and physics simulation.

    • No link to a master asset — completely independent.

  • Cons

    • No instancing — significantly higher draw calls.

    • Requires manual organization and grouping for reuse.

    • Less efficient for large-scale scenes.


Advanced Workflows

Nested PLA Hierarchies

  • PLAs can contain other PLAs for complex assemblies

  • Useful for city blocks containing multiple building PLAs (combining multiple buildings from Cargo into a larger PLA like a city block)

  • Keep nesting depth reasonable (max 2-3 levels) for performance

  • Document your hierarchy structure for team collaboration

World Partition Integration

  • PLAs work seamlessly with World Partition streaming

  • It is recommended to use PLAs with OFPA (one file per actor) to improve asset streaming performance

  • Particularly effective for large open-world environments

  • Use appropriate streaming distance settings

  • Keep PLA sizes within one streaming grid unit, as they cannot partially load

Version Control Considerations

  • PLA blueprints and their source levels should be committed together

  • Consider branching strategy for major PLA modifications

  • Test PLA changes thoroughly before merging, making sure changes in the source levels propagated correctly to the actors

Additional Resources


Troubleshooting Common Issues

Performance Issues

Be sure to profile your scene using the available tools in Unreal, and verify where the highest costs to performance are. If you have a high number of draw calls, or a high Base Pass cost, it may be related to how PLAs are being used

PLAs Not Improving Performance

  • Verify assets are actually using Instanced Static Mesh components (check in Details panel)

  • Ensure multiple instances of the same PLA exist in your level

  • Check that identical meshes within the PLA are being batched properly (Grouped Instanced static meshes)

  • Monitor draw calls in “Stat Drawcount” command, or Viewport Options Stat→Engine→Drawcount

Memory Usage Higher Than Expected

  • Large textures in PLAs affect memory more than individual meshes

  • Consider texture streaming settings for PLA content

  • Use Nanite on high-poly meshes to reduce memory overhead

  • Monitor memory usage with Stat Memory console command


Version Compatibility and Requirements

All versions of Unreal currently supported by Cargo will utilize PLAs during import. Later versions include additional features and improvements

Unreal Engine Version Support

  • PLAs: Available in UE 5.2 and later

  • Advanced PLA Features: UE 5.2+ (per-instance overrides experimental in 5.5+)

Changes by Version

  • UE 5.3: Actor filter feature added to PLAs

  • UE 5.4+: Updates only affect ISM components and allows overrides and scripts to persist

  • UE 5.5+: Experimental feature support to allow property overrides on actors, allowing more “prefab-like” behavior

Did this answer your question?