Pattern

<pattern>

Many commands in WorldEdit accept a pattern as an argument. A pattern determines which blocks are placed and how they are distributed throughout an operation.

A pattern describes the block, mixture, gradient, or generated distribution that WorldEdit places during an operation.

The pattern placeholder appears as:

Pattern Placeholder

<pattern>

The placeholder is not written literally. Replace it with a valid pattern:

Pattern Examples

stone
stone,andesite,gravel
70%stone,20%andesite,10%gravel
$wood.rad
#blob5(stone,dirt)

Single Block Patterns

The simplest pattern is a block identifier.

Block Identifiers

stone
spruce_planks
glowstone

Minecraft blocks can also use the complete namespace:

Namespaced Block

minecraft:stone

Blocks from another add-on must include their namespace:

Custom Namespace

my_addon:custom_block

To inspect the identifier of the block you are looking at:

Inspect Block Identifier

;blockid

Block States

Block states control properties such as orientation, axis, growth, variant, or upper and lower placement.

Use brackets after the block identifier:

Single State Syntax

block[state=value]

Separate multiple states with commas:

Multiple State Syntax

block[state1=value,state2=value]

Example:

Block State Example

stone_slab[stone_slab_type=brick,top_slot_bit=true]

When a state is omitted, WorldEdit uses that block’s default state.

Data Values

Some legacy block variants can use a numeric data value:

Data Value Syntax

block:value

Example:

Legacy Variant Example

wool:1

To inspect a block identifier together with its data value:

Inspect Data Value

;blockid -d

Do not combine a data value and block states in the same block pattern:

Invalid Mixed Syntax

wool:1[state=value]

For new builds, prefer written block identifiers and explicit states.

Random Mixes

A random mix selects one of several patterns for each affected position.

Separate the entries with commas and do not add spaces:

Uniform Random Mix

stone,andesite,gravel

Without weights, each entry has approximately the same probability:

PatternApproximate probability
stone33.33%
andesite33.33%
gravel33.33%

Another example:

Wood Mix

spruce_planks,stripped_spruce_wood,mangrove_wood

Weighted Random Mixes

Place a weight before % to control how frequently each entry is selected.

Weighted Mix Syntax

weight%pattern,weight%pattern

Example:

Percentage Mix

70%stone,20%andesite,10%gravel

Weights can also be relative and do not need to total 100:

Relative Weight Mix

7%stone,2%andesite,1%gravel

The 7/2/1 ratio is equivalent to 70/20/10.

Normalize Relative Weights

Use this formula to convert relative weights into percentages:

Weight Normalization Formula

percentage = individual weight / sum of all weights × 100

For weights 7, 2, and 1:

Weight Normalization Example

total weight = 7 + 2 + 1 = 10
stone        = 7 / 10 × 100 = 70%
andesite     = 2 / 10 × 100 = 20%
gravel       = 1 / 10 × 100 = 10%

Each weighted entry can also be another pattern type:

Weighted Complex Pattern

20%*wool,80%stone

In this example:

  • 20%*wool uses random valid states for wool.
  • 80%stone uses a fixed stone pattern.

Estimated Block Counts

Random selection produces different exact totals each time, but you can calculate an estimate.

Estimated Block Formula

estimated blocks = total positions × percentage / 100

For 10,000 positions and the following mix:

Example Distribution

70%stone,20%andesite,10%gravel

The estimated distribution is:

PatternCalculationEstimated blocks
stone10,000 × 70 / 1007,000
andesite10,000 × 20 / 1002,000
gravel10,000 × 10 / 1001,000

For 3,456 positions:

Decimal Estimate Example

stone       = 3456 × 0.70 = 2419.2
andesite    = 3456 × 0.20 = 691.2
gravel      = 3456 × 0.10 = 345.6

Blocks cannot be fractional, so the actual results are nearby whole numbers and may vary because the pattern is random.

Calculate a Percentage from a Desired Amount

Desired Amount Formula

percentage = desired blocks / total positions × 100

For approximately 750 glowstone blocks in 5,000 positions:

Desired Amount Example

750 / 5000 × 100 = 15%

The resulting pattern can be written as:

Calculated Percentage Mix

15%glowstone,85%stone

Random States with *

The * prefix selects random valid states for the specified block identifier.

Random State Syntax

*block

Example:

Random Log States

*log

Another example:

Random Stair States

*oak_stairs

The result depends on the states supported by that block identifier.

*log does not guarantee every wood type because several woods use different identifiers.

Preserve or Change States with ^

The ^ prefix changes a block type or selected states while attempting to preserve the remaining properties.

Change the Type and Preserve States

Preserve Existing States

^acacia_stairs

This can change the material of a stair block while attempting to preserve its orientation and placement.

Change Only Specific States

State-Only Pattern

^[growth=7]

This preserves the current block type and changes only the specified state.

A block type and states can also be combined:

Type and State Pattern

^block[state=value]

Clipboard Pattern

#clipboard uses copied content as a repeating pattern.

Clipboard Pattern

#clipboard

Use an offset to move the pattern origin:

Clipboard Offset Syntax

#clipboard@[x,y,z]

Example:

Clipboard Offset Example

#clipboard@[0,1,0]

This shifts the repeating pattern origin one block upward.

Hand Pattern

#hand uses the block held in the main hand.

Held Block Pattern

#hand

The held item must represent a valid block.

The void Pattern

void does not place a block at that position.

Void Pattern

void

It becomes useful when combined with other patterns:

Random Gaps

stone,void

Approximately half of the positions receive stone, while the other positions remain unchanged.

A weighted version provides more control:

Weighted Void Mix

25%glowstone,75%void

void Compared with air

Air Pattern

air

air replaces the existing block with air.

Void Pattern

void

void skips the position and preserves the existing block.

Gradients

A gradient creates an ordered transition between multiple pattern levels.

Create a Gradient

Create Gradient Syntax

;gradient create <name> <pattern1> <pattern2> <pattern3>

Example:

Create Gradient Example

;gradient create nature stone dirt grass_block

Spaces separate gradient levels.

Commas create a random mix inside one level:

Gradient with Mixed Levels

;gradient create terrain stone,andesite dirt,coarse_dirt grass_block,moss_block

The levels are interpreted as:

Gradient Level Order

stone,andesite
      ↓
dirt,coarse_dirt
      ↓
grass_block,moss_block

Reference a Saved Gradient

A saved gradient uses the $ prefix:

Saved Gradient Pattern

$nature

The $ prefix is required.

Absolute Directions

Gradient Directions

$nature.north
$nature.south
$nature.east
$nature.west
$nature.up
$nature.down

Relative directions such as left, right, forward, or back are not used here.

Radial Gradient

Radial Gradient Pattern

$nature.rad

A radial gradient moves from the center of the operation toward its outer boundary:

Radial Gradient Order

first pattern = center
last pattern  = outer boundary

Example definition:

Create Radial Gradient

;gradient create light deepslate_gold_ore spruce_planks glowstone birch_planks

Use it as a radial pattern:

Use Radial Gradient

$light.rad

Gradient from the Player

Player-Origin Gradient

$nature.lit

This uses the player’s position as the gradient reference.

Create a Gradient from a Selection

Selection Gradient Syntax

;gradient create -s <name>

Example:

Selection Gradient Example

;gradient create -s wall

WorldEdit reads the selection along its longest side and uses it as the gradient map.

Control the Transition

Gradient Fade Syntax

;gradient create -f <fade> <name> <patterns...>

Example with a hard transition:

Hard Transition Example

;gradient create -f 0 contrast black_concrete white_concrete

Manage Saved Gradients

Gradient Management

;gradient list
;gradient delete nature

Creating a gradient with an existing name replaces its previous definition.

Understand Gradient Order

A gradient is ordered, not randomly weighted.

Linear Gradient Order

start → A → B → C → D → end

For a radial gradient:

Radial Order

center → A → B → C → D → outer boundary

Reverse the pattern list to reverse the transition:

Reversed Gradient Order

D C B A

The exact number of blocks assigned to each stage depends on the operation’s shape, size, and direction.

Blob Patterns

A Blob Pattern groups materials into patches instead of selecting every position independently.

Blob Pattern Syntax

#blob<size>(patterns)

Basic example:

Basic Blob Pattern

#blob5(stone,dirt)

A smaller number creates smaller groups:

Small Blob Groups

#blob2(stone,andesite)

A larger number creates wider groups:

Large Blob Groups

#blob10(stone,andesite)

Blob Patterns can contain weighted entries:

Weighted Blob Pattern

#blob6(70%stone,30%andesite)

Example with several terrain materials:

Terrain Blob Pattern

#blob8(dirt,coarse_dirt,podzol)

Combining Pattern Types

Different pattern types can be nested or mixed.

Random Material with Unchanged Positions

Random Material and Void

20%glowstone,80%void

Random States with a Fixed Block

Random States and Fixed Block

25%*log,75%stone

Blob with Multiple Materials

Multi-Material Blob

#blob5(stone,andesite,gravel)

Weighted Blob

Weighted Multi-Material Blob

#blob6(70%stone,20%andesite,10%gravel)

Gradient Made from Random Mixes

Mixed-Level Gradient

;gradient create terrain stone,andesite dirt,coarse_dirt grass_block,moss_block

In this definition:

  • Commas create a random mix within one level.
  • Spaces separate the ordered gradient levels.

Pattern Picker

The Pattern Picker is an item included in the WorldEdit kit. It lets you select materials without manually typing their identifiers.

To obtain the kit:

Get the WorldEdit Kit

;kit

Use the Pattern Picker on a block without crouching to select a pattern.

Crouch and use it on additional blocks to add those materials to the mixture.

The documentation does not define a command pattern identifier such as $picker. In written commands, enter the pattern explicitly.

Minimal Usage Example

This page focuses on pattern syntax rather than the commands that consume patterns. The following example only shows where the pattern argument appears:

Pattern in a Command

;set 60%stone,25%andesite,15%gravel

The pattern portion is:

Extracted Pattern

60%stone,25%andesite,15%gravel

The same pattern can be used wherever WorldEdit expects a <pattern> argument.

Common Mistakes

Translating Block Identifiers

Incorrect:

Invalid Translated Identifier

birch_planks_in_spanish

Correct:

Valid Block Identifier

birch_planks

Confusing Logs and Wood Blocks

Log and Wood Identifiers

oak_log
oak_wood
stripped_oak_log
stripped_oak_wood

Inspect the exact block identifier when necessary:

Inspect Block Identifier

;blockid

Confusing void with air

Void and Air Difference

air  = replaces the current block with air
void = leaves the current position unchanged

Forgetting $ in a Gradient

Incorrect:

Invalid Gradient Reference

wood.rad

Correct:

Valid Gradient Reference

$wood.rad

Adding Spaces Inside a Random Mix

Avoid:

Invalid Spaced Mix

stone, andesite, gravel

Use:

Valid Compact Mix

stone,andesite,gravel

Confusing Commas and Spaces in Gradients

Gradient Separator Example

stone,andesite dirt,coarse_dirt grass_block
  • Commas mix patterns inside one level.
  • Spaces separate different gradient levels.

Assuming the Pattern Picker Has an Identifier

No documented pattern identifier such as $picker is available for written commands.

Quick Reference

PatternPurpose
stoneSingle block
minecraft:stoneBlock with an explicit namespace
stone_slab[state=value]Block with states
wool:1Legacy data value variant
stone,andesite,gravelUniform random mix
20%stone,80%andesiteWeighted random mix
*logRandom valid states
^acacia_stairsChange type while attempting to preserve states
^[growth=7]Change only selected states
#clipboardClipboard content
#clipboard@[0,1,0]Clipboard pattern with an offset
#handBlock held in the main hand
voidLeave the position unchanged
$nameSaved gradient
$name.northGradient directed north
$name.upUpward gradient
$name.radRadial gradient
$name.litGradient referenced from the player
#blob5(stone,dirt)Grouped blob distribution

Reusable Templates

Single Block Template

<block>

Uniform Mix Template

<block1>,<block2>,<block3>

Weighted Mix Template

<weight>%<block1>,<weight>%<block2>

Random State Template

*<block>

State-Preserving Template

^<block>[state=value]

Blob Pattern Template

#blob<size>(<pattern1>,<pattern2>)

Radial Gradient Template

$<name>.rad