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.
V1.1 adds a dedicated dense grass system with player-radius culling, per-asset resolution/radius control, and slope-aware instance sinking.
V1.2 adds hydraulic erosion — particle-based droplet simulation that carves valleys, sharpens ridges, and deposits sediment, running entirely on the background thread.
──────────────────────────────
CORE FEATURES
──────────────────────────────
▸ Infinite Chunk Streaming — actor pool recycles chunks at runtime (no spawn/destroy overhead). Configurable view distance up to any radius.
▸ Async Mesh Generation — geometry built entirely on a thread pool. Game thread is never blocked.
▸ Async Collision Cooking — bUseAsyncCooking enabled by default.
▸ Seamless Chunk Normals — 1-vertex border overlap ensures no visible seams between tiles.
▸ Layered Noise Stack — stack up to N noise layers. Layer 0 acts as a continental mask controlling where mountains appear vs flat plains.
▸ FastNoise Lite Integration — Perlin, OpenSimplex2, Cellular, Ridged Multifractal, Domain Warp Progressive (MIT licensed, ships with source).
▸ Domain Warping — global warp offsets applied to all coordinates for natural terrain variation.
▸ Biome Blending — vertex color blend weights for Grass / Rock / Snow / Beach / Underwater. Plug directly into any landscape material.
▸ Beach Layer — configurable height band above sea level. Beach weight baked into UV1.x for smooth sand transitions.
▸ Foliage System — BiomeFoliageAsset data assets drive HISM scatter on the thread pool. Per-mesh density, height, slope, and scale constraints. Per-entry collision toggle — enable only on meshes that need physical interaction.
▸ Dense Grass System — UWorldGenGrassAsset data assets drive ISM ground cover on a dedicated high-resolution grid independent of mesh resolution. Grid is world-snapped and player-radius culled (identical behaviour to Landscape Grass Output). Per-asset Grass Resolution, Grass Radius, density, slope constraints, scale, and normal alignment. Grass follows the player seamlessly at runtime.
▸ Hydraulic erosion (V1.2) — particle droplet simulation with configurable strength, deposition, evaporation, sediment capacity and brush radius. Fully async, zero game thread cost. Enable per-world with a single toggle.
▸ Slope Sink Depth — automatically sinks grass blades into the terrain on slopes to prevent floating. Scales with sin(slope angle), configurable per asset.Instances reused across chunk recycling.
▸ Water Plane — follows player on a configurable timer. Covers full view distance.
▸ Editor Preview — CallInEditor button rebuilds terrain without entering Play mode.
──────────────────────────────
TECHNICAL HIGHLIGHTS
──────────────────────────────
▸ Pure C++ runtime — no Blueprints required (Blueprint-friendly exposed parameters)
▸ ProceduralMeshComponent-based geometry
▸ Fully exposed parameter categories with tooltips and clamped slider ranges
▸ Seeded RNG per chunk — deterministic foliage placement
▸ Terrain Coverage readout in the Details panel (e.g. "9 × 9 chunks — 9.0 km × 9.0 km")
▸ Grass and foliage collision independently toggleable per asset entry
──────────────────────────────
INCLUDED
──────────────────────────────
▸ Full C++ source
▸ Pre-built landscape material (M_LandscapeAutoTextured) with biome blending wired up
▸ Sample foliage and grass data assets (grass biome)
▸ Sample tree and pine meshes with materials
▸ Demo map
──────────────────────────────
PERFECT FOR
──────────────────────────────
Open-world games, survival games, exploration prototypes, procedural world tools, and any project needing infinite streaming terrain without writing low-level noise or chunk management code.
──────────────────────────────
ADDITIONAL NOTES
──────────────────────────────
Requires the ProceduralMeshComponent plugin (bundled with Unreal Engine 5, enabled by default).
Includes FastNoise Lite (MIT license, Jordan Peck / Auburn) — ships in plugin source tree, safe for commercial use.