Skip to content

WorldGen FAQ

Which Unreal Engine versions are supported?

Section titled “Which Unreal Engine versions are supported?”

Unreal Engine 5.4, 5.5, 5.6, 5.7 and 5.8. See Requirements.

Is the terrain generated in the editor or at runtime?

Section titled “Is the terrain generated in the editor or at runtime?”

At runtime. WorldGen generates and streams terrain while the game runs, with no baking or pre-generation. Preview Terrain lets you see the result in the editor while you tune settings.

Yes, with no configuration. Terrain streams around every connected player at the same time. A dedicated server builds collision geometry only (no visual mesh, foliage or grass), while clients get full visual terrain around their own pawn. The terrain load delay is applied per player, including players who join late.

Can I generate a different world every session?

Section titled “Can I generate a different world every session?”

Yes. Call SetSeed() with a new value:

Manager->SetSeed(FMath::RandRange(0, INT_MAX));

Call it before BeginPlay (for example in your GameMode constructor) for a random world each session. You can also call it mid-game: visible chunks rebuild gradually, settlements and roads re-resolve, and spawner actors are repositioned. Changing the seed resets consumed positions, so save them first if they matter.

Can I place hand-built content, such as a village or dungeon entrance?

Section titled “Can I place hand-built content, such as a village or dungeon entrance?”

Yes, with an exclusion volume. Search Place Actors for WorldGenExclusionVolume, resize its box over your content, move it to the floor height you want, and click Preview Terrain. The terrain flattens to the volume’s height and foliage and grass are cleared, with a smooth blend at the edge.

How do I save resources the player has mined or collected?

Section titled “How do I save resources the player has mined or collected?”

Use consumed positions:

// When the player collects a spawned actor:
Manager->MarkSpawnConsumed(FVector2D(Actor->GetActorLocation()), SpawnerAsset);
// Save to your save game:
TArray<int64> Keys = Manager->GetConsumedSpawnKeys();
// Restore on load:
Manager->RestoreConsumedSpawnKeys(LoadedKeys);

Yes, with Enable Navigation, but runtime navigation is experimental. At large tile sizes (including the 2 km default), Unreal’s runtime navmesh only covers part of the area around the player. It works reliably with a smaller tile size or view distance. See Troubleshooting.

Yes. Set a spawner asset’s Proximity Target to Near a Road or Near a Settlement:

Want Proximity Target Min / Max (cm) Other settings
Gas stations and diners along highways Near a Road 300 / 4000 Align To Target, Ignore Biome, Grid 6000–7000, Density 0.2–0.25
Shops and warehouses in towns Near a Settlement 0 / 10000–14000 Align To Target, Ignore Biome, Grid 5000–6000
Wildlife that avoids civilisation Near a Road 0 / 8000 Invert
Signs on the verge Near a Road 0 / 100 Align To Target, Align Yaw Offset 90, small Grid

Roads must be enabled, with a Road Asset and Settlement Asset on the manager.

How do I read terrain height from gameplay code?

Section titled “How do I read terrain height from gameplay code?”
// Full sample: height, normalized height, slope, normal and biome weights
FHeightmapSample S = Manager->SampleTerrainAt(FVector2D(X, Y));
// Height only
float Z = Manager->GetHeightAtWorldPos(FVector2D(X, Y));
// Height of the built, graded mesh (roads, pads and rivers applied)
float Graded; bool bOk = Manager->GetGradedHeightAt(FVector2D(X, Y), Graded);

Yes. ISM foliage and grass render correctly through Nanite.

Can I use WorldGen and PlanetGen in the same project?

Section titled “Can I use WorldGen and PlanetGen in the same project?”

Yes. PlanetGen’s classes and headers are uniquely prefixed, so the two plugins install side by side without collisions.

How do I check my map still works after a change?

Section titled “How do I check my map still works after a change?”

Run the built-in test suite: type WorldGen.RunTests in the console of any running map, or place a WorldGenTestRunner actor. It visits junctions across the world, checks roads and building placement, and writes a report with screenshots to Saved/WorldGenTests/.