A guided example: create a landscape, generate eroded mountains with real drainage networks, carve a river that lowers the ground it runs through, paint layers from the erosion history, scatter foliage, and build lighting and navigation.
This walkthrough builds terrain from nothing: a landscape, mountains that erode into real drainage networks, a river that carves its own valley, layers painted from what the erosion actually did, and foliage scattered over the result. Every command is listed in the World Building reference.
Create the landscape
Size is decided by component count and quads per component, and the two multiply fast. The command reports the resolution it worked out, and refuses sizes the project cannot support rather than taking the editor down.
1
Create it
A moderate open world sits around 8 by 8 components at a section size of 63. Scale is how many world units one quad covers.
Resolution, component sizing, world size, measured height range, and the edit layers, which is the field that explains most landscape problems.
bash
cfa get_landscape_info
Generate terrain that looks like terrain
A noise heightfield alone reads as lumps. What makes terrain look real is erosion: water cutting drainage networks, slopes slipping until they sit at a believable angle, and valleys becoming concave the way real ones are.
3
Generate a whole terrain in one call
Ridged peaks, hydraulic erosion for drainage, thermal erosion so ridges are not knife edges, and stream power incision for concave valleys. Amplitude is the peak to trough height before erosion, and erosion is droplets per vertex. It reports the slope distribution it produced, so you can judge it against real terrain.
bash
cfa generate_terrain --seed 1337 --amplitude 6000 --erosion 2
4
Add a geomorphic process on top
Glacial carving produces U shaped cross sections and cirques that no river erosion can make. Snow, coastal benches and tilted sedimentary bedding are the others.
bash
cfa apply_terrain_process --process glacial
5
Change one area without redoing everything
Regenerates a region and blends it back into the surrounding ground, so there is no visible rim. It reports the seam step before and after, so the join is measured rather than assumed.
bash
cfa regenerate_terrain_region --center 12000,8000 --radius 4000 --blend poisson
Carve a river
These are real Water plugin bodies, so the river lowers the landscape itself. You do not sculpt a channel first and hope the water lines up with it.
6
Add the river
Give it a destination and it routes there through the terrain, preferring low ground and existing channels rather than cutting a straight canal. The water brush lowers the landscape for you.
bash
cfa add_river --name River_Main --to "14000,3000" --depth 300
Water that renders sometimes and not others
Four separate conditions have to hold for a water body to appear. The water zone has to cover the river, its texture resolution has to scale with the zone or the engine coarsens the landscape and smooths the channel away, and only a user triggered change binds a body to its zone. If a river looks missing, check the zone before the river.
Paint from what the erosion did
Beyond height and slope, a layer can key off where water flowed, where sediment settled, where rock wore away and where debris collected, so texturing follows what actually happened to the terrain.
7
Paint every layer in one normalised pass
Painting layers one at a time is wrong: the engine normalises internally, so several layers each written at full strength average into a wash. Always include one 'all' layer as the base, or vertices no rule claims render black.
bash
cfa paint_landscape_layers \
--layers "Rock:all; Grass:below_height:3000:2600; Snow:above_height:5400:1800"
If terrain reads as low poly no matter how dense it is
A slope mask that reads the vertex normal draws the mesh triangulation in colour, which makes the ground look faceted whatever its real density. This one costs people a day. The world building guide in the bundled AI skill carries the full landscape material recipe and the two step check that tells you whether the fault is the mesh or the material.
Dress it and light it
8
Scatter foliage
Uses Unreal's own brush pipeline, so the foliage type's own scale, rotation, offset and slope rules apply. It reports what it placed, what missed the ground, and what the type's rules rejected.
bash
cfa create_foliage_type --asset-path /Game/Foliage/FT_Pine --mesh-path /Game/Meshes/SM_Pine
cfa scatter_foliage --foliage-type /Game/Foliage/FT_Pine --pattern random --count 4000
9
Set up the sky and build lighting
The six actor sky system, then a lighting build with a check that proves it is actually built.
bash
cfa setup_default_scene --preset daylight
cfa build_lighting --quality Preview
cfa validate_lighting
10
Build navigation and prove it works
A navmesh can exist and still be unpathable, which is what the projection test catches. A tile count alone is not proof.
bash
cfa build_navigation
cfa validate_navigation --test-point 4000,4000,500
Look at it
11
Capture a top down view
Aims the editor viewport itself rather than an offscreen camera, which never converges its exposure and drops the landscape several detail levels down. A straight down frame flattens relief, so an angled pitch reads better.
bash
cfa capture_top_down --resolution 2048 --pitch -25
12
Check the landscape is sound
Returns a verdict rather than a boolean, and reports the edit layers, which is the usual cause when the water brush or spline tool silently does nothing.
bash
cfa validate_landscape
On Unreal 5.6, edit layers are off by default
5.6 creates a landscape with no edit layers unless the flag is set before import, and without them the water brush never carves and splines refuse outright. 5.7 and 5.8 always have them. Creating a landscape through cfa sets this the way Unreal's own New Landscape tool does, so it is handled, but it explains a lot of older projects.