Skip to content
- Infinite chunk streaming from an actor pool, with no spawn or destroy overhead.
- Async mesh generation on a thread pool, so the game thread is never blocked.
- Async collision cooking, on by default.
- Seamless chunk normals from a one-vertex border overlap.
- Distance-based LOD with a resolution per ring, plus a low-resolution far terrain ring beyond the near grid.
- Floating-point precision fix: no texture stretching at 2M+ world units.
- Seeded RNG per chunk: deterministic foliage, grass, actor, building, road and settlement placement.
- Layered noise stack with any number of layers. Layer 0 is the continental mask.
- CLMNoise: Perlin, Simplex, Cellular, Ridged Multifractal and Domain Warp. Original code, no third-party dependencies.
- Domain warping applied globally before layer evaluation.
- Hydraulic erosion: a droplet simulation that runs fully async.
- Terrain deformation (experimental): real-time spherical brushes whose edits persist across chunk rebuilds.
- Runtime seed changes:
SetSeed() rebuilds the world gradually with no hitching.
- Biome blending: vertex-colour weights for Grass, Rock, Snow, Beach and Underwater.
- Beach layer: a height band above sea level with flattening.
- Spatial biomes: temperature and humidity noise produce Tundra, Boreal, Desert and Tropical zones, each with its own snow, rock and grass thresholds.
- Desert sand layer with no material changes needed.
- Biome climate filter: a per-foliage and per-grass Climate Biomes mask, for example cactus only in deserts or pine only in boreal zones.
- Biome Blend / sharpen for flat biome interiors that blend only at the edges.
- Per-biome terrain height: flatten or raise terrain by climate (deserts are flatter by default). Roads, rivers and terrain queries all follow the shaped ground.
- ISM foliage from
BiomeFoliageAsset data assets, with no BVH spike on chunk load. HISM is optional.
- Dense grass on a world-snapped grid, with fixed spacing (
GrassGridSize) and clustering around world-fixed centres.
- Per-instance collision range: one asset can show a wide visual field with physics only near the player.
- Slope sink depth: no floating blades on slopes.
- Nanite compatible: ISM foliage and grass render correctly through Nanite.
- Water plane at sea level that follows the player.
- Subdivided water mesh for World Position Offset waves, with a manager-driven Wave Height.
- Wet Zone Offset widens the shoreline wet/foam band without moving the water plane.
MPC_WorldGen exposes the water level and per-frame camera-underwater state to materials.
- Underwater post-process material with tint and refraction.
- Deterministic settlements: a pure function of seed and region, so they are infinite, reproducible and seam-free.
- Procedural road network: a planar graph (at most 4 roads per town) routed with slope-weighted A*, water avoidance and above-water causeways.
- Terrain-graded roadbeds with a painted tarmac weight, plus flat settlement pads.
- Junctions: through-roads and perpendicular T-branches, rendered as spline-mesh roads.
- Bridges with their own deck mesh and material, optional gorge bridging and extend-to-ground pylons.
- Roadside props: instanced light poles, mile posts, guard rails, bollards and pylons.
- Road and settlement data assets, reusable across levels.
- Hitch-free road streaming: time-sliced mesh builds and collision only in a window around the player.
- Exclusion volumes: flatten terrain and suppress foliage and grass inside a placed box, with a blend radius.
- Actor spawner:
WorldGenSpawnerAsset scatters real Actors by biome, slope and height, rate-limited and deterministic.
- Roadside and town buildings: spawner assets can target Near a Road or Near a Settlement with an edge-to-edge distance band, face the road (Align To Target), stay on the graded shoulder, or stay away from roads (Invert).
- Footprint-aware placement: each building’s real footprint stays off tarmac, pads and other spawns, with Rest On Ground, Foundation Depth and Stand On Highest Point for uneven ground.
- Consumed positions: mark mined or collected spawns and save/restore them.
- Terrain query API:
SampleTerrainAt() (height, slope, normal, biome weights), GetHeightAtWorldPos() and GetGradedHeightAt().
- Multiplayer: terrain streams around every connected player. Listen server, client and dedicated server work with no extra setup.
- Dedicated server mode builds collision geometry only.
- Per-player terrain load delay, including late joiners.
- Runtime navigation (experimental): an auto-spawned NavMeshBoundsVolume follows the player. Coverage is limited at large tile sizes; see Troubleshooting.
- Automated test suite: a shippable
WorldGenTestRunner actor (also the WorldGen.RunTests console command and -WorldGenTest launch switch) visits junctions up to 80 km out. It checks road continuity, overlaps, buried or floating tiles, missing meshes, open ports, seams and building placement, and writes a JSON report with screenshots.
- Full C++ source (one runtime module,
WorldGen)
- Pre-built landscape material with biome blending
- Sample foliage and grass data assets, with tree, pine, cactus and grass meshes and materials
- Sample spawner data asset and demo actor
- Gas station, diner, shop row and warehouse building Blueprints with roadside and in-town spawner assets
- Sample road, bridge, light-pole and pylon meshes with materials, plus road and settlement data assets
- Demo map and automated test map