Quick answer: In World Partition, foliage lives in cell data. Open the World Partition Editor, load the cells covering your painted region (or mark them Always Loaded), and re-paint if needed. Bump Foliage Type End Cull Distance to keep instances visible at range.

You spend an hour painting grass across a hillside. Save, close, reopen the level. The grass is gone. Or you fly far from the painted region in PIE and grass disappears 100m away. Two different World Partition configs cause both.

The Symptom

Painted foliage gone on level reopen. Or grass culls visibly within view distance. Sometimes painting on a slope produces no instances at all even though you see the brush preview.

What Causes This

UE5 World Partition stores foliage instances in per-cell data. The editor only loads cells you have selected as visible/loaded. If you painted in a cell, then closed and reopened with that cell unloaded, you don’t see the instances — even though they’re still on disk.

Cull distance is governed by the Foliage Type asset’s End Cull Distance, which defaults to a few thousand units. For large open worlds this is too tight.

The Fix

Step 1: Open the World Partition Editor. Window → World Partition → World Partition Editor. The grid view shows loaded vs unloaded cells.

Step 2: Load the cells covering your painted region. Marquee-select the cells, right-click, Load Region(s). The painted instances appear.

Step 3: Persist with Always Loaded (optional). Right-click cell → Mark As Always Loaded for editor-time. This is editor-only; runtime World Partition still streams.

Step 4: Tune Foliage Type cull distance. Open the Foliage Type asset (in Foliage palette, right-click an entry → Edit). Procedural Foliage Spawner is irrelevant here; we want the Static Mesh Foliage Type.

InstancedFoliage:
  Cull Distance:        Start = 8000,  End = 12000
  Use Custom Cull Dist: true
  LOD Distances:        match end cull
  Cast Shadow:          off at distance (Light cast settings)

Tighter cull distances reduce draw calls; wider ones improve fidelity. Tune per asset based on size.

Convert to ISM Actor for Stable Control

If you find foliage management painful in World Partition, select the painted instances in the Foliage Tool and Convert to InstancedStaticMeshActor. This produces a normal actor with full transforms; you place it explicitly in the level, can control its visibility, and World Partition treats it like any other actor.

Selectable Procedural Foliage Volume is the alternative for procedurally distributed forests — it generates instances at cook time so they’re always present.

Verifying

Reopen the level cold. Open World Partition Editor before flying around. Compare actor counts. stat foliage in PIE shows live instance counts at the camera position.

“Load cells. Tune End Cull Distance. Convert to ISM if you want it permanent. Foliage stays put.”

Related Issues

For Niagara culling, see Niagara bounds. For HLOD foliage popping, see LOD popping.

Cells loaded. Cull tuned. Convert to ISM if you can. Grass stays.