How to Generate a Heightmap and Import It as an Unreal Landscape
By the Cosindra team · Updated November 1, 2026
Describe the terrain in WorldWeaver, generate it for 6 credits and download the Unreal World Pack: its Landscape folder holds heightmap.png, a 16-bit grayscale PNG with 1009 samples on the long side, and a README with the exact resolution, section setup and X, Y and Z scale for that world. In Unreal, open Landscape Mode, choose New, then Import from File, pick heightmap.png, enter the README values with Location Z at 0 and import: you get a real, sculptable Landscape with no plugin.
Epic lists 16-bit grayscale PNG among the heightmap formats the Landscape importer reads (Epic's heightmap import page, read 2026-11-01). Below: the steps, the settings and where each number comes from, the masks in the pack, other engines and the limits.
From a brief to a Landscape, step by step
1. Open WorldWeaver and sign in. Write a brief: the landform, the world size, the maximum elevation, water, routes and sites. Each axis can be 252 m to 16 km, and the maximum elevation 10 m to 2,000 m.
2. Run Brief Check. It is free and flags problems, such as a size out of range, before you spend credits.
3. Generate. A world costs 6 credits, or 11 with Pro Engine on paid plans. Inspect the 3D preview and its reports before you export.
4. Choose Download and the Unreal Engine 5 World Pack (worldweaver_world_pack.zip). Extract the whole ZIP into a normal folder.
5. Open Landscape/README.txt. It lists the heightmap resolution, the section setup and the X, Y and Z scale computed for this world. Do not reuse values from another world.
6. In Unreal, open a new empty level, then Landscape Mode, New, Import from File, and pick Landscape/heightmap.png.
7. Set Section Size and Sections Per Component so the overall resolution matches the README (Unreal suggests valid combinations). Set Location Z to 0 and Scale X, Y and Z to the README values, then click Import.
8. Add your own Landscape material. Use the masks in the same folder as layer weightmaps or sample them in the material.
The heightmap WorldWeaver exports
| Property | Value |
|---|---|
| File | Landscape/heightmap.png inside worldweaver_world_pack.zip |
| Format | PNG, 16-bit grayscale |
| Resolution | 1009 samples on the long axis (what the UE5 download requests). On a rectangular world the short axis is the nearest 126n+1 size that keeps cells square |
| Sizes the export supports | 505, 1009 and 2017 on the long axis, all 126n+1 sizes Unreal accepts; the download uses 1009 |
| Height range | Black to white spans the world's maximum elevation, 10 m to 2,000 m, set in the brief |
| World size | 252 m to 16 km per axis, set in the brief |
| Also in the folder | 8-bit slope_mask.png, height_mask.png and traversability_mask.png; water_mask.png, buildable_mask.png and route_mask.png when the world has sea, sites or roads; vegetation_instances.csv when it has vegetation zones; README.txt |
Unreal Landscape import settings
The export sizes are built from 63x63 quad sections with 2x2 sections per component (126 quads per component), which is why they are 126n+1 samples: 1009 is 8 components of 126 quads plus one.
- Example: a square world 2,016 m on a side with 200 m of relief, exported at 1009, gives Scale X = Y = 200.00 and Z = 39.06. Your README holds the numbers for your world.
| Setting | Value | Why |
|---|---|---|
| Heightmap File | Landscape/heightmap.png | The 16-bit terrain |
| Section Size | 63x63 Quads | The section size the export sizes are built from |
| Sections Per Component | 2x2 Sections | 126 quads per component |
| Number of Components | 8 x 8 for a square 1009 export | (resolution - 1) / 126 on each axis; the README states your world's resolution |
| Location Z | 0 | The value the README gives |
| Scale X | World width in meters x 100 / (resolution X - 1) | Centimeters per quad |
| Scale Y | World depth in meters x 100 / (resolution Y - 1) | Rectangular worlds need a different X and Y, or they import squashed |
| Scale Z | Maximum elevation in meters / 512 x 100 | At Z scale 100 the full 16-bit range spans 512 m |
- Epic docs: Importing and Exporting Landscape Heightmaps: the import dialog and the supported formats
- Epic docs: Landscape Technical Guide: sections, components and how Landscape scale is calculated
Masks and materials
The masks are source data, not a wired Landscape material. Create Landscape Layer Info objects and import slope_mask.png (white = steep) or height_mask.png (white = high) as layer weightmaps, or sample them in your Landscape material for automatic texturing. traversability_mask.png is gameplay analysis data for navigation or PCG checks; it is not an Unreal NavMesh.
MaterialForge surfaces from a WorldWeaver material run are bound automatically to the generated mesh terrain by the pack installers; on a manually imported Landscape you set up layers or a world-coordinate material yourself.
The other route: the Python quick build
The same World Pack also has a Python builder. In UE 5.7 or 5.8, File, Execute Python Script on world_weaver_script.py (or install_world_and_surfaces.py when the pack has one) builds persistent StaticMesh terrain that matches the preview, but it is not a brush-sculptable Landscape. Choose one route per level; do not import a Landscape on top of a quick build.
- WorldWeaver import guide: quick build, manual Landscape, Blender, Unity and Godot
Unity, Godot and Blender
The Blender, Unity and Godot packs carry the same exact 16-bit heightmap as Terrain/heightmap.png, next to world.glb (the terrain as a mesh with water, routes and site blockouts). The Unity pack adds an optional editable TerrainData importer, and the Godot pack an optional adapter for Terrain3D 1.0.x, which you install separately. Converting a world to another engine format adds no credits.
Limits
- The download exports 1009 samples on the long axis. The export pipeline also supports 505 and 2017, but the download button does not offer them today.
- For worlds made today the Landscape heightmap is resampled from the saved 16-bit preview mesh: no erosion is run again, so it adds no terrain detail beyond the preview, and height rounding can leave small flat steps.
- WorldWeaver generates terrain from a written brief. This guide does not cover importing a heightmap you made elsewhere into WorldWeaver.
- Masks are not wired into a Landscape material for you, and buildings are editable greyboxes, not finished assets.
- Starter includes one lifetime free download, shared across products. More downloads come with a paid plan (from $9.99 a month for 150 credits) or a one-time credit pack ($5 for 50 credits, $10 for 100 or $20 for 200), whose credits never expire and which opens downloads for 15 to 30 days.
- A generation snapshot is kept for 24 hours. Save the world to keep it.
Keep going
- Open WorldWeaver
- UE5 environment guides: layer-by-layer walkthroughs for ten settings
- WorldWeaver Material Needs: MaterialForge surfaces for a world
Generate the terrain instead
WorldWeaver turns a written brief into terrain with water, routes and sites, and exports a 16-bit Landscape heightmap with exact import values for Unreal, plus packs for Unity, Godot and Blender. Brief Check is free; a world costs 6 credits.
Open WorldWeaverFrequently asked questions
What heightmap format does WorldWeaver export for Unreal?
A 16-bit grayscale PNG, Landscape/heightmap.png, with 1009 samples on the long axis, inside the UE5 World Pack. The README next to it lists the exact import values for that world.
What Landscape import settings should I use?
Section Size 63x63 quads with 2x2 sections per component fits the export sizes. Set Location Z to 0, Scale X and Y to the world size in meters x 100 / (resolution - 1) per axis, and Scale Z to the maximum elevation / 512 x 100. Landscape/README.txt gives the computed values.
Can I sculpt the terrain after the import?
Yes. Importing heightmap.png through Landscape Mode gives a native Unreal Landscape you can sculpt and paint. The Python quick build in the same pack makes StaticMesh terrain instead, which is not brush-sculptable.
Do I need a plugin or Cosindra Desktop?
No. The manual Landscape import works in any Unreal project with no plugin, and the Python quick build runs in UE 5.7 to 5.8. Cosindra Desktop is only for the optional Apply in UE5 shortcut.
Why does my Landscape look squashed or too tall?
The X, Y or Z scale does not match the world. Rectangular worlds need different X and Y scales, and Z depends on the maximum elevation. Use the values in that world's Landscape/README.txt.
Can I use the heightmap in Unity, Godot or Blender?
Yes. The Unity, Godot and Blender packs include the same 16-bit heightmap as Terrain/heightmap.png next to world.glb, with an optional TerrainData importer for Unity and a Terrain3D adapter for Godot.
What does it cost?
Brief Check is free, and a world costs 6 credits (11 with Pro Engine on paid plans), so the 80 credits of a new account's first month cover 13 worlds. Starter includes one lifetime free download, shared across products.