Features¶
文档版本:1.21.50.25
Features are decorations scattered throughout the world. Things such as trees, plants, flowers, springs, ore, and coral are all features. Basically, if it isn't the terrain or a mob, it's probably a feature!
架构¶
features:
{
format_version "format_version"
aggregate_feature "minecraft:aggregate_feature"
cave_carver_feature "minecraft:cave_carver_feature"
fossil_feature "minecraft:fossil_feature"
geode_feature "minecraft:geode_feature"
growing_plant_feature "minecraft:growing_plant_feature"
multiface_feature "minecraft:multiface_feature"
nether_cave_carver_feature "minecraft:nether_cave_carver_feature"
ore_feature "minecraft:ore_feature"
partially_exposed_blob_feature "minecraft:partially_exposed_blob_feature"
scatter_feature "minecraft:scatter_feature"
search_feature "minecraft:search_feature"
sequence_feature "minecraft:sequence_feature"
single_block_feature "minecraft:single_block_feature"
snap_to_surface_feature "minecraft:snap_to_surface_feature"
structure_template_feature "minecraft:structure_template_feature"
surface_relative_threshold_feature "minecraft:surface_relative_threshold_feature"
tree_feature "minecraft:tree_feature"
underwater_cave_carver_feature "minecraft:underwater_cave_carver_feature"
vegetation_patch_feature "minecraft:vegetation_patch_feature"
weighted_random_feature "minecraft:weighted_random_feature"
}
format_version
:format_version
minecraft:aggregate_feature
:aggregate_feature
aggregate_feature:
{
description "description"
array "features" : opt
{
string "<any array element>" : opt
}
string "early_out" : opt
}
description
:description
identifier
:identifier- The name of this feature in the form
namespace_name:feature_name
.feature_name
must match the filename.
features
:array- Collection of features to be placed one by one. No guarantee of order. All features use the same input position.
features
<any array element>
:string- Feature identifer
early_out
:string- Do not continue placing features once either the first success or first failure has occurred.
minecraft:cave_carver_feature
:cave_carver_feature
cave_carver_feature:
{
description "description"
identifier "fill_with"
0 "width_modifier"
integer "skip_carve_chance" : opt
integer "height_limit" : opt
array "y_scale" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "horizontal_radius_multiplier" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "vertical_radius_multiplier" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "floor_level" : opt
{
number "0..0" : opt
number "1..1" : opt
}
}
description
:description
fill_with
:identifier- Reference to the block to fill the cave with.
width_modifier
:0- How many blocks to increase the cave radius by, from the center point of the cave.
skip_carve_chance
:integer- The chance to skip doing the carve (1 / value).
height_limit
:integer- The height limit where we attempt to carve
y_scale
:array- The scaling in y
y_scale
0..0
:number
1..1
:number
horizontal_radius_multiplier
:array
horizontal_radius_multiplier
0..0
:number
1..1
:number
vertical_radius_multiplier
:array
vertical_radius_multiplier
0..0
:number
1..1
:number
floor_level
:array
floor_level
0..0
:number
1..1
:number
minecraft:fossil_feature
:fossil_feature
fossil_feature:
{
description "description"
identifier "ore_block"
integer "max_empty_corners" : opt
}
description
:description
ore_block
:identifier- Reference to the block to fill the cave with.
max_empty_corners
:integer- UNDOCUMENTED
minecraft:geode_feature
:geode_feature
geode_feature:
{
description "description"
identifier "filler"
identifier "inner_layer"
identifier "alternate_inner_layer"
identifier "middle_layer"
identifier "outer_layer"
array "inner_placements" : opt
{
identifier "<any array element>"
}
integer "min_outer_wall_distance" : opt
integer "max_outer_wall_distance" : opt
integer "min_distribution_points" : opt
integer "max_distribution_points" : opt
integer "min_point_offset" : opt
integer "max_point_offset" : opt
integer "max_radius" : opt
integer "crack_point_offset" : opt
number "generate_crack_chance" : opt
number "base_crack_size" : opt
number "noise_multiplier" : opt
number "use_potential_placements_chance" : opt
number "use_alternate_layer0_chance" : opt
boolean "placements_require_layer0_alternate" : opt
integer "invalid_blocks_threshold" : opt
}
description
:description
filler
:identifier- The block to fill the inside of the geode.
inner_layer
:identifier- The block that forms the inside layer of the geode shell.
alternate_inner_layer
:identifier- The block that has a chance of generating instead of inner_layer.
middle_layer
:identifier- The block that forms the middle layer of the geode shell.
outer_layer
:identifier- The block that forms the outer shell of the geode.
inner_placements
:array- A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.
inner_placements
<any array element>
:identifier- A block that may be replaced during placement.
min_outer_wall_distance
:integer- The minimum distance each distribution point must be from the outer wall. [0,10]
max_outer_wall_distance
:integer- The maximum distance each distribution point can be from the outer wall. [0,20]
min_distribution_points
:integer- The minimum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,10]
max_distribution_points
:integer- The maximum number of points inside the distance field that can get generated. The distance field is the area consisting of all points with a minimum distance to all destribution points. [0,20]
min_point_offset
:integer- The lowest possible value of random offset applied to the position of each distribution point. [0,10]
max_point_offset
:integer- The highest possible value of random offset applied to the position of each distribution point. [0,10]
max_radius
:integer- The maximum possible radius of the geode generated.
crack_point_offset
:integer- An offset applied to each distribution point that forms the geode crack opening. [0,10]
generate_crack_chance
:number- The likelihood of a geode generating with a crack in its shell. [0,1]
base_crack_size
:number- How large the crack opening of the geode should be when generated. [0,5]
noise_multiplier
:number- A multiplier applied to the noise that is applied to the distribution points within the geode. Higher = more noisy.
use_potential_placements_chance
:number- The likelihood that a special block will be placed on the inside of the geode. [0,1]
use_alternate_layer0_chance
:number- The likelihood that a block in the innermost layer of the geode will be replaced with an alternate option. [0,1]
placements_require_layer0_alternate
:boolean- If true, the potential placement block will only be placed on the alternate layer0 blocks that get placed. Potential placement blocks are blocks that depend on the existance of another block to be placed. The latter are the layer0 alternate blocks.
invalid_blocks_threshold
:integer- The threshold of invalid blocks for a geode to have a distribution point in before it aborts generation entirely.
minecraft:growing_plant_feature
:growing_plant_feature
growing_plant_feature:
{
description "description"
integer "age" : opt
object "age" : opt
{
integer "range_max" : opt
integer "range_min" : opt
}
array "height_distribution" : opt
{
array "<any array element>" : opt
{
"0..0" : opt
number "1..1" : opt
}
}
string "growth_direction" : opt
array "body_blocks" : opt
{
array "<any array element>" : opt
{
identifier "0..0"
range_number_type "1..1"
}
}
array "head_blocks" : opt
boolean "allow_water" : opt
}
description
:description
age
:integer- Age of the head of the plant.
age
:object- A range.
age
range_max
:integer- The maximum plant height.
range_min
:integer- The minimum plant height.
height_distribution
:array- Collection of weighted heights that placement will select from.
height_distribution
<any array element>
:array- Collection of weighted heights that placement will select from.
<any array element>
0..0
- Plant height.
1..1
:number- Weight used in random selection. Value is relative to other weights in the collection.
growth_direction
:string- Direction that the plant grows towards. Valid values: UP and DOWN
body_blocks
:array- Collection of weighted block descriptor that placement will select from for the body of the plant.
body_blocks
<any array element>
:array- Collection of weighted block descriptor that placement will select from for the plant.
<any array element>
0..0
:identifier- Plant body block.
1..1
:range_number_type
0..0
:number- The first value of the range.
1..1
:number- The second value of the range.
range_min
:number- The minimum value of the range.
range_max
:number- The maximum value of the range.
head_blocks
:array- Collection of weighted block descriptor that placement will select from for the body of the plant.
head_blocks
allow_water
:boolean- Plant blocks can be placed in water.
minecraft:multiface_feature
:multiface_feature
multiface_feature:
{
description "description"
identifier "places_block"
integer "search_range" : opt
boolean "can_place_on_floor" : opt
boolean "can_place_on_ceiling" : opt
boolean "can_place_on_wall" : opt
number "chance_of_spreading" : opt
array "can_place_on" : opt
{
identifier "<any array element>"
}
}
description
:description
places_block
:identifier- Reference to the block to be placed.
search_range
:integer- How far, in blocks, this feature can search for a valid position to place.
can_place_on_floor
:boolean- Can this feature be placed on the ground (top face of a block)?.
can_place_on_ceiling
:boolean- Can this feature be placed on the ceiling (bottom face of a block)?.
can_place_on_wall
:boolean- Can this feature be placed on the wall (side faces of a block)?.
chance_of_spreading
:number- For each block placed by this feature, how likely will that block spread to another?.
can_place_on
:array- How far, in blocks, this feature can search for a valid position to place.
can_place_on
<any array element>
:identifier- A list of blocks that the block in this feature can be placed on. Omit this field to allow any block to be placed on.
minecraft:nether_cave_carver_feature
:nether_cave_carver_feature
nether_cave_carver_feature:
{
description "description"
identifier "fill_with"
0 "width_modifier"
integer "skip_carve_chance" : opt
integer "height_limit" : opt
array "y_scale" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "horizontal_radius_multiplier" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "vertical_radius_multiplier" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "floor_level" : opt
{
number "0..0" : opt
number "1..1" : opt
}
}
description
:description
fill_with
:identifier- Reference to the block to fill the cave with.
width_modifier
:0- How many blocks to increase the cave radius by, from the center point of the cave.
skip_carve_chance
:integer- The chance to skip doing the carve (1 / value).
height_limit
:integer- The height limit where we attempt to carve
y_scale
:array- The scaling in y
y_scale
0..0
:number
1..1
:number
horizontal_radius_multiplier
:array
horizontal_radius_multiplier
0..0
:number
1..1
:number
vertical_radius_multiplier
:array
vertical_radius_multiplier
0..0
:number
1..1
:number
floor_level
:array
floor_level
0..0
:number
1..1
:number
minecraft:ore_feature
:ore_feature
ore_feature:
{
description "description"
number "count" : opt
array "replace_rules" : opt
{
object "<any array element>" : opt
{
identifier "places_block"
array "may_replace" : opt
{
identifier "<any array element>"
}
}
}
number "discard_chance_on_air_exposure" : opt
}
description
:description
count
:number- The number of blocks to be placed.
replace_rules
:array- Collection of replace rules that will be checked in order of definition. If a rule is resolved, the rest will not be resolved for that block position.
replace_rules
<any array element>
:object- If a rule is resolved, the rest will not be resolved for that block position.
<any array element>
places_block
:identifier- Reference to the block to be placed.
may_replace
:array- A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.
may_replace
<any array element>
:identifier
discard_chance_on_air_exposure
:number- Chance of discarding placement if neighboring block is Air.
minecraft:partially_exposed_blob_feature
:partially_exposed_blob_feature
partially_exposed_blob_feature:
{
description "description"
identifier "places_block"
number "placement_radius_around_floor" : opt
number "placement_probability_per_valid_position" : opt
string "exposed_face" : opt
}
description
:description
places_block
:identifier- Reference to the block to be placed.
placement_radius_around_floor
:number- Defines the cubic radius of the blob.
placement_probability_per_valid_position
:number- The probability of trying to place a block at each position within the placement bounds.
exposed_face
:string- Defines a block face that is allowed to be exposed to air and/or water. Other faces need to be embedded for blocks to be placed by this feature. Defaults to upwards face
minecraft:scatter_feature
:scatter_feature
scatter_feature:
{
description "description"
identifier "places_feature"
boolean "project_input_to_floor" : opt
object "distribution" : opt
{
string "coordinate_eval_order" : opt
0 "iterations"
0 "scatter_chance"
object "scatter_chance" : opt
{
number "numerator" : opt
number "denominator" : opt
}
0 "x"
object "x" : opt
{
string "distribution" : opt
integer "step_size" : opt
integer "grid_offset" : opt
array "extent" : opt
{
0 "0..0"
0 "1..1"
}
}
"z" : opt
"y" : opt
}
}
description
:description
places_feature
:identifier- Named reference of feature to be placed.
project_input_to_floor
:boolean- If true, snaps the y-value of the scattered position to the terrain heightmap. If false or unset, y-value is unmodified.
distribution
:object- Parameters controlling the initial scatter of the feature.
distribution
coordinate_eval_order
:string- The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to
xzy
.
iterations
:0- Number of scattered positions to generate.
scatter_chance
:0- Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.
scatter_chance
:object- Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.
scatter_chance
numerator
:number- UNDOCUMENTED.
denominator
:number- UNDOCUMENTED.
x
:0- Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below.
x
:object- Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.
x
distribution
:string- Type of distribution - uniform random, gaussian (centered in the range), triangle (centered in the range), or grid (either fixed-step or jittered).
step_size
:integer- When the distribution type is grid, defines the distance between steps along this axis.
grid_offset
:integer- When the distribution type is grid, defines the offset along this axis.
extent
:array- The lower and upper bound as an offset from the input position
extent
z
y
minecraft:search_feature
:search_feature
search_feature:
{
description "description"
identifier "places_feature"
object "search_volume" : opt
{
array "max" : opt
{
integer "0..0" : opt
integer "1..1" : opt
integer "2..2" : opt
}
array "min" : opt
{
integer "0..0" : opt
integer "1..1" : opt
integer "2..2" : opt
}
}
string "search_axis" : opt
integer "required_successes" : opt
}
description
:description
places_feature
:identifier- Named reference of feature to be placed.
search_volume
:object- Axis-aligned bounding box that will be searched for valid placement positions. Expressed as offsets from the input position.
search_volume
max
:array- Maximum extent of the bounding volume expressed as [ x, y, z ].
max
0..0
:integer
1..1
:integer
2..2
:integer
min
:array- Maxium extent of the bounding volume expressed as [ x, y, z ].
min
0..0
:integer
1..1
:integer
2..2
:integer
search_axis
:string- Axis that the search will sweep along through the
search_volume
.
required_successes
:integer- Number of valid positions the search must find in order to place the referenced feature.
minecraft:sequence_feature
:sequence_feature
sequence_feature:
{
description "description"
array "features" : opt
{
identifier "<any array element>"
}
}
description
:description
features
:array- List of features to be placed in sequence. The output position of the previous feature is used as the input position to the next.
features
<any array element>
:identifier- A feature to be placed in sequence. The output position of the previous feature is used as the input position to the next.
minecraft:single_block_feature
:single_block_feature
single_block_feature:
{
description "description"
identifier "places_block"
array "places_block" : opt
{
array "<any array element>" : opt
{
identifier "0..0"
number "1..1" : opt
}
}
boolean "enforce_placement_rules" : opt
boolean "enforce_survivability_rules" : opt
boolean "randomize_rotation" : opt
object "may_attach_to" : opt
{
"min_sides_must_attach" : opt
boolean "auto_rotate" : opt
identifier "top"
array "top" : opt
{
identifier "<any array element>"
}
"bottom" : opt
"north" : opt
"south" : opt
"east" : opt
"west" : opt
"all" : opt
"sides" : opt
"diagonal" : opt
}
object "may_not_attach_to" : opt
{
"top" : opt
"bottom" : opt
"north" : opt
"south" : opt
"east" : opt
"west" : opt
"all" : opt
"sides" : opt
"diagonal" : opt
}
array "may_replace" : opt
{
identifier "<any array element>"
}
}
description
:description
places_block
:identifier- Reference to the block to be placed.
places_block
:array- Collection of weighted block references that will be placed.
places_block
<any array element>
:array- Reference to the block to be placed.
<any array element>
0..0
:identifier- Reference to the block to be placed.
1..1
:number- Random weight of this block. A higher number will increase the probability of this block to be picked during placement.
enforce_placement_rules
:boolean- If true, enforce the block's canPlace check.
enforce_survivability_rules
:boolean- If true, enforce the block's canSurvive check.
randomize_rotation
:boolean- If true, randomizes the block's cardinal orientation.
may_attach_to
:object- The list of valid block and block faces the given block may attach to when being placed.
may_attach_to
min_sides_must_attach
- Minimum number of sides that must be attached when being placed.
auto_rotate
:boolean- Automatically rotate the block to attach sensibly.
top
:identifier- Reference to the block it may attach to.
top
:array- UNDOCUMENTED.
top
<any array element>
:identifier- Reference to the block it may attach to.
bottom
- UNDOCUMENTED.
north
- UNDOCUMENTED.
south
- UNDOCUMENTED.
east
- UNDOCUMENTED.
west
- UNDOCUMENTED.
all
- UNDOCUMENTED.
sides
- UNDOCUMENTED.
diagonal
- UNDOCUMENTED.
may_not_attach_to
:object- Denylist which specifies where the block can't be placed.
may_not_attach_to
top
- UNDOCUMENTED.
bottom
- UNDOCUMENTED.
north
- UNDOCUMENTED.
south
- UNDOCUMENTED.
east
- UNDOCUMENTED.
west
- UNDOCUMENTED.
all
- UNDOCUMENTED.
sides
- UNDOCUMENTED.
diagonal
- UNDOCUMENTED.
may_replace
:array- A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced.
may_replace
<any array element>
:identifier- A block that may be replaced during placement. Omit this field to allow any block to be replaced.
minecraft:snap_to_surface_feature
:snap_to_surface_feature
snap_to_surface_feature:
{
description "description"
identifier "feature_to_snap"
number "vertical_search_range" : opt
string "surface" : opt
boolean "allow_air_placement" : opt
boolean "allow_underwater_placement" : opt
}
description
:description
feature_to_snap
:identifier- Named reference of feature to be snapped.
vertical_search_range
:number- Range to search for a floor or ceiling for snaping the feature.
surface
:string- Defines the surface that the y-value of the placement position will be snapped to. Valid values:
ceiling
and `floor'
allow_air_placement
:boolean- Determines whether the feature can snap through air blocks
allow_underwater_placement
:boolean- Determines whether the feature can snap through water blocks
minecraft:structure_template_feature
:structure_template_feature
structure_template_feature:
{
description "description"
string "structure_name" : opt
integer "adjustment_radius" : opt
string "facing_direction" : opt
object "constraints" : opt
{
object "grounded" : opt
{
}
object "unburied" : opt
{
}
object "block_intersection" : opt
{
array "block_allowlist" : opt
{
identifier "<any array element>"
}
array "block_whitelist" : opt
{
identifier "<any array element>"
}
}
}
}
description
:description
structure_name
:string- Reference to the structure to be placed.
adjustment_radius
:integer- How far the structure is allowed to move when searching for a valid placement position. Search is radial, stopping when the nearest valid position is found. Defaults to 0 if omitted.
facing_direction
:string- Direction the structure will face when placed in the world. Defaults to
random
if omitted.
constraints
:object- Specific constraints that must be satisfied when placing this structure.
constraints
grounded
:object- When specified, ensures the structure is on the ground.
grounded
unburied
:object- When specified, ensures the structure has air above it.
unburied
block_intersection
:object- When specified, ensures the structure has air above it.
block_intersection
block_allowlist
:array- List of blocks the owning structure is allowed to intersect with.
block_allowlist
<any array element>
:identifier
block_whitelist
:array- List of blocks the owning structure is allowed to intersect with.
block_whitelist
<any array element>
:identifier
minecraft:surface_relative_threshold_feature
:surface_relative_threshold_feature
surface_relative_threshold_feature:
{
description "description"
identifier "feature_to_place"
integer "minimum_distance_below_surface" : opt
}
description
:description
feature_to_place
:identifier- Named reference of feature to be placed.
minimum_distance_below_surface
:integer- The minimum number of blocks required to be between the estimated surface level and a valid place for this feature.
minecraft:tree_feature
:tree_feature
tree_feature:
{
description "description"
identifier "base_block"
array "base_block" : opt
{
identifier "<any array element>"
}
object "base_cluster" : opt
{
array "may_replace" : opt
{
identifier "<any array element>"
}
integer "num_clusters" : opt
integer "cluster_radius" : opt
}
array "may_grow_on" : opt
{
identifier "<any array element>"
}
array "may_replace" : opt
{
identifier "<any array element>"
}
array "may_grow_through" : opt
{
identifier "<any array element>"
}
object "acacia_trunk" : opt
{
integer "trunk_width" : opt
object "trunk_height" : opt
{
integer "base" : opt
array "intervals" : opt
{
integer "<any array element>" : opt
}
integer "min_height_for_canopy" : opt
}
object "trunk_lean" : opt
{
boolean "allow_diagonal_growth" : opt
range_number_type "lean_height"
range_number_type "lean_steps"
range_number_type "lean_length"
}
string "trunk_block" : opt
object "branches" : opt
{
range_number_type "branch_length"
range_number_type "branch_position"
chance_information "branch_chance"
object "branch_canopy" : opt
{
object "acacia_canopy" : opt
{
integer "canopy_size" : opt
string "leaf_block" : opt
boolean "simplify_canopy" : opt
}
object "canopy" : opt
{
object "canopy_offset" : opt
{
integer "min" : opt
integer "max" : opt
}
integer "min_width" : opt
object "canopy_slope" : opt
{
integer "rise" : opt
integer "run" : opt
}
chance_information "variation_chance"
array "variation_chance" : opt
{
chance_information "<any array element>"
}
string "leaf_block" : opt
object "canopy_decoration" : opt
{
chance_information "decoration_chance"
identifier "decoration_block"
integer "num_steps" : opt
string "step_direction" : opt
}
}
object "cherry_canopy" : opt
{
string "leaf_block" : opt
integer "height" : opt
integer "radius" : opt
integer "trunk_width" : opt
chance_information "wide_bottom_layer_hole_chance"
chance_information "corner_hole_chance"
chance_information "hanging_leaves_chance"
chance_information "hanging_leaves_extension_chance"
}
object "fancy_canopy" : opt
{
integer "height" : opt
integer "radius" : opt
string "leaf_block" : opt
}
object "mangrove_canopy" : opt
{
integer "canopy_height" : opt
integer "canopy_radius" : opt
integer "leaf_placement_attempts" : opt
array "leaf_blocks" : opt
{
string "0..0" : opt
number "1..1" : opt
}
object "canopy_decoration" : opt
{
chance_information "decoration_chance"
identifier "decoration_block"
integer "num_steps" : opt
string "step_direction" : opt
}
identifier "hanging_block"
chance_information "hanging_block_placement_chance"
}
object "mega_canopy" : opt
{
integer "canopy_height" : opt
integer "base_radius" : opt
number "core_width" : opt
boolean "simplify_canopy" : opt
string "leaf_block" : opt
}
object "mega_pine_canopy" : opt
{
integer "canopy_height" : opt
integer "base_radius" : opt
number "radius_step_modifier" : opt
number "core_width" : opt
string "leaf_block" : opt
}
object "pine_canopy" : opt
{
integer "height" : opt
integer "radius" : opt
string "leaf_block" : opt
}
object "roofed_canopy" : opt
{
integer "canopy_height" : opt
integer "core_width" : opt
integer "outer_radius" : opt
integer "inner_radius" : opt
string "leaf_block" : opt
}
object "spruce_canopy" : opt
{
integer "lower_offset" : opt
integer "upper_offset" : opt
integer "max_radius" : opt
string "leaf_block" : opt
}
}
object "trunk_decoration" : opt
{
}
}
}
object "cherry_trunk" : opt
{
string "trunk_block" : opt
object "trunk_height" : opt
{
integer "base" : opt
array "intervals" : opt
{
integer "<any array element>" : opt
}
}
object "branches" : opt
{
object "tree_type_weights" : opt
{
integer "one_branch" : opt
integer "two_branches" : opt
integer "two_branches_and_trunk" : opt
}
range_number_type "branch_horizontal_length"
range_number_type "branch_start_offset_from_top"
range_number_type "branch_end_offset_from_top"
chance_information "branch_chance"
object "branch_canopy" : opt
{
}
}
}
object "fallen_trunk" : opt
{
integer "log_length" : opt
integer "stump_height" : opt
integer "height_modifier" : opt
string "trunk_block" : opt
identifier "log_decoration_feature"
object "trunk_decoration" : opt
{
}
}
object "fancy_trunk" : opt
{
object "trunk_height" : opt
{
integer "base" : opt
integer "variance" : opt
number "scale" : opt
}
integer "trunk_width" : opt
object "branches" : opt
{
number "slope" : opt
number "density" : opt
number "min_altitude_factor" : opt
}
string "trunk_block" : opt
number "width_scale" : opt
number "foliage_altitude_factor" : opt
}
object "mangrove_trunk" : opt
{
integer "trunk_width" : opt
object "trunk_height" : opt
{
integer "base" : opt
integer "height_rand_a" : opt
integer "height_rand_b" : opt
}
string "trunk_block" : opt
object "branches" : opt
{
range_number_type "branch_length"
range_number_type "branch_steps"
chance_information "branch_chance"
}
object "trunk_decoration" : opt
{
}
}
object "mega_trunk" : opt
{
integer "trunk_width" : opt
object "trunk_height" : opt
{
integer "base" : opt
array "intervals" : opt
{
integer "<any array element>" : opt
}
integer "min_height_for_canopy" : opt
}
string "trunk_block" : opt
object "trunk_decoration" : opt
{
}
object "branches" : opt
{
integer "branch_length" : opt
number "branch_slope" : opt
range_number_type "branch_interval"
object "branch_altitude_factor" : opt
{
number "min" : opt
number "max" : opt
}
object "branch_canopy" : opt
{
}
}
}
object "trunk" : opt
{
range_number_type "trunk_height"
range_number_type "height_modifier"
object "can_be_submerged" : opt
{
integer "max_depth" : opt
}
boolean "can_be_submerged" : opt
string "trunk_block" : opt
object "trunk_decoration" : opt
{
}
}
object "acacia_canopy" : opt
{
integer "canopy_size" : opt
string "leaf_block" : opt
boolean "simplify_canopy" : opt
}
object "canopy" : opt
{
object "canopy_offset" : opt
{
integer "min" : opt
integer "max" : opt
}
integer "min_width" : opt
object "canopy_slope" : opt
{
integer "rise" : opt
integer "run" : opt
}
chance_information "variation_chance"
array "variation_chance" : opt
{
chance_information "<any array element>"
}
string "leaf_block" : opt
object "canopy_decoration" : opt
{
chance_information "decoration_chance"
identifier "decoration_block"
integer "num_steps" : opt
string "step_direction" : opt
}
}
object "cherry_canopy" : opt
{
string "leaf_block" : opt
integer "height" : opt
integer "radius" : opt
integer "trunk_width" : opt
chance_information "wide_bottom_layer_hole_chance"
chance_information "corner_hole_chance"
chance_information "hanging_leaves_chance"
chance_information "hanging_leaves_extension_chance"
}
object "fancy_canopy" : opt
{
integer "height" : opt
integer "radius" : opt
string "leaf_block" : opt
}
object "mangrove_canopy" : opt
{
integer "canopy_height" : opt
integer "canopy_radius" : opt
integer "leaf_placement_attempts" : opt
array "leaf_blocks" : opt
{
string "0..0" : opt
number "1..1" : opt
}
object "canopy_decoration" : opt
{
}
identifier "hanging_block"
chance_information "hanging_block_placement_chance"
}
object "mega_canopy" : opt
{
integer "canopy_height" : opt
integer "base_radius" : opt
number "core_width" : opt
boolean "simplify_canopy" : opt
string "leaf_block" : opt
}
object "mega_pine_canopy" : opt
{
integer "canopy_height" : opt
integer "base_radius" : opt
number "radius_step_modifier" : opt
number "core_width" : opt
string "leaf_block" : opt
}
object "pine_canopy" : opt
{
integer "height" : opt
integer "radius" : opt
string "leaf_block" : opt
}
object "roofed_canopy" : opt
{
integer "canopy_height" : opt
integer "core_width" : opt
integer "outer_radius" : opt
integer "inner_radius" : opt
string "leaf_block" : opt
}
object "spruce_canopy" : opt
{
integer "lower_offset" : opt
integer "upper_offset" : opt
integer "max_radius" : opt
string "leaf_block" : opt
}
object "random_spread_canopy" : opt
{
integer "canopy_height" : opt
integer "canopy_radius" : opt
integer "leaf_placement_attempts" : opt
array "leaf_blocks" : opt
{
string "0..0" : opt
number "1..1" : opt
}
}
object "mangrove_roots" : opt
{
integer "max_root_width" : opt
integer "max_root_length" : opt
identifier "root_block"
object "above_root" : opt
{
chance_information "above_root_chance"
identifier "above_root_block"
identifier "muddy_root_block"
identifier "mud_block"
range_number_type "y_offset"
array "roots_may_grow_through" : opt
{
identifier "<any array element>"
}
object "root_decoration" : opt
{
}
}
}
}
description
:description
base_block
:identifier
base_block
:array
base_block
<any array element>
:identifier
base_cluster
:object- Allows you to define a number of clusters for the base of the tree. Used to generate mega tree variants.
base_cluster
may_replace
:array- List of blocks that the base cluster of a tree can replace.
may_replace
<any array element>
:identifier
num_clusters
:integer- Number of clusters that can be generated.
cluster_radius
:integer- Radius where the clusters that can be generated.
may_grow_on
:array- List of blocks where a tree can grow on.
may_grow_on
<any array element>
:identifier
may_replace
:array- List of blocks that a tree can replace.
may_replace
<any array element>
:identifier
may_grow_through
:array- List of blocks that a tree can grow through.
may_grow_through
<any array element>
:identifier
acacia_trunk
:object- Configutarion for the acacia trunk.
acacia_trunk
trunk_width
:integer- The width of the tree trunk.
trunk_height
:object- Configuration object for the trunk height.
trunk_height
base
:integer- Min height for the trunk.
intervals
:array- Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.
intervals
<any array element>
:integer
min_height_for_canopy
:integer- Min height where the canopy can be placed.
trunk_lean
:object- Configuration object for diagonal branches.
trunk_lean
allow_diagonal_growth
:boolean- If true, diagonal branches will be created.
lean_height
:range_number_type- Number of blocks below the tree height at which diagonal branches can be created.
lean_steps
:range_number_type- Number of steps taken in X/Z direction while creating a diagonal branch.
lean_length
:range_number_type- Length for the diagonal branch in the Y axis.
trunk_block
:string- The block that forms the tree trunk.
branches
:object- Configuration object for branches.
branches
branch_length
:range_number_type- Length for the branch in the Y axis.
branch_position
:range_number_type- Starting Y position for the branch.
branch_chance
:chance_information- Probability of creating a branch.
numerator
:number- UNDOCUMENTED.
denominator
:number- UNDOCUMENTED.
branch_canopy
:object- Configuration object for the canopy.
branch_canopy
acacia_canopy
:object- Configuration object for the acacia canopy.
acacia_canopy
canopy_size
:integer- The size of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
simplify_canopy
:boolean- If true the canopy uses a simple pattern.
canopy
:object- Configuration object for the normal canopy.
canopy
canopy_offset
:object- Canopy position offset relative to the block above the trunk.
canopy_offset
min
:integer- Min canopy position offset.
max
:integer- Max canopy position offset.
min_width
:integer- Min width for the canopy.
canopy_slope
:object- Configuration object for the canopy slope.
canopy_slope
rise
:integer- The numerator for the slope fraction.
run
:integer- The denominator for the slope fraction.
variation_chance
:chance_information- Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.
variation_chance
:array- Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.
variation_chance
<any array element>
:chance_information
leaf_block
:string- The block thata forms the canopy of the tree.
canopy_decoration
:object- Configuration object for the canopy decoration.
canopy_decoration
decoration_chance
:chance_information- Probability of decorating the trunk.
decoration_block
:identifier- The block used for decorating the trunk.
num_steps
:integer- Number of decoration blocks to place.
step_direction
:string- Directions to spread decoration blocks.
cherry_canopy
:object- Configuration object for the cherry canopy.
cherry_canopy
leaf_block
:string- The block thata forms the canopy of the tree.
height
:integer- Number of layers for the canopy.
radius
:integer- The radius of the canopy.
trunk_width
:integer- The width of the tree trunk.
wide_bottom_layer_hole_chance
:chance_information- Probability of the canopy having a hole in the bottom layer.
corner_hole_chance
:chance_information- Probability of the canopy having a hole in the corner.
hanging_leaves_chance
:chance_information- Probability of the canopy having hanging leaves
hanging_leaves_extension_chance
:chance_information- Probability of hanging leaves extending further down
fancy_canopy
:object- Configuration object for the fancy canopy.
fancy_canopy
height
:integer- Number of layers for the canopy.
radius
:integer- The radius of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
mangrove_canopy
:object- Configuration object for the mangrove canopy.
mangrove_canopy
canopy_height
:integer- Number of layers for the canopy.
canopy_radius
:integer- The radius of the canopy.
leaf_placement_attempts
:integer- Max number of attempts to create leaf blocks.
leaf_blocks
:array- The blocks that form the canopy of the tree
leaf_blocks
0..0
:string- The block thata forms the canopy of the tree.
1..1
:number- Weight used in random selection. Value is relative to other weights in the collection.
canopy_decoration
:object- Configuration object for the decoration.
canopy_decoration
decoration_chance
:chance_information- Probability of decorating the trunk.
decoration_block
:identifier- The block used for decorating the trunk.
num_steps
:integer- Number of decoration blocks to place.
step_direction
:string- Directions to spread decoration blocks.
hanging_block
:identifier- The block to be used as a hanging block.
hanging_block_placement_chance
:chance_information- Probability of creating a hanging leaf block.
mega_canopy
:object- Configuration object for the mega canopy.
mega_canopy
canopy_height
:integer- Number of layers for the canopy.
base_radius
:integer- The radius of the canopy.
core_width
:number- Width of the tree trunk.
simplify_canopy
:boolean- If true the canopy uses a simple pattern.
leaf_block
:string- The block thata forms the canopy of the tree.
mega_pine_canopy
:object- Configuration object for the mega pine canopy.
mega_pine_canopy
canopy_height
:integer- Number of layers for the canopy.
base_radius
:integer- The radius of the canopy.
radius_step_modifier
:number- Modifier for the base radius of the canopy.
core_width
:number- Width of the tree trunk.
leaf_block
:string- The block thata forms the canopy of the tree.
pine_canopy
:object- Configuration object for the pine canopy.
pine_canopy
height
:integer- Number of layers for the canopy.
radius
:integer- The radius of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
roofed_canopy
:object- Configuration object for the roofed canopy.
roofed_canopy
canopy_height
:integer- Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.
core_width
:integer- Width of the tree trunk.
outer_radius
:integer- Radius used for the base and top layers.
inner_radius
:integer- Radius used for the middle layers.
leaf_block
:string- The block thata forms the canopy of the tree.
spruce_canopy
:object- Configuration object for the spruce canopy.
spruce_canopy
lower_offset
:integer- Min canopy position offset.
upper_offset
:integer- Max canopy position offset.
max_radius
:integer- Max radius of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
trunk_decoration
:object- Configuration object for the decoration.
trunk_decoration
cherry_trunk
:object- Configutarion for the cherry trunk.
cherry_trunk
trunk_block
:string- The block that forms the tree trunk.
trunk_height
:object- Configuration object for the trunk height.
trunk_height
base
:integer- Min height for the trunk.
intervals
:array- Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.
intervals
<any array element>
:integer
branches
:object- Configuration object for branches.
branches
tree_type_weights
:object- Configuration object to pick a tree variant based on a weighted random number
tree_type_weights
one_branch
:integer- Tree variant with one branch.
two_branches
:integer- Tree variant with two branches.
two_branches_and_trunk
:integer- Tree variant with three branch.
branch_horizontal_length
:range_number_type- Branch length in X/Z axis.
branch_start_offset_from_top
:range_number_type- Branch starting position relative to the top of the tree
branch_end_offset_from_top
:range_number_type- Branch end position relative to the top of the tree
branch_chance
:chance_information- Probability of creating a branch.
branch_canopy
:object- Configuration object for the canopy.
branch_canopy
fallen_trunk
:object- Configutarion for the fallen trunk.
fallen_trunk
log_length
:integer- Length of the fallen log.
stump_height
:integer- height of the stump.
height_modifier
:integer- Modifier for the length of the fallen log.
trunk_block
:string- The block that forms the tree trunk.
log_decoration_feature
:identifier- Feature that can be used to decorate the fallen log.
trunk_decoration
:object- Configuration object for the decoration.
trunk_decoration
fancy_trunk
:object- Configutarion for the fancy trunk.
fancy_trunk
trunk_height
:object- Configuration object for the trunk height.
trunk_height
base
:integer- Min height for the trunk.
variance
:integer- Modifier for the trunk height.
scale
:number- Final tree height is multiplied by this scale.
trunk_width
:integer- The width of the tree trunk.
branches
:object- Configuration object for branches.
branches
slope
:number- Slope for the branch, where 0 is horizontal and 1 is vertical.
density
:number- Density of foliage.
min_altitude_factor
:number- Min height for branches. Represented by a percentage of the tree height.
trunk_block
:string- The block that forms the tree trunk.
width_scale
:number- Scale modifier for the tree radius.
foliage_altitude_factor
:number- Min height for foliage. Represented by a percentage of the tree height.
mangrove_trunk
:object- Configutarion for the mangrove trunk.
mangrove_trunk
trunk_width
:integer- The width of the tree trunk.
trunk_height
:object- Configuration object for the trunk height.
trunk_height
base
:integer- Min height for the trunk.
height_rand_a
:integer- Tree height modifier A.
height_rand_b
:integer- Tree height modifier B.
trunk_block
:string- The block that forms the tree trunk.
branches
:object- Configuration object for branches.
branches
branch_length
:range_number_type- Length for the branch in the Y axis.
branch_steps
:range_number_type- Number of branches to place.
branch_chance
:chance_information- Probability of creating a branch.
trunk_decoration
:object- Configuration object for the decoration.
trunk_decoration
mega_trunk
:object- Configutarion for the mega trunk.
mega_trunk
trunk_width
:integer- The width of the tree trunk.
trunk_height
:object- Configuration object for the trunk height.
trunk_height
base
:integer- Min height for the trunk.
intervals
:array- Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.
intervals
<any array element>
:integer
min_height_for_canopy
:integer- Min height where the canopy can be placed.
trunk_block
:string- The block that forms the tree trunk.
trunk_decoration
:object- Configuration object for the decoration.
trunk_decoration
branches
:object- Configuration object for branches.
branches
branch_length
:integer- Length for the branch.
branch_slope
:number- Slope for the branch, where 0 is horizontal and 1 is vertical.
branch_interval
:range_number_type- Randomized distance between branches.
branch_altitude_factor
:object- Altitude at which branches can spawn, relative to the tree height.
branch_altitude_factor
min
:number- Min altitude where branches can spawn.
max
:number- Max altitude where branches can spawn.
branch_canopy
:object- Configuration object for the canopy.
branch_canopy
trunk
:object- Configutarion for the normal trunk.
trunk
trunk_height
:range_number_type- Defines the height of the trunk.
height_modifier
:range_number_type- Modifier for the height of the trunk.
can_be_submerged
:object- Specifies if the trunk can be submerged.
can_be_submerged
max_depth
:integer- Defines the max depth at which the trunk can be submerged.
can_be_submerged
:boolean- Specifies if the trunk can be submerged.
trunk_block
:string- The block that forms the tree trunk.
trunk_decoration
:object- Configuration object for the decoration.
trunk_decoration
acacia_canopy
:object- Configuration object for the acacia canopy.
acacia_canopy
canopy_size
:integer- The size of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
simplify_canopy
:boolean- If true the canopy uses a simple pattern.
canopy
:object- Configuration object for the normal canopy.
canopy
canopy_offset
:object- Canopy position offset relative to the block above the trunk.
canopy_offset
min
:integer- Min canopy position offset.
max
:integer- Max canopy position offset.
min_width
:integer- Min width for the canopy.
canopy_slope
:object- Configuration object for the canopy slope.
canopy_slope
rise
:integer- The numerator for the slope fraction.
run
:integer- The denominator for the slope fraction.
variation_chance
:chance_information- Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.
variation_chance
:array- Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.
variation_chance
<any array element>
:chance_information
leaf_block
:string- The block thata forms the canopy of the tree.
canopy_decoration
:object- Configuration object for the canopy decoration.
canopy_decoration
decoration_chance
:chance_information- Probability of decorating the trunk.
decoration_block
:identifier- The block used for decorating the trunk.
num_steps
:integer- Number of decoration blocks to place.
step_direction
:string- Directions to spread decoration blocks.
cherry_canopy
:object- Configuration object for the cherry canopy.
cherry_canopy
leaf_block
:string- The block thata forms the canopy of the tree.
height
:integer- Number of layers for the canopy.
radius
:integer- The radius of the canopy.
trunk_width
:integer- The width of the tree trunk.
wide_bottom_layer_hole_chance
:chance_information- Probability of the canopy having a hole in the bottom layer.
corner_hole_chance
:chance_information- Probability of the canopy having a hole in the corner.
hanging_leaves_chance
:chance_information- Probability of the canopy having hanging leaves
hanging_leaves_extension_chance
:chance_information- Probability of hanging leaves extending further down
fancy_canopy
:object- Configuration object for the fancy canopy.
fancy_canopy
height
:integer- Number of layers for the canopy.
radius
:integer- The radius of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
mangrove_canopy
:object- Configuration object for the mangrove canopy.
mangrove_canopy
canopy_height
:integer- Number of layers for the canopy.
canopy_radius
:integer- The radius of the canopy.
leaf_placement_attempts
:integer- Max number of attempts to create leaf blocks.
leaf_blocks
:array- The blocks that form the canopy of the tree
leaf_blocks
0..0
:string- The block thata forms the canopy of the tree.
1..1
:number- Weight used in random selection. Value is relative to other weights in the collection.
canopy_decoration
:object- Configuration object for the decoration.
canopy_decoration
hanging_block
:identifier- The block to be used as a hanging block.
hanging_block_placement_chance
:chance_information- Probability of creating a hanging leaf block.
mega_canopy
:object- Configuration object for the mega canopy.
mega_canopy
canopy_height
:integer- Number of layers for the canopy.
base_radius
:integer- The radius of the canopy.
core_width
:number- Width of the tree trunk.
simplify_canopy
:boolean- If true the canopy uses a simple pattern.
leaf_block
:string- The block thata forms the canopy of the tree.
mega_pine_canopy
:object- Configuration object for the mega pine canopy.
mega_pine_canopy
canopy_height
:integer- Number of layers for the canopy.
base_radius
:integer- The radius of the canopy.
radius_step_modifier
:number- Modifier for the base radius of the canopy.
core_width
:number- Width of the tree trunk.
leaf_block
:string- The block thata forms the canopy of the tree.
pine_canopy
:object- Configuration object for the pine canopy.
pine_canopy
height
:integer- Number of layers for the canopy.
radius
:integer- The radius of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
roofed_canopy
:object- Configuration object for the roofed canopy.
roofed_canopy
canopy_height
:integer- Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.
core_width
:integer- Width of the tree trunk.
outer_radius
:integer- Radius used for the base and top layers.
inner_radius
:integer- Radius used for the middle layers.
leaf_block
:string- The block thata forms the canopy of the tree.
spruce_canopy
:object- Configuration object for the spruce canopy.
spruce_canopy
lower_offset
:integer- Min canopy position offset.
upper_offset
:integer- Max canopy position offset.
max_radius
:integer- Max radius of the canopy.
leaf_block
:string- The block thata forms the canopy of the tree.
random_spread_canopy
:object- Configuration object for the random spread canopy.
random_spread_canopy
canopy_height
:integer- Number of layers for the canopy.
canopy_radius
:integer- The radius of the canopy.
leaf_placement_attempts
:integer- Max number of attempts to create leaf blocks.
leaf_blocks
:array- The blocks that form the canopy of the tree
leaf_blocks
0..0
:string- The block thata forms the canopy of the tree.
1..1
:number- Weight used in random selection. Value is relative to other weights in the collection.
mangrove_roots
:object- Configuration for mangrove roots
mangrove_roots
max_root_width
:integer- Max width that the roots can occupy. The width increases up to the max width while moving downwards. When a max width is reached, roots will grow vertically
max_root_length
:integer- Max length that the roots can occupy.
root_block
:identifier- Block used for roots.
above_root
:object- Configuration object for blocks decorating the top of the roots
above_root
above_root_chance
:chance_information- Probability of creating a block above the root
above_root_block
:identifier- The block placed on the top of the roots.
muddy_root_block
:identifier- The block used for muddy roots.
mud_block
:identifier- The block used to determine if a muddy root should be placed.
y_offset
:range_number_type- Root offset from the trunk
roots_may_grow_through
:array- List of blocks that a root can grow through.
roots_may_grow_through
<any array element>
:identifier
root_decoration
:object- Configuration object for the decoration.
root_decoration
minecraft:underwater_cave_carver_feature
:underwater_cave_carver_feature
underwater_cave_carver_feature:
{
description "description"
identifier "fill_with"
0 "width_modifier"
integer "skip_carve_chance" : opt
integer "height_limit" : opt
array "y_scale" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "horizontal_radius_multiplier" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "vertical_radius_multiplier" : opt
{
number "0..0" : opt
number "1..1" : opt
}
array "floor_level" : opt
{
number "0..0" : opt
number "1..1" : opt
}
identifier "replace_air_with"
}
description
:description
fill_with
:identifier- Reference to the block to fill the cave with.
width_modifier
:0- How many blocks to increase the cave radius by, from the center point of the cave.
skip_carve_chance
:integer- The chance to skip doing the carve (1 / value).
height_limit
:integer- The height limit where we attempt to carve
y_scale
:array- The scaling in y
y_scale
0..0
:number
1..1
:number
horizontal_radius_multiplier
:array
horizontal_radius_multiplier
0..0
:number
1..1
:number
vertical_radius_multiplier
:array
vertical_radius_multiplier
0..0
:number
1..1
:number
floor_level
:array
floor_level
0..0
:number
1..1
:number
replace_air_with
:identifier- Reference to the block to replace air blocks with.
minecraft:vegetation_patch_feature
:vegetation_patch_feature
vegetation_patch_feature:
{
description "description"
array "replaceable_blocks" : opt
{
identifier "<any array element>"
}
identifier "ground_block"
identifier "vegetation_feature"
string "surface" : opt
integer "depth" : opt
number "extra_deep_block_chance" : opt
integer "vertical_range" : opt
number "vegetation_chance" : opt
integer "horizontal_radius" : opt
number "extra_edge_column_chance" : opt
boolean "waterlogged" : opt
}
description
:description
replaceable_blocks
:array- Blocks that can be replaced by the ground blocks on the patch.
replaceable_blocks
<any array element>
:identifier
ground_block
:identifier- Block used to create a base for the vegetation patch.
vegetation_feature
:identifier- Feature that will be placed by the patch.
surface
:string- Determines if a vegetation patch will grow from the ceiling or the floor.
depth
:integer- Depth of the base covered by the ground blocks.
extra_deep_block_chance
:number- Probability of putting the ground blocks one block deeper. Adds some randomness to the bottom of the patch.
vertical_range
:integer- Vertical range used to determine a suitable surface position for the patch.
vegetation_chance
:number- Probability of spawning vegetation on the patch. Larger numbers create a denser vegetation patch.
horizontal_radius
:integer- Horizontal area that the vegetation patch will cover.
extra_edge_column_chance
:number- Probability of spawning vegetation on the edge of the patch radius.
waterlogged
:boolean- If true, waterlogs the positions occupied by the ground blocks.
minecraft:weighted_random_feature
:weighted_random_feature
weighted_random_feature:
{
description "description"
array "features" : opt
{
array "<any array element>" : opt
{
identifier "0..0"
number "1..1" : opt
}
}
}
description
:description
features
:array- Collection of weighted features that placement will select from.
features
<any array element>
:array- Named reference to a feature.
<any array element>
0..0
:identifier- Named reference to a feature.
1..1
:number- Weight used in random selection. Value is relative to other weights in the collection.