← Back to Insights

October 2, 2026

One File Per Actor in Unreal Engine: A Practical Workflow for Environment Teams

Table of contents

The short answer

One File Per Actor, or OFPA, is an Unreal Engine workflow that saves each placed Actor to its own external file instead of writing every change into one large level file. Two environment artists can work in different parts of the same map and submit their changes without both editing the same .umap package. That removes one of the oldest bottlenecks in collaborative level production.

The catch is that OFPA solves a specific source-control problem. It does not make binary Unreal assets mergeable, assign ownership, prevent artists from editing the same Actor, or organize a messy level. Teams still need clear work zones, changelist reviews, naming standards, and a plan for shared assets. The technology creates room for parallel work; the production process decides whether that room stays usable.

Why this workflow is current again

TT Games recently described how World Partition allowed many team members to work in parallel on the large Gotham City map for LEGO Batman: Legacy of the Dark Knight. The same system kept only the needed content loaded and active at a given time. That combination matters: a dense open world has to be editable by many people before it can be streamed efficiently for players.

Epic's current Unreal Engine 5.8 documentation connects those two sides directly. World Partition handles automatic data management and distance-based streaming, while One File Per Actor separates placed Actors for editor collaboration. For studios commissioning environment work, OFPA is worth understanding because it affects how internal and external teams exchange, review, and integrate map changes.

What changes under the hood

Without OFPA, moving a prop, changing a light, or editing another placed Actor can modify the level package that contains it. If that package is locked in source control, everyone else may have to wait. If the team allows concurrent edits, it can end up with a binary conflict that cannot be resolved like a text-file merge.

OFPA stores Actor instances in a __ExternalActors__ directory beside the level. The filenames are encoded, but Unreal's changelist view can show the Actor name, level path, and asset type. The editor still presents one coherent world. The separation mostly appears in source control, where the team submits the Actor files it changed rather than the whole level package. Cooked builds embed the Actors back into their level files, so OFPA is an editor workflow rather than a runtime feature.

What parallel environment work looks like

A practical setup might give one artist ownership of a market district while another dresses an industrial waterfront. A level designer can refine cover and traversal in a third area. Lighting can work through a dedicated Data Layer or agreed set of Actors. Because those edits touch different external Actor files, each person can submit useful work without taking the whole city map away from everyone else.

Parallel does not mean uncoordinated. A shared plaza, hero building, or intersection can still pull several disciplines into the same space. The team should name an owner for that area or schedule short editing windows. The cheapest conflict is the one avoided in planning. OFPA narrows the collision from an entire map to individual Actors, which makes ownership easier to manage but does not remove the need for it.

World Partition, Data Layers, and OFPA do different jobs

These systems are often discussed together, but they are not interchangeable. World Partition divides a large world into streamable grid cells and loads content based on streaming sources. One File Per Actor changes how placed Actors are stored for editing and source control. Data Layers organize groups of Actors for editor visibility or runtime states such as day, night, damage, or quest progression.

A healthy large-world setup uses each tool for its own job. World Partition should follow streaming and performance needs. Data Layers should express useful production or gameplay groupings. OFPA should reduce file contention. If a team uses Data Layers only to imitate department folders, or changes grid settings simply to separate artist ownership, the project structure starts serving the org chart instead of the world.

The conflicts OFPA cannot prevent

Shared materials, textures, Blueprints, PCG graphs, Level Instances, and other content assets remain separate binary packages. If two people edit the same master material, OFPA has nothing to say about the conflict. Actor references can also create bundles that load together, so an innocent-looking edit may have wider consequences than its map position suggests.

There are softer conflicts too. Two artists can submit different props into the same doorway without touching the same file. A lighting change can undermine another artist's material review. A revised modular kit can shift dozens of placements even though only one source asset changed. Daily syncs, visual reviews, stable shared assets, and short feedback loops still carry most of the production load.

Source control determines how pleasant it feels

Epic's built-in changelist support is designed around Perforce. The editor can decode external Actor entries and help users validate what they are about to submit. That matters because partial submissions can leave missing changes or dangling references. Teams should submit content and Actor files through the Unreal Editor when their source-control setup supports that workflow.

Git can store an OFPA project, but thousands of small binary Actor files and Git LFS pointers create different maintenance costs. A small team may accept those costs. A larger production should test clone time, status performance, locking behavior, storage growth, and artist recovery before committing to a repository strategy. Source control is part of the environment pipeline, not an IT decision that can be postponed until the map is crowded.

A workable review and submission routine

Keep environment changelists narrow enough to understand. A district dressing pass, lighting correction, or collision cleanup is easier to review than a week of mixed edits. Before submission, load the affected region, inspect the changelist in Unreal, confirm that new assets and their Actor placements are both included, and run the relevant map validation or playtest.

After submission, another team member should sync and open the region from a clean state. This catches missing dependencies, stale references, and local-only assumptions while the change is still fresh. Automated checks help, but a short human resync test is hard to beat for outsourced environment deliveries. If the receiving project cannot reconstruct the scene, the handoff is not finished.

How external environment partners should use it

An external studio should not receive broad access to a production map with no boundaries. The client and partner should agree on editable regions, protected shared assets, naming rules, Data Layer use, review cadence, and who resolves cross-discipline questions. A small vertical slice is the right place to test the arrangement before the team spreads across a full biome or city district.

The partner also needs the same version-control expectations as the internal team. That includes when to lock shared assets, how to name changelists, where validation notes live, and whether Actor moves are allowed outside an assigned region. The goal is not to wall off the external team. It is to make their changes predictable enough that integration becomes routine rather than an event.

What clients should expect in the handoff

A production-ready environment delivery should list the level and engine version, the regions changed, Data Layers touched, shared assets modified, and any build steps needed for HLODs, PCG, navigation, or lighting. The changelist should include the external Actor files and every new dependency. Screenshots or a short capture help reviewers connect a long Actor list to visible changes in the map.

Skyroid Studios treats that information as part of the scene, not an optional note after the art is complete. A clean Unreal handoff lets a client sync, load the intended region, understand the change, and continue working. OFPA makes that possible at Actor scale, but documentation turns a technically valid submission into a usable delivery.

The practical takeaway

One File Per Actor gives Unreal environment teams a better unit of collaboration. Instead of locking an entire map to move one prop, artists can work against the Actor files they actually change. That is a major improvement for open worlds, dense city maps, and any production where several people need to edit one space.

Use OFPA with explicit ownership, sensible Data Layers, reviewed changelists, and a source-control system tested against the real project. Keep shared assets stable and verify deliveries from a clean sync. The workflow works best when nobody has to think about its file structure during ordinary art tasks, yet everyone knows exactly how to review and recover a change when something goes wrong.