Skip to content

Terrain Material Painting

The terrain material system controls the visual surface of every part of the map. Grass, dirt, rock, sand, mud, snow, and all other terrain textures are applied through material layers that are painted onto the heightmap surface using the Terrain panel's Paint tab. The material layer system is also the mechanism that determines the physics surface type (the sound and movement feel when a player walks across that material) and the foliage layer association (which foliage types are eligible to appear on which materials).

This article is a procedural tutorial covering the complete terrain material painting workflow. It documents the material layer system, how to create and assign layers, how to paint blends between adjacent materials, how to configure per-layer texture assignments and physics surface types, how the material alpha channel controls blend weights, and how the terrain color chart maps material colors to the minimap. The article assumes the reader has completed the heightmap sculpting phase and has a terrain shape ready for material application.

Unturned Level Editor terrain viewport with the Paint tab active and blended material transitions visible on the terrain surface

Prerequisites

  • A map with a completed heightmap sculpting pass, as documented in Terrain Heightmap Editing.
  • Familiarity with the Terrain panel interface and brush controls.
  • An understanding of the map's intended biome zones so that material layer assignments can be planned ahead.
  • A mouse with a scroll wheel for brush size adjustment.

What you will learn

  • How the terrain material layer system works: splatmap channels, layer stack order, and the eight-layer limit.
  • How to create new material layers and assign textures to them from the vanilla library or from custom bundles.
  • How to paint material layers onto the terrain using the Paint tab.
  • How to create smooth blends between adjacent material layers.
  • How to configure per-layer physics surface types for correct footstep sounds and movement feel.
  • How the material alpha and blend weight system controls transparency between overlapping layers.
  • How to configure the terrain color chart for accurate minimap colors.
  • How to diagnose and resolve the most common material painting issues.

Background: how the terrain material layer system works

The terrain material system uses a splatmap texture to store blend weights for each material layer. The splatmap is a multi-channel image where each channel (R, G, B, A) encodes the blend weight of one material layer at each texel position. Layer 0 uses the Red channel, Layer 1 uses Green, Layer 2 uses Blue, and Layer 3 uses Alpha. Layers 4 through 7 require a second splatmap texture.

At each texel, the sum of all active layer weights is normalized to 1.0. The terrain renderer combines the material textures using these weights, producing a blended visual surface. When the paint brush applies a layer, it increases that layer's weight at the painted texels and proportionally decreases the weights of the overlapping layers.

As shown in the flowchart above, the workflow proceeds from layer creation in the Materials tab to layer painting in the Paint tab. The layers must exist before they can be painted. Layer assignments are written to Materials.dat. The splatmap weights are written to Splatmap.png.

Layer stack order

The layer stack order in the Materials tab determines the channel assignment. Layer 0 is always the base coat that fills the entire terrain at creation. Layers 1 through 7 are painted on top of Layer 0. Changing the stack order after painting has begun redistributes the channel assignments, which changes the appearance of all painted areas.

Important: The layer order in the Materials tab must be established before painting begins. Changing the order after painting will remap the splatmap channels, causing all existing paint strokes to display the wrong materials.

Eight-layer limit

The Unturned™ terrain system supports a maximum of eight material layers per terrain tile. Layer 0 is required. Layers 1 through 7 are optional. Attempting to create a ninth layer produces an error and the layer is not created.

If the map requires more than eight distinct terrain materials, the 57 Studios™ cohort recommendation is to prioritize the eight most visually and functionally distinct materials and to represent the remaining surfaces through placed objects such as ground cover decals, rubble, or flat object pieces that simulate terrain textures.

Creating a material layer

Material layers are created and assigned in the Materials tab of the Terrain panel.

Step-by-step: adding a new layer

Step 1: Open the Terrain panel and switch to the Materials tab.

Step 2: Click Add Material Layer. A new empty layer slot appears in the layer list. The new layer appears at the bottom of the list.

Step 3: Click the layer slot's material selector button. The material selection dialog opens, showing all available terrain materials from the vanilla game and from any custom bundles loaded for the map.

Step 4: Locate the desired terrain material. The selection dialog lists materials by name with a preview thumbnail showing the material's albedo texture. Vanilla materials follow the naming convention Grass_00, Dirt_01, Rock_02, Sand_00, and so on.

Step 5: Click the material to assign it to the selected layer slot. The layer slot now displays the material's name and thumbnail.

Step 6: Repeat steps 2 through 5 for each additional material layer up to the maximum of eight.

On-screen appearance: The Materials tab displays a vertical list of layer slots. Each slot shows: the layer index number (0 through 7), the material name, a thumbnail preview of the material's albedo texture, and buttons to remove the layer or reorder layers by dragging. Layer 0 is always the base coat layer that fills the entire terrain.

Material layer properties

Each layer slot in the Materials tab exposes three configurable properties:

PropertyDescriptionConfiguration location
TextureThe albedo texture visible on the terrain surfaceSelected from the material selection dialog
Physics surfaceThe surface type that determines footstep sounds, vehicle traction, and movement speedConfigured in the physics material's .dat file
Foliage layer associationWhich foliage types are eligible to spawn on this layerConfigured per foliage asset in its .dat file

Removing a layer

To remove a layer, click the Remove button (trash icon) on the layer slot. The layer slot is removed from the list. The remaining layers are reindexed to fill the gap. All splatmap data for the removed layer on the terrain surface becomes invalid and the terrain at those positions falls back to the nearest remaining layer.

Warning: Removing a layer after painting has begun destroys all paint strokes that used that layer. There is no recovery mechanism. The cohort recommendation is to finalize the layer list before beginning to paint.

Painting a material layer

Painting is performed in the Paint tab of the Terrain panel.

Step-by-step: painting a layer onto the terrain

Step 1: Switch to the Paint tab in the Terrain panel.

Step 2: Select the layer index to paint from the layer selector dropdown. The selected layer is highlighted in the layer list.

Step 3: Set the brush Size and Strength. For painting broad biome zones, use Size 100 to 150 and Strength 0.5 to 0.8. For blending transitions between layers, use Strength 0.05 to 0.15.

Step 4: Paint the terrain surface. The material texture appears on the terrain under the brush. The splatmap is updated in real time.

Step 5: To blend a transition between two layers, reduce the brush Strength to 0.05 to 0.15 and paint along the boundary between the two zones. The blend creates a gradual transition rather than a hard edge.

On-screen appearance: As the paint brush is applied, the terrain textures under the brush update immediately. At high strength (1.0), the painted layer fully replaces whatever was at each texel. At lower strength, the painted layer partially mixes with the underlying layers based on the strength value, creating a smooth transition gradient visible on the terrain surface.

Brush parameters for painting

ParameterRangeEffect on painting
Size1-200The radius of the paint brush. Larger sizes cover more area per stroke.
Strength0.01-1.0The blend weight applied per stroke. High strength fully replaces underlying layers. Low strength creates partial blends.
Falloff0.0-1.0The edge softness of the brush. Higher values produce a harder material boundary. Lower values produce a gradual blend at the brush edge.

Painting broad biome zones

For large areas that should be covered by a single material (a grass field, a desert expanse, a snow-covered plateau):

Step 1: Select the target layer index. Step 2: Set Size to 150 and Strength to 0.8. Step 3: Paint across the area with broad, overlapping strokes. Step 4: The material covers the area fully within a few strokes.

Creating material blends

Material blends are created by painting two or more layers at reduced strength over the same area. The splatmap stores the blend weight of each layer per texel. When multiple layers are present at one texel, the engine blends their textures using the stored weight values.

Step 1: Paint Layer 1 (for example, grass) across the target area at Strength 0.8.

Step 2: Switch to Layer 2 (for example, dirt) and paint the same area at Strength 0.3. The dirt texture appears as a partial overlay, partially mixed with the grass.

Step 3: The result is a blended grass-dirt transition zone suitable for paths or eroded areas.

Step 4: For a three-layer blend, add Layer 3 (for example, gravel) at Strength 0.15 in the same area. The texture shows a three-way blend.

Smoothing material boundaries

The Paint tab includes a Smooth mode that blends the boundaries between existing material layers. This is distinct from the heightmap Smooth mode.

Step 1: In the Paint tab, switch the brush mode to Smooth. Step 2: Set Size to 80 and Strength to 0.3. Step 3: Paint along the boundary between two material zones. The boundary becomes a gradual transition instead of a sharp line.

Terrain material properties

Each terrain material layer is associated with a landscape material asset that defines not just the visual texture but also behavioral properties.

Physics surface type

The physics surface type determines the footstep sounds, vehicle traction, movement speed modifier, and particle effects when a player or vehicle moves across the material. The surface type is configured in the material asset's .dat file.

Common physics surface values and their characteristics:

Surface typeFootstep soundMovement feelTypical use
GrassSoft rustleNormal speedGrass, meadow, lawn
DirtSoft thudNormal speedDirt paths, bare soil
GravelCrunchSlightly reduced speedGravel paths, construction zones
ConcreteHard stepNormal speedRoads, building foundations
MetalClangNormal speedMetal surfaces, industrial areas
WoodHollow thudNormal speedWooden structures, decks
SandSoft slideReduced speedBeaches, desert zones
SnowSoft crunchReduced speedSnow-covered areas
MudWet squelchReduced speedWetlands, riverbanks

Foliage layer association

The foliage system uses the material layer configuration to determine which foliage types are eligible to spawn on which terrain materials. Each foliage asset's .dat file specifies a Layers field that lists which material layer indices the foliage is allowed to appear on.

For example, a grass foliage asset with Layers 0 is restricted to material layer 0 (typically grass). It does not appear on layer 2 (rock) even if the rock zone is within the foliage paint area. A foliage asset with no Layers field defaults to all layers.

Material alpha and blend weight

The splatmap stores blend weights as 8-bit values per channel (0 to 255). A value of 0 means the layer has no presence at that texel. A value of 255 means the layer is fully opaque at that texel. The paint brush modifies these values incrementally based on the Strength setting.

When the total weight of all layers at a texel exceeds 255 (the maximum per channel), the weights are normalized. When the total is below 255, the remaining weight is filled by the base coat (Layer 0).

Terrain color chart

The terrain color chart controls the appearance of the terrain on the player's minimap. The chart uses two 32 by 1 pixel textures to define the color mapping: the Height Strip and the Layer Strip.

Height Strip

The Height Strip maps terrain elevation to chart colors. Pixel index 0 is used for water. Pixels at indices 1 through 31 are sampled based on the terrain height from lowest point to highest point.

The typical configuration uses green tones at low elevations, transitioning through yellow and brown at mid elevations, and ending at gray or white at the highest elevations. The strip is defined in the chart asset configuration file.

Layer Strip

The Layer Strip defines the colors for obstructions that appear on top of the terrain on the minimap: objects, roads, trees, and resources.

Pixel indexObject typeDefault color
0Ground (no obstruction)Transparent
1-7Building layersDark gray to light gray
8Road (concrete)White
9Path (unpaved)Tan
10HighwayWhite (brighter)
13Resource nodeOrange
14TreeDark green
15Water detailBlue

Each object's Chart field in its .dat configuration determines which pixel index the object uses on the layer strip. By default, buildings use indices 1 through 7 based on their size classification, and roads use indices 8 through 10 based on their width.

Configuring the chart

Step 1: Navigate to the map's Bundles/ folder and locate the chart .unity3d file.

Step 2: Open the chart asset configuration. The Height Strip and Layer Strip textures are referenced in the chart configuration.

Step 3: Modify the pixel colors to create the desired elevation gradient and object colors.

Step 4: Save the chart configuration. The minimap renders with the updated colors on the next map load.

Failure mode: incorrect chart colors on the minimap

If a building appears as a green patch (terrain color) on the minimap instead of a gray rectangle, or if a road appears the same color as the surrounding terrain, the object's Chart field is not set correctly.

Resolution: Verify that the object's Chart field is set in its .dat configuration. Buildings should have Chart set to None (auto-classified) or a specific building index. Roads should have Chart set to Road or Highway depending on their width classification.

Failure modes

Failure mode: brush strokes have no effect

If the paint brush moves across the terrain but no material change is visible, the most likely cause is that the selected layer index does not have a material assigned. Open the Materials tab and confirm that the layer slot has a material thumbnail. If the slot is empty, assign a material to it before painting.

A second cause is that the layer is assigned but the material's texture is missing from the master bundle. The brush produces visible results in the splatmap data (the data is written correctly), but the rendered terrain shows a solid color or a missing-texture checkerboard pattern. Verify that the master bundle containing the terrain material's textures is present in the map's Bundles/ folder.

A third cause is that the brush Strength is set too low. At Strength values below 0.02, the blend weight change per stroke is imperceptible. Increase Strength to 0.1 and test on a small area.

Failure mode: painted material appears as a different texture

If the painted material displays a texture that does not match the material assigned in the Materials tab, the most likely cause is that the layer stack order was changed after painting began. Changing the layer order remaps the splatmap channels, causing existing paint to display a different material. The fix is to restore the original layer order or to repaint the affected areas.

Failure mode: material appears blurred or low resolution

If the painted material texture appears blurry or pixelated on the terrain surface, the material's albedo texture may be too low in resolution. Terrain textures should be at least 512 by 512 pixels, with 1024 by 1024 recommended for base materials. Higher texture resolution produces sharper terrain at close view distances.

Failure mode: material transition is too sharp

If the boundary between two material layers is a hard line with no visible blend, the brush Strength was too high when painting the transition. The fix is to reduce the brush Strength to 0.05 to 0.15 and paint along the boundary again. Each low-strength pass adds a small amount of blend weight, building up the transition gradually.

Failure mode: material disappears after save and reload

If a painted material appears correctly in the editor but is missing after a save and reload, the material's texture is not included in the map's master bundle. The splatmap data is saved correctly, but the texture file referenced by the material is not available to the renderer when the map loads. Verify that the material's texture is included in a master bundle that is present in the map's Bundles/ folder.

Failure mode: terrain appears completely black on the minimap

If the terrain shows as black on the minimap, the Height Strip texture is missing or corrupted. Restore the chart configuration from a backup or reconfigure the Height Strip pixel colors.

Frequently asked questions

Why does the terrain show a repeating pattern in the material texture at certain camera distances?

The repeating pattern is caused by the material texture tiling being visible at the current camera distance. At medium distances, the texture repeats become more visible because the eye can perceive the tile boundaries. Increasing the texture resolution or adjusting the tiling values in the Unity source material can reduce the visibility of the repeating pattern. Adding a detail normal map at a different tiling scale also breaks up the visible repetition.

Can I paint material layers on the terrain at a specific angle or slope only?

The paint brush does not have a slope filter. It paints on all terrain surfaces regardless of angle. To restrict a material to specific slope angles, the material must be applied manually in the areas that match the intended slope range. The foliage system has slope angle filtering, but the material painting system does not.

How does the material layer index affect the splatmap file size?

Each material layer adds one channel of data to the splatmap. Layers 0 through 3 are stored in a single RGBA splatmap texture (one channel per layer). Layers 4 through 7 require a second splatmap texture. Using fewer layers reduces the splatmap file size. A map with four layers uses approximately 5 MB of splatmap data per tile. A map with eight layers uses approximately 10 MB per tile.

Can I paint material layers on terrain that is below the water plane?

Yes. Material layers can be painted on terrain regardless of the water plane elevation. The terrain below the water plane accepts paint strokes and stores the blend weights in the splatmap. When the map is loaded in-game, the painted materials are visible underwater through the water surface depending on the water transparency and fog settings.

How do I create a dirt path that gradually widens or narrows?

Paint the dirt layer along the path centerline at a constant brush size. For widening sections, increase the brush Size progressively as you paint along the path. For narrowing sections, decrease the brush Size. Multiple passes at different brush sizes create a path with variable width. After the width passes, use the Smooth paint mode at the path edges to blend the dirt into the surrounding material.

Why does the terrain show visible seams between material layers on adjacent tiles?

Visible seams between material layers on adjacent tiles occur when the two tiles use different materials for the same layer index, or when the material textures have different tiling values between the tiles. Verify that adjacent tiles use the same material assignment for each layer index and that the tiling values in the Unity source materials match. If the materials and tiling are identical, the seam may be caused by a height difference between the tiles rather than a material issue.

How do I create a beach that transitions from sand to grass over a distance of 20 units?

Paint the sand layer at full strength (1.0) across the entire beach area up to the water edge. Paint the grass layer at full strength across the inland area starting 20 units from the water edge. Set the brush Strength to 0.1 and paint both layers along the 20-unit transition zone between the beach and the inland area. Apply alternating passes of sand and grass at low strength to build up a gradual blend. Use the Smooth paint mode to finalize the transition.

How do I create a shoreline material transition that follows the water edge exactly?

Paint the shoreline material (sand or mud) along the water edge using a small brush (Size 20 to 30) at Strength 0.5. The brush follows the contour of the shoreline. After the initial pass, use the Smooth paint mode at Strength 0.2 to blend the shoreline material into the adjacent biome material. The result is a natural-looking shoreline that follows the water edge precisely.

How do I paint a material layer so that it appears only on specific terrain slope angles?

The paint brush does not have a slope filter. To restrict a material to specific slopes, paint the material manually in the areas that match the intended slope range. For a material that should appear only on steep slopes (such as a rock layer on cliff faces), use a small brush and paint along the cliff edges where the slope is steepest. The foliage system has slope angle filtering, but the material painting system does not.

How does the terrain respond to lighting changes after material painting?

The terrain material layers respond to the map's directional light (sun) and ambient light. If the sun angle or ambient light color changes after material painting, the painted materials appear different because their albedo textures are lit by the new light configuration. The materials themselves are not modified by lighting changes. The visual difference is caused by the lighting, not by the materials. To evaluate material appearance under different lighting conditions, change the sun pitch and yaw in the Lighting panel and observe the terrain surface.

What causes the material to appear as a solid color with no texture detail?

A material that appears as a solid color with no visible texture detail has either a missing albedo texture or an albedo texture set to a single flat color. Verify that the material's albedo texture is assigned correctly in the Unity source material. If the albedo texture is present and correct, the issue may be that the texture resolution is too low for the terrain tile size, causing the detail to be invisible at the current camera distance.

What is the difference between the Paint tab's normal painting mode and its smooth painting mode?

Normal painting mode adds blend weight to the selected layer at the brush position. Smooth painting mode averages the blend weights of all layers within the brush radius, reducing sharp transitions between adjacent materials. Smooth painting mode does not add weight to any specific layer; it distributes the existing weight more evenly across the painted area.

How do I plan the material layer assignment before opening the editor?

Create a map of the intended biome zones on paper or in an image editor. Identify the distinct terrain surfaces required: grass, dirt, rock, sand, mud, snow, dead grass, and road. Assign each surface to a layer index. Layer 0 is always the base coat (the most broadly applicable material). Layers 1 through 7 are assigned in order of decreasing coverage area. The most frequently painted material gets the lowest available index. This planning step prevents the need to reorder layers after painting has begun.

What is the difference between painting at high strength versus multiple low-strength passes?

Painting at high strength (0.8 to 1.0) immediately sets the layer weight to near-maximum at every texel under the brush. This produces a solid, uniform material application in a single stroke. Multiple low-strength passes (0.05 to 0.15) build up the layer weight gradually, producing a more natural-looking distribution with varied opacity across the painted area. For biome zones that should have complete coverage, use high strength. For transitions and blends, use multiple low-strength passes.

How do I ensure that terrain materials tile correctly across tile boundaries?

Terrain material textures are configured to tile seamlessly across the entire terrain surface. The tiling is based on the material's configuration in Unity, not on the tile boundaries. As long as the same material is assigned to the same layer index on adjacent tiles, the texture tiles continuously across the boundary with no visible seam. If a seam appears, verify that both tiles use the same material for the same layer index and that the tiling values in the Unity source material match.

Can I use the same material texture on two different layer indices?

Yes. A material can be assigned to multiple layer slots. Each slot with the same material behaves independently. Painting on layer 1 with material A does not affect layer 2 with material A. The splatmap stores separate blend weights for each layer index, so the same material can appear at different weights in different regions.

What happens to the splatmap when I remove a material layer?

When a layer is removed, the splatmap channel for that layer is discarded. The remaining layers are not reindexed to fill the gap. The splatmap data for the removed channel is lost. Terrain areas that had blend weight on the removed layer fall back to the base coat (Layer 0). There is no recovery mechanism for the discarded channel data.

How many material layers can I have on one terrain tile?

The maximum is eight material layers per terrain tile. Layer 0 is the base coat that fills the entire terrain. Layers 1 through 7 are painted on top. Attempting to add a ninth layer produces an error and the layer is not created.

Can I have more than eight materials on a map by using different tiles?

Each tile has its own eight-layer limit. A tile on one side of the map can use a different set of eight materials than a tile on the other side. However, the materials available to each tile are drawn from the same global material palette. The per-tile limit is on the number of simultaneously active layers, not on the total number of materials in the palette.

Why does my brush produce a very faint effect even at high strength?

The brush produces a blend weight change based on the Strength setting and the current splatmap state. If the layer being painted is already at or near maximum weight at the texels under the brush, additional strokes have a diminished effect because the weight cannot exceed the maximum value. Switch to a different layer to paint over the area, or clear the layer's weight by painting a different layer over it.

How do I create a smooth transition between grass and sand on a beach?

Paint the grass layer across the beach zone at Strength 0.8. Switch to the sand layer and paint the same area at Strength 0.2 to 0.3. The sand appears as a partial overlay on the grass. Then use the Smooth paint mode along the transition line to spread the blend. For a longer transition zone, use a larger brush size and lower strength.

Why does my terrain have a grid pattern visible in the material texture?

A visible grid pattern indicates that the material texture's tiling settings do not match the terrain tile size. The material's tiling values in the Unity source material determine how many times the texture repeats across the tile. If the tiling value is too low relative to the tile size, the texture appears as a single large image with visible repetition seams. Adjust the tiling values in the Unity source material and rebuild the master bundle.

Can I paint a material on a vertical cliff face?

Yes. Material painting is not constrained by slope angle. The paint brush works on any part of the terrain surface regardless of its angle. However, the painted material's visual alignment with the terrain surface depends on the material's texture tiling, which may appear stretched on steep slopes.

What happens to painted materials if I change the terrain heightmap?

Changing the heightmap stretches or compresses the existing splatmap data to match the new terrain shape. The material textures adjust to the new geometry but the layer weights remain intact. No material data is lost when the heightmap is modified. However, severe heightmap changes can make existing material blends look unnatural because the texture tiling is stretched.

How do I set different physics surfaces for different layers?

The physics surface type is part of the material asset's .dat configuration, not the Terrain panel. Open the material asset's .dat file and set the PhysicsMaterial or VanillaPhysicsMaterial field to the desired surface type. Different layers that use different material assets can have different physics surface types.

Why does grass foliage not appear on my rock layer?

The foliage asset's Layers field in its .dat file restricts it to specific material layer indices. If the grass foliage asset has Layers 0 set, it only appears on layer 0 (typically grass). To allow grass on both grass and rock layers, set Layers 0 1 in the foliage .dat file.

How do I remove a painted material layer from an area?

To remove a painted layer from an area, paint a different layer over it at high strength. The new layer's weight replaces the old layer's weight at the painted texels. There is no dedicated erase mode for material layers. To fully remove all painted layers and restore the base coat (Layer 0), paint Layer 0 at Strength 1.0 over the affected area.

Best practices

  • Finalize the layer list (which materials, in which order) before beginning to paint. Changing the layer order after painting remaps the splatmap channels.
  • Use Layer 0 for the most broadly applicable material. Layer 0 fills the entire terrain on creation and is the fallback where no other layer has been applied.
  • Paint broad biome zones at high strength first, then create transitions at low strength.
  • Use Smooth paint mode to blend sharp material boundaries. Natural terrain has few perfectly sharp material transitions.
  • Test the physics surface type of each material by walking across it in the editor viewport. The footstep sound and movement speed should match the visual appearance.
  • Keep the eight-layer limit in mind during biome planning. If more than eight materials are needed, use placed objects to represent the extra surfaces.
  • Verify that all material textures are included in the map's master bundle before publishing.
  • Save the map before beginning a painting pass. If the pass produces unsatisfactory results, reload the map to restore the previous state.
  • Document the layer index assignment (which index corresponds to which material) for reference during later editing sessions.
  • Check the minimap chart colors after material painting is complete to confirm that the terrain is displayed correctly on the player's map.

Advanced considerations

Custom terrain materials

Custom terrain materials are authored in Unity and exported as part of the map's master bundle. The workflow for creating a custom terrain material involves creating a Unity material with the Nature/Terrain/Diffuse shader (legacy) or the URP/Terrain/Lit shader, assigning the albedo texture and normal map, setting the tiling values, and exporting the material as part of the master bundle.

Splatmap channel encoding

The splatmap uses standard RGBA channels for layers 0 through 3. Layers 4 through 7 require a second splatmap texture using the same RGBA encoding. The second texture file is named Splatmap_1.png and is stored in the same Level/Terrain/ directory. The editor creates the second splatmap texture automatically when a fifth layer is added.

Material texture tiling

The tiling of each material texture is determined by the material's configuration in Unity, not by the Level Editor. The tiling value controls how many times the texture repeats across the terrain tile. The cohort-validated starting tiling values are:

Material typeRecommended tiling (per tile)
Grass (fine)60 by 60
Dirt40 by 40
Rock30 by 30
Sand80 by 80
Snow60 by 60
Mud50 by 50

These values assume a 512 by 512 heightmap resolution per tile. Adjust proportionally for different tile sizes.

Appendix A: Material layer quick reference

Layer indexTypical materialPhysics surfaceFoliage compatibility
0Grass (base)GrassYes (grass foliage)
1DirtDirtYes (some foliage)
2RockGravel or MetalNo
3SandSandLimited (specific foliage)
4MudMudNo
5SnowSnowNo
6Dead grassGrassLimited (specific foliage)
7Road asphaltConcreteNo

Appendix B: Diagnostic table for material painting issues

SymptomRoot causeResolution
Brush strokes have no visible effectSelected layer has no material assignedAssign a material to the layer slot
Painted material shows checkerboard patternMaterial texture missing from master bundleInclude texture in master bundle
Painted material appears as wrong textureLayer stack order changed after paintingRestore original layer order or repaint
Material transition is too sharpBrush strength too high when painting blendReduce strength to 0.05-0.15 and re-blend
Material disappears after save and reloadTexture not included in master bundleAdd texture to master bundle
Terrain minimap shows blackHeight Strip texture missing or corruptedRestore chart configuration from backup
Grid pattern visible in materialTexture tiling does not match tile sizeAdjust tiling in Unity source material
Grass foliage not appearing on painted zoneFoliage Layers field excludes this layer indexUpdate foliage .dat Layers field
Material appears blurry at close viewAlbedo texture resolution too lowUse 1024x1024 or higher resolution texture
Cannot add a ninth material layerEight-layer limit reachedPrioritize eight materials; use placed objects for extras

Appendix C: External references

How do I fix a material layer that appears too dark or too light on the terrain?

A material layer that appears too dark or too light relative to the intended appearance indicates that the material's albedo texture brightness is not calibrated for the map's lighting conditions. Adjust the albedo texture brightness in an image editor and rebuild the master bundle. Alternatively, adjust the map's ambient light color in Level.dat to better match the material's brightness. Increasing the ambient light values makes all materials appear brighter, but affects all layers uniformly.

How do I ensure that the minimap chart colors match the painted terrain materials?

The minimap chart colors are defined in the Height Strip and Layer Strip textures in the chart configuration. The Height Strip determines terrain elevation colors. The Layer Strip determines object and road colors. To ensure that the minimap colors match the painted materials, configure the Height Strip pixel colors to approximate the material colors at each elevation band. Green pixels for grass zones, tan pixels for dirt zones, gray pixels for rock zones, and white pixels for snow zones. Test by loading the map in-game and opening the minimap.

Can I paint materials on terrain tiles that are at different elevations?

Yes. The paint brush works on all terrain tiles regardless of their elevation. The brush applies the selected layer's blend weight to the splatmap texels at the brush position. The material texture tiles across the terrain surface based on the material's tiling configuration, not based on the tile elevation. Materials paint correctly on flat terrain, sloped terrain, and vertical cliff faces.

How do I verify that a material layer's physics surface type is set correctly?

Walk across the painted material in the editor viewport and listen to the footstep sound. The footstep sound corresponds to the physics surface type configured in the material asset. If the footstep sound does not match the expected surface type, open the material asset's .dat file and verify the PhysicsMaterial or VanillaPhysicsMaterial field. The cohort-recommended physics surface values are documented in the Physics surface type table in this article.

Cross-references

Authoring checklist

Before concluding that terrain material painting is complete for a given map project, confirm the following:

  • [ ] The material layer list is finalized with the correct order and number of layers
  • [ ] Layer 0 (base coat) is assigned to the most broadly applicable material
  • [ ] All required biome zones have corresponding material layers assigned
  • [ ] Broad biome zones are painted at high strength
  • [ ] Transitions between adjacent materials are blended at low strength
  • [ ] Smooth paint mode has been applied at material boundaries
  • [ ] Physics surface type is configured correctly for each layer
  • [ ] Foliage layer associations are configured (where applicable)
  • [ ] Material textures are included in the map's master bundle
  • [ ] Minimap chart colors display correctly
  • [ ] The map has been saved after the painting pass
  • [ ] The layer index assignment is documented for reference

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Split from Terrain and Environment Editing into standalone depth treatment.