Feature config

Helpers that build a minecraft:feature_config object, one for each of its types. Where a field takes one, write the helper's call; its name is the type it makes. Click a type to see what it accepts.

Bamboo

Bamboo
Bamboo(probability)
probability
number 0..1

BlockBlob

BlockBlob
BlockBlob(state, can_place_on)
state
BlockState
can_place_on
BlockPredicate

BlockColumn

BlockColumn
BlockColumn(direction, allowed_placement, prioritize_tip, layers)
direction
Direction
allowed_placement
BlockPredicate
prioritize_tip
bool
layers
list of BlockColumnLayer

BlockPile

BlockPile
BlockPile(state_provider)
state_provider
BlockStateProviderRef

BlueIce

BlueIce
BlueIce()

BonusChest

BonusChest
BonusChest()

ChorusPlant

ChorusPlant
ChorusPlant()

CoralClaw

CoralClaw
CoralClaw(feature)
feature
PlacedFeatureRef

CoralTree

CoralTree
CoralTree(feature)
feature
PlacedFeatureRef

DeltaFeature

DeltaFeature
DeltaFeature(contents, rim, size, rim_size)
contents
BlockState
rim
BlockState
size
IntProvider of int 0..16
rim_size
IntProvider of int 0..16

Disk

Disk
Disk(state_provider, radius, half_height, target)
state_provider
BlockStateProviderRef
radius
IntProvider of int 0..8
half_height
int 0..4
target
BlockPredicate

EmeraldOre

EmeraldOre
EmeraldOre(state, target)
state
BlockState
target
BlockState

EndGateway

EndGateway
EndGateway(exact, exit?)
exact
bool
exitoptional
list of int (exactly 3)

EndIsland

EndIsland
EndIsland()

EndPlatform

EndPlatform
EndPlatform()

EndPodium

EndPodium
EndPodium(active?)
activeoptional
bool

Defaults to false.

EndSpike

EndSpike
EndSpike(spikes, crystal_invulnerable?, crystal_beam_target?)
spikes
list of EndSpike
crystal_invulnerableoptional
bool
crystal_beam_targetoptional
list of int (exactly 3)

FallenTree

FallenTree
FallenTree(trunk_provider, log_length, stump_decorators, log_decorators)
trunk_provider
BlockStateProviderRef
log_length
IntProvider of int 0..16
stump_decorators
list of TreeDecorator
log_decorators
list of TreeDecorator

FillLayer

FillLayer
FillLayer(state, height)
state
BlockState
height
int 0..255

Flower

Flower
Flower(feature, tries?, xz_spread?, y_spread?)
feature
FeatureRef
triesoptional
int 1..

How many attempts will be made to find a placement. Defaults to 128.

xz_spreadoptional
int 0..

Defaults to 7.

y_spreadoptional
int 0..

Defaults to 3.

Fossil

Fossil
Fossil(max_empty_corners_allowed, fossil_structures, overlay_structures, fossil_processors, overlay_processors)
max_empty_corners_allowed
int 0..7

If more corners are exposed to air, feature placement is cancelled.

fossil_structures
list of structure ids
overlay_structures
list of structure ids
fossil_processors
ProcessorListRef
overlay_processors
ProcessorListRef

FreezeTopLayer

FreezeTopLayer
FreezeTopLayer()

Geode

Geode
Geode(blocks, layers, crack, invalid_blocks_threshold, noise_multiplier?, use_potential_placements_chance?, use_alternate_layer0_chance?, placements_require_layer0_alternate?, outer_wall_distance?, distribution_points?, point_offset?, min_gen_offset?, max_gen_offset?)
blocks
GeodeBlockSettings
layers
GeodeLayerSettings
crack
GeodeCrackSettings
invalid_blocks_threshold
int
noise_multiplieroptional
number 0..1
use_potential_placements_chanceoptional
number 0..1
use_alternate_layer0_chanceoptional
number 0..1
placements_require_layer0_alternateoptional
bool
outer_wall_distanceoptional
IntProvider of int 1..20
distribution_pointsoptional
IntProvider of int 1..20
point_offsetoptional
IntProvider of int 1..10
min_gen_offsetoptional
int
max_gen_offsetoptional
int

GlowLichen

GlowLichen
GlowLichen(block, search_range?, chance_of_spreading?, can_place_on_floor?, can_place_on_ceiling?, can_place_on_wall?, can_be_placed_on?)
block
MultifaceBlock
search_rangeoptional
int 1..64
chance_of_spreadingoptional
number 0..1
can_place_on_flooroptional
bool
can_place_on_ceilingoptional
bool
can_place_on_walloptional
bool
can_be_placed_onoptional
block id | #block tag | list of block ids

HugeBrownMushroom

HugeBrownMushroom
HugeBrownMushroom(cap_provider, stem_provider, can_place_on, foliage_radius?)
cap_provider
BlockStateProviderRef
stem_provider
BlockStateProviderRef
can_place_on
BlockPredicate
foliage_radiusoptional
int

Defaults to 2.

HugeFungus

HugeFungus
HugeFungus(hat_state, decor_state, stem_state, valid_base_block, replaceable_blocks, planted?)
hat_state
BlockState
decor_state
BlockState
stem_state
BlockState
valid_base_block
BlockState
replaceable_blocks
BlockPredicate
plantedoptional
bool

HugeRedMushroom

HugeRedMushroom
HugeRedMushroom(cap_provider, stem_provider, can_place_on, foliage_radius?)
cap_provider
BlockStateProviderRef
stem_provider
BlockStateProviderRef
can_place_on
BlockPredicate
foliage_radiusoptional
int

Defaults to 2.

IcePatch

IcePatch
IcePatch(state_provider, radius, half_height, target)
state_provider
BlockStateProviderRef
radius
IntProvider of int 0..8
half_height
int 0..4
target
BlockPredicate

Iceberg

Iceberg
Iceberg(state)
state
BlockState

Lake

Lake
Lake(fluid, barrier, can_place_feature, can_replace_with_air_or_fluid, can_replace_with_barrier)
fluid
BlockStateProviderRef
barrier
BlockStateProviderRef
can_place_feature
BlockPredicate
can_replace_with_air_or_fluid
BlockPredicate
can_replace_with_barrier
BlockPredicate

LargeDripstone

LargeDripstone
LargeDripstone(replaceable_blocks, column_radius, height_scale, max_column_radius_to_cave_height_ratio, stalactite_bluntness, stalagmite_bluntness, wind_speed, min_radius_for_wind, min_bluntness_for_wind, floor_to_ceiling_search_range?)
replaceable_blocks
block id | #block tag | list of block ids
column_radius
IntProvider of int 0..16
height_scale
FloatProvider of number 0..20
max_column_radius_to_cave_height_ratio
number 0..1
stalactite_bluntness
FloatProvider of number 0.1..10
stalagmite_bluntness
FloatProvider of number 0.1..10
wind_speed
FloatProvider of number 0..2
min_radius_for_wind
int 0..100
min_bluntness_for_wind
number 0..1
floor_to_ceiling_search_rangeoptional
int 1..512

MonsterRoom

MonsterRoom
MonsterRoom()

MultifaceGrowth

MultifaceGrowth
MultifaceGrowth(block, search_range?, chance_of_spreading?, can_place_on_floor?, can_place_on_ceiling?, can_place_on_wall?, can_be_placed_on?)
block
MultifaceBlock
search_rangeoptional
int 1..64
chance_of_spreadingoptional
number 0..1
can_place_on_flooroptional
bool
can_place_on_ceilingoptional
bool
can_place_on_walloptional
bool
can_be_placed_onoptional
block id | #block tag | list of block ids

NetherrackReplaceBlobs

NetherrackReplaceBlobs
NetherrackReplaceBlobs(state, target, radius)
state
BlockState
target
BlockState
radius
IntProvider of int 0..12

NoBonemealFlower

NoBonemealFlower
NoBonemealFlower(feature, tries?, xz_spread?, y_spread?)
feature
FeatureRef
triesoptional
int 1..

How many attempts will be made to find a placement. Defaults to 128.

xz_spreadoptional
int 0..

Defaults to 7.

y_spreadoptional
int 0..

Defaults to 3.

NoOp

NoOp
NoOp()

NoSurfaceOre

NoSurfaceOre
NoSurfaceOre(targets, size, discard_chance_on_air_exposure)
targets
list of TargetBlock
size
int 0..64
discard_chance_on_air_exposure
number 0..1

Chance that feature placement will be discarded if the ore is exposed to air blocks.

Ore

Ore
Ore(targets, size, discard_chance_on_air_exposure)
targets
list of TargetBlock
size
int 0..64
discard_chance_on_air_exposure
number 0..1

Chance that feature placement will be discarded if the ore is exposed to air blocks.

Overlay

Overlay
Overlay(features)
features
PlacedFeatureListRef

The features to generate, in order. All features are placed regardless of individual placement success.

ProjectedRandomPatchySquare

ProjectedRandomPatchySquare
ProjectedRandomPatchySquare(block, project_through, size, max_projection_height)
block
BlockStateProviderRef
project_through
BlockPredicate
size
IntProvider of int 1..16
max_projection_height
int 0..

RandomBooleanSelector

RandomBooleanSelector
RandomBooleanSelector(feature_false, feature_true)
feature_false
FeatureRef
feature_true
FeatureRef

RandomNeighborSpread

RandomNeighborSpread
RandomNeighborSpread(block, accepted_neighbors, can_replace, attempts, xz_offset, y_offset)
block
BlockStateProviderRef
accepted_neighbors
block id | #block tag | list of block ids
can_replace
BlockPredicate
attempts
IntProvider of int 1..3000
xz_offset
IntProvider of int -16..16
y_offset
IntProvider of int -16..16

RandomPatch

RandomPatch
RandomPatch(feature, tries?, xz_spread?, y_spread?)
feature
FeatureRef
triesoptional
int 1..

How many attempts will be made to find a placement. Defaults to 128.

xz_spreadoptional
int 0..

Defaults to 7.

y_spreadoptional
int 0..

Defaults to 3.

RandomSelector

RandomSelector
RandomSelector(features, default)
features
list of { chance: number 0..1, feature: FeatureRef }
default
FeatureRef

ReplaceSingleBlock

ReplaceSingleBlock
ReplaceSingleBlock(targets)
targets
list of TargetBlock

RootSystem

RootSystem
RootSystem(required_vertical_space_for_tree, level_test_distance, max_level_deviation, root_radius, root_placement_attempts, root_column_max_height, hanging_root_radius, hanging_roots_vertical_span, hanging_root_placement_attempts, allowed_vertical_water_for_tree, root_replaceable, root_state_provider, hanging_root_state_provider, allowed_tree_position, feature)
required_vertical_space_for_tree
int 1..64
level_test_distance
int 0..16
max_level_deviation
int 0..64
root_radius
int 1..64
root_placement_attempts
int 1..256
root_column_max_height
int 1..4096
hanging_root_radius
int 1..64
hanging_roots_vertical_span
int 1..16
hanging_root_placement_attempts
int 0..256
allowed_vertical_water_for_tree
int 1..64
root_replaceable
block id | #block tag | list of block ids
root_state_provider
BlockStateProviderRef
hanging_root_state_provider
BlockStateProviderRef
allowed_tree_position
BlockPredicate
feature
FeatureRef

ScatteredOre

ScatteredOre
ScatteredOre(targets, size, discard_chance_on_air_exposure)
targets
list of TargetBlock
size
int 0..64
discard_chance_on_air_exposure
number 0..1

Chance that feature placement will be discarded if the ore is exposed to air blocks.

SculkPatch

SculkPatch
SculkPatch(charge_count, amount_per_charge, spread_attempts, growth_rounds, spread_rounds)
charge_count
int 1..32
amount_per_charge
int 1..500
spread_attempts
int 1..64
growth_rounds
int 0..8
spread_rounds
int 0..8

Sequence

Sequence
Sequence(features)
features
PlacedFeatureListRef

The features to generate, in order. If any feature in the list is not placed, the following features will also be skipped.

SimpleBlock

SimpleBlock
SimpleBlock(to_place, schedule_tick?)
to_place
BlockStateProviderRef
schedule_tickoptional
bool

Whether to schedule a block update. Defaults to false.

SimpleRandomSelector

SimpleRandomSelector
SimpleRandomSelector(features)
features
PlacedFeatureListRef

SingleBlockPillar

SingleBlockPillar
SingleBlockPillar(block, direction, can_replace?, chance_to_continue?, cap_feature?)
block
BlockStateProviderRef
direction
VerticalDirection
can_replaceoptional
BlockPredicate

Defaults to "always true".

chance_to_continueoptional
number 0..1

Defaults to 1.

cap_featureoptional
PlacedFeatureRef

Speleothem

Speleothem
Speleothem(base_block, pointed_block, replaceable_blocks, chance_of_taller_generation?, chance_of_directional_spread?, chance_of_spread_radius2?, chance_of_spread_radius3?)
base_block
BlockState
pointed_block
BlockState
replaceable_blocks
block id | #block tag | list of block ids
chance_of_taller_generationoptional
number 0..1
chance_of_directional_spreadoptional
number 0..1
chance_of_spread_radius2optional
number 0..1
chance_of_spread_radius3optional
number 0..1

SpeleothemCluster

SpeleothemCluster
SpeleothemCluster(base_block, pointed_block, replaceable_blocks, floor_to_ceiling_search_range, height, radius, max_stalagmite_stalactite_height_diff, height_deviation, speleothem_block_layer_thickness, density, wetness, chance_of_speleothem_at_max_distance_from_center, max_distance_from_edge_affecting_chance_of_speleothem, max_distance_from_center_affecting_height_bias)
base_block
BlockState
pointed_block
BlockState
replaceable_blocks
block id | #block tag | list of block ids
floor_to_ceiling_search_range
int 1..512
height
IntProvider of int 0..128
radius
IntProvider of int 0..128
max_stalagmite_stalactite_height_diff
int 0..64

Max height difference between the stalagmite and stalactite.

height_deviation
int 1..64
speleothem_block_layer_thickness
IntProvider of int 0..128
density
FloatProvider of number 0..2
wetness
FloatProvider of number 0..2
chance_of_speleothem_at_max_distance_from_center
number 0..1
max_distance_from_edge_affecting_chance_of_speleothem
int 1..64
max_distance_from_center_affecting_height_bias
int 1..64

Spike

Spike
Spike(state, can_place_on, can_replace)
state
BlockState
can_place_on
BlockPredicate
can_replace
BlockPredicate

SpringFeature

SpringFeature
SpringFeature(state, valid_blocks, rock_count?, hole_count?, requires_block_below?)
state
FluidState
valid_blocks
block id | #block tag | list of block ids
rock_countoptional
int

Defaults to 4.

hole_countoptional
int

Defaults to 1.

requires_block_belowoptional
bool

Defaults to true.

SteppedColumnCluster

SteppedColumnCluster
SteppedColumnCluster(block, can_replace, continue_through, cannot_place_on, column_reach, column_count, height, cluster_reach)
block
BlockStateProviderRef
can_replace
BlockPredicate
continue_through
BlockPredicate
cannot_place_on
block id | #block tag | list of block ids
column_reach
IntProvider of int 0..3
column_count
IntProvider of int 1..150
height
IntProvider of int 1..10
cluster_reach
IntProvider of int 0..13

The effective reach is limited by height.

Template

Template
Template(templates, processors?)
templates
WeightedList of TemplateEntry
processorsoptional
ProcessorListRef

Tree

Tree
Tree(minimum_size, below_trunk_provider, trunk_provider, foliage_provider, trunk_placer, foliage_placer, decorators, ignore_vines?, root_placer?)
minimum_size
FeatureSize
below_trunk_provider
BlockStateProviderRef
trunk_provider
BlockStateProviderRef
foliage_provider
BlockStateProviderRef
trunk_placer
TrunkPlacer
foliage_placer
FoliagePlacer
decorators
list of TreeDecorator
ignore_vinesoptional
bool
root_placeroptional
RootPlacer

UnderwaterMagma

UnderwaterMagma
UnderwaterMagma(floor_search_range, placement_radius_around_floor, placement_probability_per_valid_position)
floor_search_range
int 0..512
placement_radius_around_floor
int 0..64
placement_probability_per_valid_position
number 0..1

VegetationPatch

VegetationPatch
VegetationPatch(surface, depth, vertical_range, extra_bottom_block_chance, extra_edge_column_chance, vegetation_chance, xz_radius, replaceable, ground_state, vegetation_feature)
surface
CaveSurface
depth
IntProvider of int 1..128
vertical_range
int 1..256
extra_bottom_block_chance
number 0..1
extra_edge_column_chance
number 0..1
vegetation_chance
number 0..1
xz_radius
IntProvider of int
replaceable
block id | #block tag | list of block ids
ground_state
BlockStateProviderRef
vegetation_feature
FeatureRef

Vines

Vines
Vines()

VoidStartPlatform

VoidStartPlatform
VoidStartPlatform()

WaterloggedVegetationPatch

WaterloggedVegetationPatch
WaterloggedVegetationPatch(surface, depth, vertical_range, extra_bottom_block_chance, extra_edge_column_chance, vegetation_chance, xz_radius, replaceable, ground_state, vegetation_feature)
surface
CaveSurface
depth
IntProvider of int 1..128
vertical_range
int 1..256
extra_bottom_block_chance
number 0..1
extra_edge_column_chance
number 0..1
vegetation_chance
number 0..1
xz_radius
IntProvider of int
replaceable
block id | #block tag | list of block ids
ground_state
BlockStateProviderRef
vegetation_feature
FeatureRef

WeightedRandomSelector

WeightedRandomSelector
WeightedRandomSelector(features)
features
WeightedList of PlacedFeatureRef