💦 CREATE AND FUCK YOUR OWN AI CUMSLUT 🔥 TRY NOW ♥
Create AI Cumsluts 💦
April 29, 2026

WorldGen V1.11 — Complete Setup Guide & Parameter Reference (UE5 Infinite Terrain Plugin)

──────────────────────────────────────────────────────────────────────────────

🌍 WorldGen V1.11 — Official Documentation

Runtime infinite terrain for Unreal Engine 5. Generates and streams terrain around the player while your game runs — no baking, no loading screens, no pre-built heightmaps. Eleven feature updates since launch.

► Fab Marketplace: https://www.fab.com/listings/e4e93fbe-9326-40b8-a043-a809f788306a

► Project files: https://www.patreon.com/posts/156845948

► Free playable demo: https://www.patreon.com/posts/156846235

Supports UE 5.4, 5.5, 5.6, 5.7

──────────────────────────────────────────────────────────────────────────────

🆕 WHAT'S NEW SINCE V1.0

V1.1 — Dense ISM grass system with world-snapped grid, clustering, slope sink

V1.2 — Hydraulic erosion (droplet simulation, fully async — zero game-thread cost)

V1.3 — Multiplayer + dedicated server mode (collision-only on server)

V1.4 — Real-time terrain deformation with persistent deltas

V1.5 — Distance-based LOD — configurable per-ring resolution array

V1.6 — Texture stretching fix, dynamic road expansion into newly streamed chunks

V1.7 — GrassGridSize, ISM foliage, CLMNoise (no third-party dependencies)

V1.8 — Exclusion Volumes — flatten terrain and suppress foliage for POIs

V1.9 — Terrain Query API, Actor Spawner, consumed-position persistence

V1.10 — Spatial Biomes (Tundra / Boreal / Desert / Tropical), desert sand layer

V1.11 — Runtime navigation mesh — auto-spawned NavMeshBoundsVolume that follows the player

──────────────────────────────────────────────────────────────────────────────

📦 INSTALLATION

OPTION 1 — From Fab Marketplace

  1. Epic Games Launcher → Library → Vault

  2. Find WorldGen → Install to Engine → select your engine version

  3. Open your project → Edit → Plugins → search "WorldGen" → enable

  4. Restart the editor when prompted

OPTION 2 — From Patreon Project File (source)

  1. Copy the WorldGen folder into your project's Plugins/ directory

  2. Right-click your .uproject → Generate Visual Studio project files

  3. Open the solution, build, and launch the editor

  4. The plugin enables automatically — no manual activation needed

OPTION 3 — Try the Free Playable Demo

A complete .exe demo with full streaming, foliage, and AI navigation:

► https://www.patreon.com/posts/156846235

──────────────────────────────────────────────────────────────────────────────

⚡ QUICK START

Step 1 — Place the actor

Search for WorldStreamingManager in the Place Actors panel and drag it into your level near world origin.

Step 2 — Assign a material

Create a terrain material (see Material Setup below) and assign it to WorldGen > Terrain Material.

Step 3 — Preview

Select the actor and click Preview Terrain in the Details panel. Terrain builds within a second or two.

Step 4 — Play

Hit Play. Terrain streams automatically around your player character. For AI, see the Runtime Navigation section.

──────────────────────────────────────────────────────────────────────────────

🔒 PATREON MEMBERS GET

► Full project files (ready to open in UE5) — https://www.patreon.com/posts/156845948

► Early access to V1.12 features as they're built

► 2,000+ files from all CodeLikeMe tutorials

► Direct support via Patreon messages

Join from $20/mo → https://www.patreon.com/cw/CodeLikeMe

──────────────────────────────────────────────────────────────────────────────

🎨 MATERIAL SETUP

WorldGen bakes all blend weights into vertex data. Your material reads these to drive layer blending.

VERTEX COLOR CHANNELS

• R (Red) = Water — 1.0 below sea level, 0.0 above. Binary, not a gradient.

• G (Green) = Grass — base layer remainder

• B (Blue) = Rock — height + slope based

• A (Alpha) = Snow — high-altitude cap

UV CHANNELS

• UV1.R (TextureCoordinate 1, R) = Beach / Sand — 1.0 at waterline, fades to 0 above. Also carries Desert biome sand weight when Spatial Biomes are enabled.

• UV1.G (TextureCoordinate 1, G) = Road (experimental)

MATERIAL PARAMETER

• SeaLevelZ (Scalar) — automatically pushed by WorldStreamingManager at BeginPlay and on parameter changes. Use this for a clean per-pixel underwater mask.

RECOMMENDED BLEND ORDER (inside → out)

Grass → Rock (VertexColor.B) → Snow (VertexColor.A) → Beach/Sand (UV1.R) → Road (UV1.G) → Underwater

CLEAN UNDERWATER MASK (recommended)

AbsoluteWorldPosition → Mask Z → Subtract SeaLevelZ → Multiply -1 → Divide 500 → Saturate → Lerp Alpha

This runs per-pixel and eliminates the waterline artifact you get with VertexColor.R on sloped terrain.

💡 The full project with materials already wired up is available to Patreon members → https://www.patreon.com/posts/156845948

──────────────────────────────────────────────────────────────────────────────

⚙️ PARAMETER REFERENCE

WORLDGEN | GENERAL

• Seed — Master world seed (default: 42)

• Tile Size (cm) — Chunk width/height. 200,000 = 2 km per tile

• Resolution — Vertices per side. Fallback when LOD is disabled. Default: 64

• Height Scale — Global height multiplier. Default: 1.0

• View Distance — Near-chunk radius. 4 = 9×9 = 81 chunks

• Terrain Load Delay (s) — Suspends gravity at startup while async collision cooks. Applied per-player including late joiners. Default: 4.0

• Terrain Material — Assign your terrain material here

• Enable LOD — Distance-based LOD system (default: true)

• LOD Resolutions — Resolution per Chebyshev ring. Default: [128, 128, 64]. Last entry reused for further rings.

WORLDGEN | HEIGHT RANGE

• Min Height (cm) — Ocean floor. Default: -175,000

• Max Height (cm) — Mountain peak. Default: 175,000

• Sea Level — Normalized 0–1. Default: 0.50

WORLDGEN | TERRAIN LAYERS

• Rock Start — Normalized height where rock begins. Must be above Sea Level.

• Rock Blend — Grass→rock transition width. Default: 0.10

• Snow Start — Height where snow begins. Default: 0.75

• Snow Blend — Rock→snow transition. Default: 0.06

WORLDGEN | MOUNTAINS

• Mountain Threshold — Controls mountain coverage. Raise for more flat plains.

• Mountain Blend — Plains→mountains transition smoothness. Default: 0.30

WORLDGEN | NOISE

• Noise Layers — Stack of noise layers. Layer 0 is always the continental base + mountain mask.

• Warp Strength — Domain warp amplitude in cm. 0 = disabled. Default: 8,000

• Warp Frequency — Default: 0.000033

DEFAULT NOISE LAYER STACK

Layer 0 — Continental | Perlin | freq 0.000001 | 3 octaves | Land/ocean + mountain mask

Layer 1 — Ridged | Ridged Multi | freq 0.000005 | 3 octaves | Mountain ridges and peaks

Layer 2 — Mountains | Simplex | freq 0.010000 | 1 octave | Mid-frequency mountain detail

Layer 3 — Ridges | Perlin | freq 0.000180 | 2 octaves | Fine ridge detail (disabled by default)

Since V1.7, noise is generated by CLMNoise — a custom implementation with no third-party dependencies.

WORLDGEN | BEACH

• Beach Width — Height band above sea level treated as sand. Default: 0.04

• Beach Flatten Strength — How flat the beach becomes. Default: 0.85

WORLDGEN | WATER

• Enable Water Plane — Flat ocean surface at sea level.

• Water Material — Assign your ocean/water material.

• Water Update Interval — How often the plane follows the player. Default: 2.0s

WORLDGEN | FAR TERRAIN

• Enable Far Terrain — Low-res LOD ring beyond the near grid.

• Far Tile Multiplier — Each far tile covers 4×4 near tiles. Default: 4

• Far View Distance — Far tile ring radius. Default: 3

• Far Tile Resolution — Vertices per far tile side. Default: 8

WORLDGEN | FOLIAGE

• Enable Foliage — Master foliage toggle. Disable during parameter iteration for 10× faster rebuilds.

• Max Foliage Distance — Chebyshev distance from player within which foliage spawns. Default: 2

• Foliage Assets — Array of BiomeFoliageAsset — one per biome.

• Foliage World Grid Size — Shared grid spacing for near/far foliage patterns. Default: 500 cm

WORLDGEN | GRASS (V1.1, V1.7)

• Enable Grass — Master toggle for the dense grass system

• Grass Assets — Array of UWorldGenGrassAsset

WORLDGEN | EROSION (V1.2)

• Enable Erosion — Hydraulic erosion simulation. Runs fully async. Auto-disabled at Resolution ≤ 32.

• Droplets — Droplets per chunk. Default: 4,000

• Erosion Strength — How aggressively droplets erode. Default: 0.3

• Deposition Rate — How quickly sediment deposits. Default: 0.3

• Evaporation Rate — Droplet water evaporation per step. Default: 0.05

• Sediment Capacity — Max sediment per unit speed/water. Default: 4.0

• Inertia — Momentum factor. 0 = sharp channels, 0.1 = meandering. Default: 0.05

• Brush Radius — Erosion spread in vertices. Default: 3

WORLDGEN | ROADS (Experimental) (V1.6)

• Enable Roads — Generate a procedural road network at BeginPlay

• Road Half Width (cm) — Flatten corridor radius. Default: 800

• Road Flatten Strength — How flat terrain becomes under roads. Default: 0.90

• Max Settlements — Settlement nodes found and connected. Default: 6

• Search Radius — World radius scanned for settlement sites. Default: 6 chunks

• Max Settlement Slope (deg) — Maximum slope for a valid settlement site. Default: 20

• Road Z Offset (cm) — Road mesh float height above terrain. Default: 10

• Road Slope Sensitivity — How strongly routing avoids slopes. Default: 5.0

WORLDGEN | SPAWNER (V1.9)

• Enable Spawner — Master toggle for the Actor Spawner system

• Spawner Assets — Array of UWorldGenSpawnerAsset

WORLDGEN | NAVIGATION (V1.11)

• Enable Navigation — Auto-spawns a single NavMeshBoundsVolume at BeginPlay and moves it with the player. No level setup needed.

The bounds volume is sized to (ViewDistance + 1) × TileSize. Z extent covers sea level to max height (ocean floor excluded — no nav budget wasted underwater). The volume moves whenever the player crosses a chunk boundary, keeping nav generation centred on the active streaming area.

WORLDGEN | BIOMES (V1.10)

• Enable Spatial Biomes — Master toggle. One checkbox — all biome systems activate.

• Temperature Frequency — Spatial frequency of temperature noise. Default: 0.000003 (~3 km zones)

• Humidity Frequency — Spatial frequency of humidity noise. Default: 0.000002 (~5 km zones)

• Temperature Seed Offset — Seed offset for temperature noise. Default: 100

• Humidity Seed Offset — Seed offset for humidity noise. Default: 200

Each of the four biomes (Tundra, Boreal, Desert, Tropical) has Snow Start, Rock Start, and Grass Mult controls — see the Spatial Biomes section below.

──────────────────────────────────────────────────────────────────────────────

🌿 FOLIAGE SETUP

  1. Content Browser → Add → Miscellaneous → Data Asset → BiomeFoliageAsset

  2. Set Biome (Grass / Rock / Snow / Beach)

  3. Add entries in the Entries array — one per mesh type

  4. Assign the asset to WorldGen > Foliage Assets on the streaming manager

FOLIAGE ENTRY PROPERTIES

• Mesh — Static mesh to scatter

• Density — Instances per m². 0.002 = ~1 per 500 m²

• Min/Max Normalized Height — Height range where this entry appears

• Min/Max Slope Degrees — Slope range. Use to keep trees off cliffs. Default: 0–45

• Scale Range — Random uniform scale min/max. Default: (0.8, 1.2)

• Seed Offset — Different seed per entry for varied patterns

• Vertical Offset (cm) — Z offset after terrain snap

• Position Jitter — Extra random XY displacement per instance. Default: 0.5

• View Distance — Chunk radius. Large trees: 3–4. Ground clutter: 1.

• bCluster — Enable cluster grouping

• Cluster Radius (cm) — Radius of each cluster group. Default: 5,000

• Num Clusters — Cluster centers per chunk. Default: 5

• Cluster Falloff — How quickly density drops from cluster center. Default: 1.0

• bGrowInShade — Allows spawning under tree canopy (useful for grass)

• bEnableCollision — Physics collision on instances

• bUseHISM — Use HISM instead of ISM (enables LOD but costs BVH rebuild). Default: off (V1.7 switched defaults to ISM).

RECOMMENDED SETUP

DA_Foliage_Grass (Grass biome) — Large trees (0.001, VD 4), shrubs (0.003, VD 2), tufts (0.01, VD 1, Grow in Shade ✓)

DA_Foliage_Rock (Rock biome) — Rock formations (0.002, clustering on)

DA_Foliage_Snow (Snow biome) — Dead trees, snow-covered rocks

DA_Foliage_Beach (Beach biome) — Driftwood, sea grass

💡 All four foliage assets and the terrain material are pre-configured in the Patreon project files → https://www.patreon.com/posts/156845948

──────────────────────────────────────────────────────────────────────────────

🌱 GRASS SYSTEM (V1.1, V1.7)

Dense world-snapped grass blades with clustering, slope-aware sinking, and per-instance scale variation.

CREATE A GRASS ASSET

  1. Content Browser → Add → Miscellaneous → Data Asset → WorldGenGrassAsset

  2. Configure the properties below

  3. Assign to WorldGen | Grass → Grass Assets

GRASS ASSET PROPERTIES

• Mesh — Static mesh for grass blades

• Biome — Terrain biome where this grass spawns

• Density (per m²) — Instances per square meter. Default: 0.5

• Grass Grid Size (cm) — World-space spacing. Default: 100 (V1.7: fixed world-space, no longer chunk-relative)

• Grass Radius (cm) — Player radius within which grass spawns. Default: 5,000

• Min/Max Slope Degrees — Slope filter. Default: 0–35

• Scale Range — Default: (0.8, 1.2)

• Vertical Offset (cm) — Z offset

• Slope Sink Depth (cm) — Auto-sinks blades into terrain on slopes (eliminates floating blades)

• bAlignToNormal — Rotate blade to match terrain normal

• bEnableCollision / bCastShadow — Self-explanatory

• Position Jitter — Random offset [0–1]. Default: 0.5

• Clustering — bCluster, Num Clusters, Cluster Radius, Cluster Falloff (same semantics as foliage clustering)

──────────────────────────────────────────────────────────────────────────────

💧 HYDRAULIC EROSION (V1.2)

Droplet-based erosion simulation. Enable via WorldGen | Erosion → Enable Erosion. Runs fully on background threads — zero game-thread cost.

KEY DIALS

• Droplets — more droplets = more detail but longer chunk build time. 4,000 is a good balance.

• Erosion Strength + Deposition Rate — lower both for subtle weathering, raise both for dramatic carved valleys.

• Inertia — low (0.01) produces sharp straight channels; higher (0.1) produces natural meanders.

Erosion is automatically disabled at Resolution ≤ 32 to avoid artefacts.

──────────────────────────────────────────────────────────────────────────────

🛠️ TERRAIN DEFORMATION (V1.4)

Real-time sculpting with spherical brushes. Deltas persist across chunk rebuilds and survive LOD changes.

C++ / BLUEPRINT API

// Raise terrain at WorldPos within Radius by Strength

Manager->DeformTerrain(FVector2D WorldPos, float Radius, float Strength);

// Lower terrain — negative strength

Manager->DeformTerrain(FVector2D WorldPos, float Radius, -Strength);

// Restore terrain to original noise height

Manager->ClearDeformation(FVector2D WorldPos, float Radius);

──────────────────────────────────────────────────────────────────────────────

🚧 EXCLUSION VOLUMES (V1.8)

Place hand-authored content cleanly inside a procedural world — flat terrain, no foliage, smooth boundary.

SETUP

  1. Search Place Actors for WorldGenExclusionVolume

  2. Resize the box component to cover your content area

  3. Position at your desired floor height (Z = flatten target when Auto Flatten Height is on)

  4. Click Preview Terrain — terrain flattens to the volume's Z, foliage clears

PROPERTIES

• Flatten Terrain — Flatten height inside volume (default: on)

• Auto Flatten Height — Use actor Z as target height (default: on)

• Flatten Height (cm) — Manual override when Auto is off

• Flatten Strength — 1.0 = perfectly flat inside

• Blend Radius (cm) — Smooth ramp at the volume boundary. Default: 2,000

• Suppress Foliage / Suppress Grass — Clear trees / ground cover inside

──────────────────────────────────────────────────────────────────────────────

🎯 ACTOR SPAWNER (V1.9)

Scatter actual Actors (not ISM instances) across the world. Biome-aware, deterministic, rate-limited.

SETUP

  1. Content Browser → Add → Miscellaneous → Data Asset → WorldGenSpawnerAsset

  2. Configure the properties

  3. Assign to WorldGen | Spawner → Spawner Assets

SPAWNER ASSET PROPERTIES

• Actor Class — Actor class to spawn

• Biome — Terrain biome where this actor appears

• Density — Spawn probability per grid cell (0–1). Default: 0.05

• Grid Size (cm) — World-space distance between candidates. Default: 5,000

• Spawn Radius (cm) — Player radius for spawning and maintenance. Default: 50,000

• Min/Max Normalized Height — Height filter

• Min/Max Slope Degrees — Slope filter. Default: 0–30

• Vertical Offset (cm) — Z offset after terrain snap

• Seed Offset — Different scatter pattern

• Max Spawns Per Frame — Prevents hitching when entering a dense area. Default: 3

CONSUMED POSITIONS (persistence)

// Mark a position consumed (player mined / collected the actor):

Manager->MarkSpawnConsumed(FVector2D(Actor->GetActorLocation()), SpawnerAsset);

// Save consumed positions to your save game:

TArray<int64> Keys = Manager->GetConsumedSpawnKeys();

// Restore on load:

Manager->RestoreConsumedSpawnKeys(LoadedKeys);

──────────────────────────────────────────────────────────────────────────────

📐 TERRAIN QUERY API (V1.9)

Sample any world XY position for height, slope, normal, and biome weights — useful for AI, gameplay logic, building placement.

// Full sample

FHeightmapSample S = Manager->SampleTerrainAt(FVector2D(X, Y));

// Height only

float Z = Manager->GetHeightAtWorldPos(FVector2D(X, Y));

FHeightmapSample FIELDS

• Height (float) — World Z in cm

• NormalizedHeight (float) — 0–1 between MinHeight and MaxHeight

• Slope (float) — Surface slope in degrees

• Normal (FVector) — Surface normal

• GrassWeight / RockWeight / SnowWeight — Matches VertexColor.G / B / A

• BeachWeight — Matches UV1.x

• WaterWeight — 1.0 below sea level

──────────────────────────────────────────────────────────────────────────────

🌎 SPATIAL BIOMES (V1.10)

Temperature and humidity noise fields create four distinct biome zones with smooth gradients between them.

Dry (M=0) Wet (M=1)

Cold Tundra → Boreal

(T=0)

Hot Desert → Tropical

(T=1)

Values between corners are bilinearly interpolated — no hard zone boundaries, all transitions smooth.

ENABLING

Select WorldStreamingManager → WorldGen | Biomes → Enable Spatial Biomes ☑ → Click Preview Terrain.

BIOME CORNERS (per-biome controls)

Tundra | Boreal | Desert | Tropical

Snow Start 0.15 | 0.35 | 0.99 | 0.90

Rock Start 0.25 | 0.40 | 0.55 | 0.60

Grass Mult 0.20 | 1.00 | 0.20 | 1.40

SAND (WorldGen | Biomes | Sand)

• Tundra / Boreal / Tropical Sand Mult — Default: 0.0 (no sand)

• Desert Sand Mult — Default: 1.0 (fully sandy floor)

• Desert Sand Top Norm — Normalized height where sand fully fades. Default: 0.45

The sand layer uses UV1.x — no material changes needed. Sandy desert floors appear automatically.

──────────────────────────────────────────────────────────────────────────────

🤖 RUNTIME NAVIGATION (V1.11)

WorldGen V1.11 adds first-class navigation mesh support. AI characters can navigate the procedurally generated world without any manual level setup.

HOW IT WORKS

When Enable Navigation is checked, WorldStreamingManager auto-spawns a single ANavMeshBoundsVolume at BeginPlay. The volume:

• Is sized to cover the active streaming radius plus one chunk of padding

• Restricts its Z extent to above sea level — no nav budget wasted on the ocean floor

• Moves to follow the player each time they cross a chunk boundary

• Notifies the navigation system on each move, triggering tile regeneration

REQUIRED PROJECT SETTINGS

Engine → Navigation System → Runtime Generation = Dynamic

Static mode only bakes nav at cook time and will not work with procedural terrain.

SETUP

  1. Project Settings → Navigation System → Runtime Generation = Dynamic

  2. Select WorldStreamingManager → WorldGen | Navigation → Enable Navigation ☑

  3. Ensure a RecastNavMesh actor is in the level (add a Nav Mesh Bounds Volume then delete it — the RecastNavMesh persists)

  4. Hit Play — the nav volume spawns automatically and nav tiles build around the player

💡 Press P in PIE to visualise the generated nav mesh.

AI CHARACTERS — NAV INVOKERS

For efficient navigation in an infinite world, add a Navigation Invoker component to every AI character.

Blueprint:

  1. Open your AI character Blueprint

  2. Add Component → Navigation Invoker

  3. Set Tile Generation Radius (e.g. 10,000 cm)

  4. Set Tile Removal Radius (e.g. 15,000 cm)

C++ (in constructor):

NavInvoker = CreateDefaultSubobject<UNavigationInvokerComponent>(TEXT("NavInvoker"));

NavInvoker->TileGenerationRadius = 10000.f;

NavInvoker->TileRemovalRadius = 15000.f;

The bounds volume defines where nav is allowed (centered on the player). Each invoker requests tile generation around its character within that area. No tiles are built outside the bounds volume.

──────────────────────────────────────────────────────────────────────────────

🌐 MULTIPLAYER (V1.3)

WorldGen streams terrain around all connected players simultaneously. No configuration required — multiplayer support is automatic when running as a server or listen server.

• Server — Builds collision-only geometry. No visual mesh, no foliage, no grass. Massive memory and CPU savings.

• Clients — Full visual terrain streams around each client's pawn.

• Gravity delay — Terrain Load Delay applied independently per player on spawn, including late joiners.

• Navigation — For dedicated server builds, nav is generated on the server from collision-only geometry. Clients don't generate nav.

──────────────────────────────────────────────────────────────────────────────

📊 PERFORMANCE GUIDE

High-end PC — Resolution 96–128 | View Distance 5–6 | Far Terrain on (VD 4) | LOD on | Full foliage + grass

Mid-range PC — Resolution 64–96 | View Distance 4 | Far Terrain on (VD 3) | LOD on | Foliage VD 2 max

Low-end — Resolution 32–48 | View Distance 3 | Far Terrain on (VD 2) | LOD on | Foliage VD 1 only

KEY NOTES

• Distance-based LOD (V1.5) means high near-chunk resolution costs less than it used to — outer rings auto-drop to lower res.

• Resolution is still the biggest near-chunk cost — 64→128 quadruples geometry per near chunk.

• Disable foliage while tuning noise — rebuilds are 10× faster.

• Keep ISM instances below ~15,000 per chunk per mesh.

• Enable Erosion only at Resolution ≥ 48 (auto-disabled below 32 anyway).

• Dedicated server skips visual mesh entirely — much cheaper than client.

──────────────────────────────────────────────────────────────────────────────

⚠️ KNOWN LIMITATIONS (V1.11)

• Road network is still marked experimental. V1.6 added dynamic road expansion into newly streamed chunks, but routing quality varies by terrain.

• UE's native Landscape Grass Tool is incompatible (WorldGen uses ProceduralMeshComponent, not Landscape).

• Runtime parameter changes — most parameters require calling PreviewTerrain() or rebuilding to take effect. Live tweaking during PIE is not supported for noise/biome parameters.

• Material not included — you must build your own terrain material using the channel reference above (or use the pre-wired material in the Patreon project files).

• Nav mesh follows the player — AI characters that stray beyond the streaming radius may temporarily have no nav data. Use Nav Invokers on AI to keep tiles built around them.

──────────────────────────────────────────────────────────────────────────────

❓ FAQ

Q: My terrain has no foliage.

A: Check that your BiomeFoliageAsset has meshes assigned, the asset is in the Foliage Assets array, and Enable Foliage is on. Also verify Rock Start is above Sea Level — if Rock Start ≤ Sea Level the grass zone disappears.

Q: Grass is bleeding through the beach or underwater.

A: Set up the per-pixel underwater mask using AbsoluteWorldPosition (see Material Setup above). VertexColor.R alone causes artifacts on sloped terrain near the waterline.

Q: I see visible chunk seams.

A: This is typically the material, not the geometry. Mesh normals are seamless by design. Check your material is not using an unsmoothed normal map or mismatched UV tiling. If you use a world-aligned texture, V1.6 added local UV coords (TextureCoordinate 0) — use those to keep texture scale stable at any world Tile Size.

Q: Preview Terrain is slow.

A: Disable foliage and grass and reduce View Distance to 2 while iterating on noise parameters. Re-enable once you're happy.

Q: AI characters can't path on the terrain.

A: Two things to check: (1) Project Settings → Navigation System → Runtime Generation = Dynamic. (2) Enable Navigation is on in WorldStreamingManager. If both are correct, press P in PIE to confirm nav tiles are actually being built around the player. For AI that needs nav far from the player, add a Navigation Invoker to the AI character.

Q: My buildings / hand-authored content gets erased when terrain streams.

A: Place a WorldGenExclusionVolume around your content (V1.8). Terrain flattens, foliage clears, smooth blend at the boundary.

Q: Can I use this in a shipped commercial game?

A: Yes. CLMNoise (V1.7) replaced FastNoise Lite — there are no third-party dependencies in the current plugin. License ships with all purchasers.

Q: Does multiplayer Just Work?

A: Yes. No configuration needed (V1.3). Server builds collision-only geometry. Clients get full visuals. Late joiners get the gravity delay applied independently.

──────────────────────────────────────────────────────────────────────────────

🗺️ ROADMAP

Shipped:

V1.1 ✓ Dense grass system

V1.2 ✓ Hydraulic erosion

V1.3 ✓ Multiplayer + dedicated server

V1.4 ✓ Terrain deformation

V1.5 ✓ Distance-based LOD

V1.6 ✓ Texture stretching fix, dynamic roads

V1.7 ✓ GrassGridSize, ISM foliage, CLMNoise (no third-party deps)

V1.8 ✓ Exclusion Volumes

V1.9 ✓ Terrain Query API, Actor Spawner, consumed-position persistence

V1.10 ✓ Spatial Biomes, desert sand layer

V1.11 ✓ Runtime navigation mesh

Coming:

V1.12 — Biome-driven heightmap variation (planned)

──────────────────────────────────────────────────────────────────────────────

🎓 WANT TO BUILD IT YOURSELF?

This entire plugin was built from scratch on the CodeLikeMe YouTube channel as the WorldEngine tutorial series. Every system — the chunk pool, noise stack, foliage scatter, erosion, LOD, biomes, navigation — is covered in detail across the series.

► Tutorial series: https://www.youtube.com/playlist?list=PLNTm9yU0zou6B6eqrPrRjODBd2OD-BVsh

The plugin is for developers who want to skip straight to shipping.

The series is for developers who want to understand every line.

──────────────────────────────────────────────────────────────────────────────

🎯 SKIP THE SETUP — GET THE PROJECT FILES

Everything in this guide is already configured in the Patreon project files. Materials wired up, foliage assets ready, demo map included with navigation, biomes, and erosion all dialled in. Open it in UE5 and start building your game.

► Download the project files: https://www.patreon.com/posts/156845948

► Try the free playable demo first: https://www.patreon.com/posts/156846235

► Get it on Fab: https://www.fab.com/listings/e4e93fbe-9326-40b8-a043-a809f788306a

► Join Patreon from $20/mo: https://www.patreon.com/cw/CodeLikeMe

Questions? Drop them in the comments — I read everything.

──────────────────────────────────────────────────────────────────────────────

CLMNoise (V1.7+) — custom noise implementation, no third-party dependencies.