Streamlining Large Open Worlds with Unreal Engine 5's World Partition
Learn how Unreal Engine 5’s World Partition replaces manual level streaming with automatic grid‑based streaming, OFPA files, Data Layers, and HLOD, plus a conversion workflow and tuning tips.
22 Feb 2026, 21:52 UTC

When a game world grows beyond a few kilometers, the old workflow of manually creating sublevels and placing streaming volumes becomes a bottleneck. Artists spend time duplicating actors, designers juggle visibility flags, and version control fills with conflicting .umap files. Unreal Engine 5’s World Partition system addresses these pain points by turning a single large map into an automatic grid‑based streaming system.
Understanding World Partition
World Partition replaces the manual sublevel approach with a runtime grid. The editor splits the map into cells; each cell streams its actors in or out based on the player’s position. Every actor is saved as its own file using the One File Per Actor (OFPA) scheme, which reduces merge conflicts when multiple developers edit the same world. Streaming behavior is driven by two main settings found in World Settings → World Partition Setup: the cell size (the dimensions of each grid square) and the loading range (how many cells around the player are kept in memory).
Beyond basic streaming, World Partition adds two powerful layers:
- Data Layers – the successor to streaming layers – let you group actors (e.g., day‑time vs. night‑time variants) and enable or disable those groups at runtime or in the editor.
- Hierarchical Level of Detail (HLOD) automatically builds proxy meshes for distant cells, so far‑away geometry renders cheaply without creating LODs for each actor individually.
Converting a Level to World Partition
Here’s a practical workflow for migrating an existing UE5 map:
- Open the level you want to convert in the editor.
- From the main menu choose Tools → Convert Level to World Partition.
- Confirm the conversion. The editor will create a new World Partition asset and rewrite each actor into its own .uasset file under the level’s folder.
- Save the level and commit the changes to source control. You should see many small actor files instead of a single large .umap.
After conversion, open World Settings and verify that World Partition is enabled. Adjust the Cell Size (start with the default 5000 uu) and Loading Range (default 2 cells) to match your world’s scale and target hardware.
Tuning Streaming and HLOD
Streaming quality is judged by two observable factors: pop‑in (actors appearing too late) and memory/frame‑time spikes when many cells load at once. To tune:
- Play the level in the editor (PIE) and open the console (
`). - Enter
wp.Runtimeto display streaming statistics, including the number of loaded cells, memory used, and HLOD draw calls. - Walk across the world at your intended player speed. Watch the stats; if you see frequent spikes or noticeable pop‑in, reduce the cell size or increase the loading range.
- Iterate until the stats stay within your memory budget and the visual transition feels smooth.
For HLOD, you can view the generated proxies by enabling viz.HLOD in the console. If distant geometry looks too crude, increase the HLOD screen size threshold in the World Partition settings; if it draws too many triangles, lower the threshold.
Trade‑offs and When to Skip
World Partition shines for expansive, open‑world maps where streaming and OFPA reduce workflow friction. However, it is not a universal win:
- Small, linear, or arena‑style levels gain little from automatic streaming; the extra files and runtime overhead can outweigh benefits.
- Cell size and loading range are highly dependent on your target hardware’s memory bandwidth and CPU budget. The defaults are a starting point, not a prescription.
- Certain legacy Blueprint patterns that relied on per‑sublevel level scripts or lighting scenarios may need refactoring after migration.
- Enable cell visualization with
wp.ShowGrid 1(if available in your version) to see the streaming grid overlay. - Run a packaged build (not just PIE) and repeat the
wp.Runtimewalk‑through; streaming and HLOD can differ between editor and cooked output. - Profile memory and frame time using Unreal Insights or the built‑in Stat Unit while traversing the map at peak speed.
If your project fits the first bullet, consider staying with manual streaming volumes until the world truly benefits from grid‑based streaming.
Verification and Next Steps
To confirm that World Partition behaves as expected:
Once you have stable streaming statistics and acceptable visual quality, commit the converted level and share the updated cell size and loading range values with your team as a baseline for further iteration.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.