
Description
WorldGen is a runtime C++ plugin for Unreal Engine 5 that generates infinite procedural terrain with async chunk streaming, layered noise, biome blending, and foliage scattering — all without blocking the game thread.
Drop WorldStreamingManager into your level and get a fully streaming open world in minutes.
Playable Demo | Documentation | Discord Community | Preview
V1.12.2 Road Meshes and Junctions
V1.12.1 Procedural Road Network
V1.11 Infinite AI Navigation
V1.10 Spatial Biomes
V1.9 Spawn Actors Resources NPCs
V1.8 Exclusion Volumes
V1.7 Grass Upgrade
V1.6 Critical Fixes
V1.4 Runtime Terrain Deformation
──────────────────────────────
CORE FEATURES
──────────────────────────────
▸ Infinite Chunk Streaming — actor pool, no spawn/destroy overhead
▸ Async Mesh Generation — geometry built on a thread pool. Game thread never blocked.
▸ Async Collision Cooking — bUseAsyncCooking enabled by default.
▸ Seamless Chunk Normals — 1-vertex border overlap eliminates seams.
▸ Layered Noise Stack — up to N layers. Layer 0 acts as a continental mask.
▸ CLMNoise (V1.7) — Perlin, Simplex, Cellular, Ridged Multifractal, Domain Warp. No third-party dependencies.
▸ Domain Warping — global warp offsets applied before all layer evaluation.
▸ Biome Blending — vertex color weights for Grass / Rock / Snow / Beach / Underwater.
▸ Beach Layer — configurable height band above sea level, baked into UV1.x.
▸ Spatial Biomes (V1.10) — temperature + humidity noise → four zones (Tundra/Boreal/Desert/Tropical), bilinearly blended, with per-biome snow/rock/grass thresholds and density.
▸ Desert Sand Layer (V1.10) — UV1.x sand weight in desert zones, no material changes needed.
▸ Biome Climate Filter (V1.14) — per-foliage-entry / per-grass-asset Climate Biomes bitmask. Combined with the surface biome it picks a cell of the matrix — cactus in Desert only, pine in Boreal only. Default = all climates.
▸ Biome Blend / Sharpen (V1.14) — sharpens temperature/humidity so each biome has a flat 100% interior and blends only at the edges — distinct regions, not one gradient.
▸ Per-Biome Terrain Height (V1.14) — flatten/raise terrain by climate (deserts read flatter) via Height Amplitude / Bias / Sharpness. Roads, rivers and the query API all sit on the shaped ground. Seam-free.
▸ ISM Foliage System — BiomeFoliageAsset data assets, no BVH spike on chunk load (V1.7). Optional HISM.
▸ Foliage on New Chunks (V1.7) — appears as the player moves, not just at spawn.
▸ Dense Grass System — ISM ground cover on radius-based world-snapped grid.
▸ GrassGridSize (V1.7) — fixed world-space spacing independent of radius. Safe near/far stacking.
▸ Grass Clustering (V1.7) — natural groupings with world-space-fixed centers. Deterministic.
▸ Per-Instance Collision Range (V1.13.1) — one asset, full visual field with physics only on instances near the player. Replaces the near/far two-asset pattern.
▸ Hydraulic Erosion — particle droplet simulation, fully async.
▸ Slope Sink Depth — auto-corrects floating blades on slopes.
▸ Terrain Deformation — real-time spherical brushes, persistent across chunk rebuilds. (Experimental)
▸ Distance-Based LOD — configurable per-ring resolutions. Default [256, 256, 128, 64].
▸ Deterministic Settlements (V1.12) — settlement sites are a pure function of (seed, region): infinite, reproducible, seam-free.
▸ Procedural Road Network (V1.12) — planar RNG graph between settlements (no crossings, ≤4 roads/town), slope-weighted A* routing (water avoidance + causeways), terrain-graded roadbeds + UV1.G tarmac weight, settlement pads, junctions. Spline-mesh roads, optional near-player collision.
▸ Bridges (V1.13) — roads span water with their own deck mesh + material, detected for free from the road's clamped height. Optional gorge bridging; pylons via extend-to-ground props.
▸ Roadside Props (V1.13) — instanced meshes along roads (light poles, rails, bollards, pylons) with per-type spacing, side/offset, scale, rotation, ground-snap, bridge filters and collision. Streamed and culled with the roads.
▸ Road Data Assets (V1.13) — road/bridge/prop look on a WorldGenRoadAsset, settlement placement on a WorldGenSettlementAsset. Assign on the manager, reuse across levels.
▸ Hitch-Free Road Streaming (V1.13) — road mesh build is time-sliced over frames; collision cooks only in a sliding window around the player.
▸ Floating-Point Precision Fix (V1.6) — eliminates texture stretching at 2M+ world units.
▸ Multiplayer Support — streams around all connected players. Per-player gravity delay.
▸ Dedicated Server Mode — collision geometry only. Visual mesh, foliage, and grass skipped.
▸ Exclusion Volumes (V1.8) — flatten terrain and suppress foliage in a placed box, smooth blend radius, flatten/foliage toggled independently.
▸ SampleTerrainAt() (V1.9) — synchronous BP-callable query: height, slope, normal, and all biome blend weights.
▸ GetHeightAtWorldPos() (V1.9) — terrain Z at any world XY, safe to call every frame.
▸ Actor Spawner System (V1.9) — WorldGenSpawnerAsset scatters real Actors around the player, filtered by biome/slope/height (radius-based, rate-limited, deterministic). Consumed positions track mined/collected actors, save/restore across sessions.
▸ Runtime Navigation (V1.11 — Experimental) — auto-spawned NavMeshBoundsVolume follows the player, nav above sea level only, Nav Invoker-compatible. Limited coverage at large tile sizes (see Additional Notes).
▸ Global Sea Level.
──────────────────────────────
TECHNICAL HIGHLIGHTS
──────────────────────────────
▸ Pure C++ runtime — Blueprint-friendly exposed parameters
▸ ProceduralMeshComponent-based geometry
▸ Seeded RNG per chunk — deterministic foliage, grass, actor, and road/settlement placement
▸ Deterministic road network — settlements and routes are a pure function of the seed, so terrain grading is identical across chunk borders (seam-free) and reproducible from the seed alone
▸ Terrain Coverage readout in Details panel
▸ Collision independently toggleable per asset entry for grass and foliage
▸ Listen server, client, and dedicated server — no additional setup required
▸ Nanite compatible — ISM foliage and grass render correctly through Nanite
──────────────────────────────
INCLUDED
──────────────────────────────
▸ Full C++ source
▸ Pre-built landscape material with biome blending
▸ Sample foliage and grass data assets
▸ Sample tree, pine, and grass meshes with materials
▸ Sample spawner data asset and demo actor
▸ Sample road, bridge, light-pole and pylon meshes with materials
▸ Sample road + settlement data assets (WorldGenRoadAsset / WorldGenSettlementAsset)
▸ Demo map
──────────────────────────────
PERFECT FOR
──────────────────────────────
Open-world games, survival games, RPGs, exploration prototypes, and any project needing infinite streaming terrain, biome-aware resource placement, hand-authored content areas, AI navigation, and a procedural road network connecting towns — without writing low-level noise, chunk management, terrain query, nav mesh, or road-routing code from scratch.
──────────────────────────────
ADDITIONAL NOTES
──────────────────────────────
Requires the ProceduralMeshComponent plugin (bundled with Unreal Engine 5, enabled by default).
Runtime navigation is Experimental — it requires Project Settings → Navigation System → Runtime Generation = Dynamic, and at large tile sizes (the 2 km default) Unreal's runtime navmesh only covers part of the area around the player; use a smaller tile size / view distance for reliable coverage.























