Skip to main content

Node editor

The node editor builds terrain from a visual graph: pick zones of the map, shape values, then send them to outputs that paint layers, set heights or pour water. Change a value and the preview follows; nothing touches the map until you apply. Applied outputs are then disabled, so they are not applied a second time; undoing the application enables them again.

Open it from View → Node Editor.

How a graph works​

A graph reads from left to right. In this basic example, a Combine node joins two conditions, Altitude constraint and Water constraint, so that Apply material paints sand only where there is water, between -64 and 70 blocks high.

A basic graph: altitude and water constraints combined to paint sand

Node categories​

Tool​

Tool nodes are Gray. They help organize the nodes and the links, without altering or processing the data. The Preview node is also useful to debug and visualize intermediate results.

Example of tool nodes used to reroute and preview a signal
Example of tool nodes used to reroute and preview a signal

Input​

Input nodes are Blue. They are the starting point of a node graph: they read the map (altitude, slope, layers, water…) or create new values (constant, 2D noise, color, material…).

Example of some input nodes
Example of some input nodes

Operation​

Operation nodes are Purple. They sit between inputs and outputs: they combine masks, transform values (math, curve, clip, blur, distance…) or process images and colors.

Example of some operation nodes and a simple operation that adds 10 to the terrain height
Example of some operation nodes and a simple operation that adds 10 to the terrain height

Output​

Output nodes are Green. They end a graph and write to the map: they paint materials and layers, set the height, pour water or remove layers.

Example of some output nodes and a simple application of 10 blocks of water everywhere inside a selection
Example of some output nodes and a simple application of 10 blocks of water everywhere inside a selection

Ports​

Wires carry five kinds of data, each with its own port color. The two main ones are Mask and Scalar field; Image, Color and Material only show up in a few nodes.

Mask​

Yes or no for each cell: "this zone".

A Material zone mask seen in a Preview: white where the ground is grass
A Material zone mask seen in a Preview: white where the ground is grass

Scalar field​

A number for each cell: height in blocks, noise 0..1, slope in degrees.

The terrain height seen in a Preview: from 16 to 142 blocks, brighter where it is higher
The terrain height seen in a Preview: from 16 to 142 blocks, brighter where it is higher

Image​

The pixels of an image.

Color​

A single color.

Material​

A single material.

Organizing large graphs​

Frames​

Frames group the parts of a graph that belong together, such as everything that builds the relief, under a title. A large graph stays readable, and a collapsed frame behaves like a single node with its own inputs and outputs.

Create one with a right click on the background → New frame, or around selected nodes with Frame selection. Moving a frame moves its content; its right click menu renames it, colors it, collapses it or applies only the outputs it holds.

A frame grouping four nodes, and the same frame collapsed and wired like a single node
A frame grouping four nodes, and the same frame collapsed and wired like a single node

Arrange​

A right click on the background → Arrange lays the whole graph out left to right along its links: sources on the left, outputs on the right, with no overlap. Each frame is arranged inside, then moved as a block. Undo it with the graph history.

Frame library​

The frame library keeps your best setups, such as a snow cover or a river bank, so you can reuse them in any project instead of rebuilding them.

Right click on a frame → Save to library to add it. The Frame library button of the toolbar lists the saved frames: click one to insert it in the current graph.

The frame library with two saved frames
The frame library with two saved frames

Reroutes, portals and previews​

Keep wires readable: bend them with Reroute dots, or replace a long wire with two Portals on the same channel. A Preview shows the value of any wire, with its min, max and average.

Node reference​

(opt.) marks an optional input: left free, the node uses its own setting or reads the terrain.

Tools​

NodeInOutWhat it does
RerouteAnySameBends a wire. Connecting the last lane opens a new one
PortalAnySamePortals on the same Channel pass on the value of the wired one
PreviewAnySameThumbnail of the value, with min, max and average

Inputs: zones​

NodeInOutWhat it does
Everywhere—MaskThe whole map
Selection—MaskInside the current selection, or outside
Point—MaskThe single cell X, Z. With Distance, the center of a circle or of a gradient
Altitude constraint(opt.)MaskCells between min and max height. A wired field is measured instead of the terrain
Slope constraint(opt.)MaskCells whose slope is between min and max degrees. Same option
Water constraint—MaskCells with water, or without: all water, the sea under the global level, or the local water of rivers and lakes
Material, Cover, Biome, Schematic, Annotation zone—MaskCells carrying the chosen item
Near a layerSource (opt.), Distance (opt.)MaskCells within or beyond a distance of a layer, of water or of the Source mask. Can exclude the layer itself
Layer—Mask, IntensityWhere a layer is painted, and its intensity 0..1
Constraints set—MaskA saved set of brush constraints
Noise zone—Band × NCuts a noise into bands: N thresholds give N+1 zones. Same noise types, octaves and seed as Noise field. Double click the bar to add a threshold, right click one to remove it

Inputs: values​

NodeInOutWhat it does
Terrain height—FieldHeight of the terrain, in blocks
Noise fieldScale, Octaves, Jitter, Sharpness, Seed (opt.)FieldContinuous noise 0..1: White, Simplex, Voronoi or Ridged (simplex folded into mountain crests, Sharpness thins them). Every setting can be driven by a field
Constant—FieldThe same value everywhere
Image import—Luminance, ImageAn image file stretched over the map. The project keeps its path
Constant color—ColorA color
Material—MaterialA material of the palette

Operations: masks​

NodeInOutWhat it does
CombineA, B…MaskIntersect (A and B), Union (A or B) or Subtract (A minus B). Each connection opens a new input
InvertMaskMaskSwaps inside and outside
BinarizeFieldMaskCells where the value reaches the threshold

Operations: fields​

NodeInOutWhat it does
MathA, B…FieldAdd, subtract, multiply, divide, min, max or average. A free input takes a typed value
CurveFieldFieldReshapes values along a curve; heights are reshaped within their own range. Double click to add a point, right click to remove it
RemapField, 4 bounds (opt.)FieldMaps From min..max onto To min..max
Normalize (Clamp)FieldFieldStretches the measured min..max of the field onto min..max
ClipFieldFieldCuts the values below min and above max
BlurFieldFieldSoftens a field, radius in blocks. On a mask, gives soft edges
WarpFieldFieldDistorts a field with noise: Scale sets the frequency, Amount the shift in blocks
Slope(opt.)FieldSlope in degrees, of the terrain or of the wired field
DistanceMaskFieldDistance in blocks to the mask, negative inside if signed
ErosionMask (opt.), Ground (opt.)Height, DeltaFluvial erosion of the terrain or of the wired height, inside the mask. Delta is the change it made

Operations: images and colors​

NodeInOutWhat it does
Nearest blockColorMaterialThe vanilla block closest to the color, or another picked in the grid
PosterizeImageZone + Color per groupReduces the image to 2 to 16 colors
Split RGBImageR, G, BRed, green and blue channels, 0..1
Merge RGBR, G, BImageBuilds an image from three fields

Outputs​

NodeInOutWhat it does
Apply materialMask, Material (opt.)—Paints the surface material. The Material port overrides the list
Apply cover, schematic, resource, feature, combinedMask, Intensity (opt.)—Adds the layer; Intensity 0..1 sets its strength per cell
Apply biomeMask—Sets the biome
Apply annotationMask—Paints an annotation color
Apply heightFieldHeightReplaces the height or adds to it. Its output feeds the new height to the nodes after it
Apply waterMask, Height (opt.), Ground (opt.)—Water a given height above the ground; a height of 0 dries the cell
RemoveMask—Erases all layers, a category or one layer under the mask, before the other outputs run
Export heightmapField—Saves the field as a 16-bit PNG with its Export… button. Never writes to the map
ScriptScript inputsScript outputsRuns a Rhai script with its button. See Scripting API