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:
| Pattern | Approximate probability |
|---|---|
stone | 33.33% |
andesite | 33.33% |
gravel | 33.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%*wooluses random valid states for wool.80%stoneuses 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:
| Pattern | Calculation | Estimated blocks |
|---|---|---|
stone | 10,000 × 70 / 100 | 7,000 |
andesite | 10,000 × 20 / 100 | 2,000 |
gravel | 10,000 × 10 / 100 | 1,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.
*logdoes 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
| Pattern | Purpose |
|---|---|
stone | Single block |
minecraft:stone | Block with an explicit namespace |
stone_slab[state=value] | Block with states |
wool:1 | Legacy data value variant |
stone,andesite,gravel | Uniform random mix |
20%stone,80%andesite | Weighted random mix |
*log | Random valid states |
^acacia_stairs | Change type while attempting to preserve states |
^[growth=7] | Change only selected states |
#clipboard | Clipboard content |
#clipboard@[0,1,0] | Clipboard pattern with an offset |
#hand | Block held in the main hand |
void | Leave the position unchanged |
$name | Saved gradient |
$name.north | Gradient directed north |
$name.up | Upward gradient |
$name.rad | Radial gradient |
$name.lit | Gradient 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