Custom feature

Features are unique elements of the world like trees, flowers, ore, etc. Configured features are stored as JSON files within a data pack in the path. They are used in world generation as a part of placed features.

JSON format
When another configured feature is required inside the settings, it can either be provided with a string tag as the namespaced id of another configured feature, or with a compound tag as a nested definition.


 * The root tag.
 * : The feature type. Valid options are listed below.
 * Configuration properties of this feature type, specified below.
 * Configuration properties of this feature type, specified below.

minecraft:bamboo
Generates a single bamboo column with a height between 5 and 16 blocks. Has a chance to have a podzol disk generate beneath it, replacing blocks in the block tag  with podzol. The disk has a radius of 1 to 4 blocks.


 * : Value between 0.0 and 1.0. Probability that the podzol disk will generate.
 * : Value between 0.0 and 1.0. Probability that the podzol disk will generate.

An example

minecraft:basalt_columns

 * : Int provider between 0 and 3.
 * : Int provider between 1 and 10.
 * : Int provider between 1 and 10.
 * : Int provider between 1 and 10.

An example

minecraft:basalt_pillar
This feature has no config properties.

minecraft:block_column

 * : The direction of the column. One of,  ,  ,  ,  , or.
 * : A block predicate.
 * : Determines where to cut off blocks when space is restricted. If, will start removing layers from the start of the column.
 * : The layers.
 * : Int provider specifying the height of the layer.
 * : The block to use for this layer.
 * : Int provider specifying the height of the layer.
 * : The block to use for this layer.
 * : The block to use for this layer.
 * : The block to use for this layer.

An example

minecraft:block_pile

 * : The block to use.
 * : The block to use.

An example

minecraft:blue_ice
This feature has no config properties.

minecraft:bonus_chest
The bonus chest generated if the "Use Bonus Chest" option is enabled on world generation.

This feature has no config properties.

minecraft:chorus_plant
This feature has no config properties.

minecraft:coral_claw
This feature has no config properties.

minecraft:coral_mushroom
This feature has no config properties.

minecraft:coral_tree
This feature has no config properties.

minecraft:delta_feature

 * : The block to use on the inside of the delta.
 * : The block to use for the rim of the delta.
 * : Int provider between 0 and 16.
 * : Int provider between 0 and 16.
 * : Int provider between 0 and 16.
 * : Int provider between 0 and 16.
 * : Int provider between 0 and 16.
 * : Int provider between 0 and 16.

An example

minecraft:desert_well
This feature has no config properties.

minecraft:disk
Only if there is water at the current block, places blocks in a circular formation using the and twice the  blocks deep.


 * : The block to use.
 * : Int provider between 0 and 8.
 * : Value between 0 and 4.
 * : The blocks to replace.
 * A block state.
 * : Value between 0 and 4.
 * : The blocks to replace.
 * A block state.

An example

minecraft:dripstone_cluster

 * : Value between 1 and 512. For how many blocks the feature will search for the floor or ceiling.
 * : Int provider between 0 and 128.
 * : Int provider between 0 and 128.
 * : Value between 0 and 64.
 * : Value between 1 and 64.
 * : Int provider between 0 and 128.
 * : Float provider between 0 and 2.
 * : Float provider between 0 and 2.
 * : Value between 0 and 1.
 * : Value between 1 and 64.
 * : Value between 1 and 64.
 * : Float provider between 0 and 2.
 * : Value between 0 and 1.
 * : Value between 1 and 64.
 * : Value between 1 and 64.
 * : Value between 1 and 64.
 * : Value between 1 and 64.

An example

minecraft:end_gateway

 * : Whether the gateway should teleport entities in the exact exit position.
 * : (optional) The block position where the gateway should exit.
 * X coordinate.
 * Y coordinate.
 * Z coordinate.
 * Z coordinate.

An example

minecraft:end_island

 * This feature has no config properties.
 * This feature has no config properties.

minecraft:end_spike

 * : (optional) Defaults to false.
 * : (optional) Block position of the beam target.
 * : The X coordinate.
 * : The Y coordinate.
 * : The Z coordinate.
 * A spike configuration.
 * : (optional) The X coordinate.
 * : (optional) The Z coordinate.
 * : (optional) The radius of the spike.
 * : (optional) The height of the spike.
 * : (optional) Whether to generate a cage around the crystal.
 * : (optional) The height of the spike.
 * : (optional) Whether to generate a cage around the crystal.

An example

minecraft:fill_layer
Fills all air blocks in a 16x1x16 layer of blocks. Used by the game in flat worlds.


 * : The block to fill with.
 * : Value between 0 and 4064. The layer to fill, starting at the bottom of the world.
 * : Value between 0 and 4064. The layer to fill, starting at the bottom of the world.
 * : Value between 0 and 4064. The layer to fill, starting at the bottom of the world.

An example

minecraft:flower
Identical to the random_patch feature.

minecraft:forest_rock

 * : The block to use.
 * : The block to use.

An example

minecraft:fossil

 * : A fossil structure.
 * : An overlay structure.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.
 * : An overlay structure.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.
 * : How many corners of the structure are allowed to be empty for it to generate. Prevents structures floating in the air.

minecraft:freeze_top_layer
Places snow and replaces water with ice in biomes cold enough to support it. This feature should be added to all biomes so that snow will gradually fade out if a frozen biome spills into it due to biome blending.

This feature has no config properties.

minecraft:geode

 * : The block used for the filling.
 * : The block used for the inner layer.
 * : The block used for the alternate inner layer.
 * : The block used for the middle layer.
 * : The block used for the outer layer.
 * A block state.
 * : A block tag listing which blocks not to replace.
 * : A block tag listing invalid blocks. The feature placement fails entirely when an invalid block is found.
 * : (optional) Value between 0.01 and 50. Defaults to 1.7.
 * : (optional) Value between 0.01 and 50. Defaults to 2.2.
 * : (optional) Value between 0.01 and 50. Defaults to 3.2.
 * : (optional) Value between 0.01 and 50. Defaults to 4.2.
 * : (optional) Value between 0 and 1. Defaults to 1.
 * : (optional) Value between 0 and 5. Defaults to 2.
 * : (optional) Value between 0 and 10. Defaults to 2.
 * : (optional) Value between 0 and 1. Defaults to 0.05.
 * : (optional) Value between 0 and 1. Defaults to 0.35.
 * : (optional) Value between 0 and 1. Defaults to 0.35. The chance that the inner layer will use the alternate block provider.
 * : (optional) Defaults to true. Whether the inner placements are only allowed on the alternate inner blocks.
 * : (optional) Int provider between 1 and 20. Defaults to a uniform int between 4 and 5.
 * : (optional) Int provider between 1 and 20. Defaults to a uniform int between 3 and 4.
 * : (optional) Int provider between 1 and 10. Defaults to a uniform int between 1 and 2.
 * : (optional) Defaults to -16.
 * : (optional) Defaults to 16.
 * : (optional) Value between 0 and 5. Defaults to 2.
 * : (optional) Value between 0 and 10. Defaults to 2.
 * : (optional) Value between 0 and 1. Defaults to 0.05.
 * : (optional) Value between 0 and 1. Defaults to 0.35.
 * : (optional) Value between 0 and 1. Defaults to 0.35. The chance that the inner layer will use the alternate block provider.
 * : (optional) Defaults to true. Whether the inner placements are only allowed on the alternate inner blocks.
 * : (optional) Int provider between 1 and 20. Defaults to a uniform int between 4 and 5.
 * : (optional) Int provider between 1 and 20. Defaults to a uniform int between 3 and 4.
 * : (optional) Int provider between 1 and 10. Defaults to a uniform int between 1 and 2.
 * : (optional) Defaults to -16.
 * : (optional) Defaults to 16.
 * : (optional) Defaults to -16.
 * : (optional) Defaults to 16.
 * : (optional) Defaults to 16.

An example

minecraft:glow_lichen

 * glow_lichen
 * : (optional) Value between 1 and 64. Defaults to 10.
 * : (optional) Value between 0 and 1. Defaults to 0.5.
 * : (optional) Defaults to false.
 * : (optional) Defaults to false.
 * : (optional) Defaults to false.
 * A block ID.
 * A block ID.

An example

minecraft:glowstone_blob
Generates a glowstone blob if the block above is netherrack, basalt, or blackstone. Used in the Nether.

This feature has no config properties.

minecraft:huge_brown_mushroom

 * : The block to use for the cap.
 * : The block to use for the stem.
 * : (optional) The size of the cap. Defaults to 2.
 * : The block to use for the stem.
 * : (optional) The size of the cap. Defaults to 2.
 * : (optional) The size of the cap. Defaults to 2.

An example

minecraft:huge_fungus

 * : The block to use for the hat.
 * : The block to use as decoration.
 * : The block to use for the stem.
 * : The block to place on top of.
 * : (optional) Defaults to false.
 * : The block to use for the stem.
 * : The block to place on top of.
 * : (optional) Defaults to false.
 * : (optional) Defaults to false.
 * : (optional) Defaults to false.

An example

minecraft:huge_red_mushroom

 * Identical to the huge_brown_mushroom feature.
 * Identical to the huge_brown_mushroom feature.

minecraft:ice_patch

 * Identical to the disk feature
 * Identical to the disk feature

minecraft:ice_spike
Generates the ice spikes used in the ice spikes biome.


 * This feature has no config properties.
 * This feature has no config properties.

minecraft:iceberg

 * : The block to use.
 * : The block to use.

An example

minecraft:kelp
Generates kelp in bodies of water.

This feature has no config properties.

minecraft:lake

 * : The block to use for the fluid of the lake.
 * : The block to use for the barrier of the lake.
 * : The block to use for the barrier of the lake.
 * : The block to use for the barrier of the lake.

An example

minecraft:large_dripstone
<div class="treeview" id="large_dripstone" style="margin-top: 1em;">
 * : (optional) Value between 1 and 512. Defaults to 30.
 * : Int provider between 0 and 20.
 * : Float provider between 0 and 20.
 * : Value between 0 and 1.
 * : Float provider between 0.1 and 10.
 * : Float provider between 0.1 and 10.
 * : Float provider between 0 and 2.
 * : Value between 0 and 100.
 * : Value between 0 and 5.
 * : Float provider between 0.1 and 10.
 * : Float provider between 0 and 2.
 * : Value between 0 and 100.
 * : Value between 0 and 5.
 * : Value between 0 and 100.
 * : Value between 0 and 5.

An example

minecraft:monster_room
A dungeon.

This feature has no config properties.

minecraft:nether_forest_vegetation
<div class="treeview" id="nether_forest_vegetation" style="margin-top: 1em;">
 * : The block to use.
 * : Must be at least 1.
 * : Must be at least 1.
 * : Must be at least 1.
 * : Must be at least 1.

An example

minecraft:netherrack_replace_blobs
Replaces all target blocks in a certain radius with another block. If it doesn't find the target block at its position, it will move down before generating until it finds one.

<div class="treeview" id="netherrack_replace_blobs" style="margin-top: 1em;">
 * : The block to use.
 * : The block to replace.
 * : Int provider between 0 and 12.
 * : The block to replace.
 * : Int provider between 0 and 12.
 * : Int provider between 0 and 12.

An example

minecraft:no_bonemeal_flower
<div class="treeview" id="no_bonemeal_flower" style="margin-top: 1em;">
 * The config properties are identical to the random_patch feature.
 * The config properties are identical to the random_patch feature.

minecraft:no_op
Does nothing. Can be used to disable existing configured feature by overwriting them with this.

This feature has no config properties.

minecraft:ore

 * : Value between 0 and 64. Does not directly correspond with the amount of blocks placed.
 * : Value between 0 and 1. The chance for an ore block to be discarded when it is exposed to air. Setting this to 1 makes the ore completely hidden.
 * : A list of targets.
 * A target
 * : Rule test. The blocks to replace.
 * : The block to use.
 * : The block to use.
 * : The block to use.

An example

minecraft:pointed_dripstone
<div class="treeview" id="pointed_dripstone" style="margin-top: 1em;">
 * : (optional) Value between 0 and 1. Defaults to 0.2.
 * : (optional) Value between 0 and 1. Defaults to 0.7.
 * : (optional) Value between 0 and 1. Defaults to 0.5.
 * : (optional) Value between 0 and 1. Defaults to 0.5.
 * : (optional) Value between 0 and 1. Defaults to 0.5.

An example

minecraft:random_boolean_selector
Randomly chooses one of two features to generate, with each having an equal chance. <div class="treeview" id="random_boolean_selector" style="margin-top: 1em;">
 * : The placed feature 1.
 * : The placed feature 2.
 * : The placed feature 2.

An example

minecraft:random_patch
<div class="treeview" id="random_patch" style="margin-top: 1em;">
 * : (optional) Defaults to 128.
 * : (optional) Defaults to 7.
 * : (optional) Defaults to 3.
 * : The placed feature to use.
 * : The placed feature to use.

An example

minecraft:random_selector
Randomly chooses a feature from the provided list, with chances. <div class="treeview" id="random_selector" style="margin-top: 1em;">
 * A feature and its corresponding chance.
 * : The placed feature to use.
 * : The chance of this feature being chosen.
 * : The placed feature to use if none of the above features are chosen.
 * : The chance of this feature being chosen.
 * : The placed feature to use if none of the above features are chosen.

An example

minecraft:replace_single_block
Replaces a single block that matches a list of targets and states. <div class="treeview" id="replace_single_block" style="margin-top: 1em;">
 * : A list of targets.
 * A target
 * : Rule test. The blocks to replace.
 * : The block to use.
 * : The block to use.
 * : The block to use.

An example

minecraft:root_system
Generates a root column with a feature on top.

<div class="treeview" id="root_system" style="margin-top: 1em;">
 * : A value between 1 and 64.
 * : A value between 1 and 64.
 * : A value between 1 and 256.
 * : A value between 1 and 4096.
 * : A value between 1 and 64.
 * : A value between 1 and 16.
 * : A value between 1 and 256.
 * : A value between 1 and 64.
 * : A block tag specifying which blocks can be replaced by the root column.
 * : The block to use for the root column.
 * : The block to use hanging below the root column.
 * : The block predicate used to check if the tree position is valid.
 * : The placed feature to place on top of the root system.
 * : The block predicate used to check if the tree position is valid.
 * : The placed feature to place on top of the root system.
 * : The placed feature to place on top of the root system.

An example

minecraft:scattered_ore
<div class="treeview" id="scattered_ore" style="margin-top: 1em;">
 * The config properties are identical to the ore feature.
 * The config properties are identical to the ore feature.

minecraft:sea_pickle
<div class="treeview" id="sea_pickle" style="margin-top: 1em;">
 * : Int provider between 0 and 256.
 * : Int provider between 0 and 256.

An example

minecraft:seagrass

 * : Value between 0 and 1.
 * : Value between 0 and 1.

An example

minecraft:simple_block
<div class="treeview" id="simple_block" style="margin-top: 1em;">
 * : The block to use.
 * : The block to use.

An example

minecraft:simple_random_selector
Randomly chooses a feature from a list, with each having an equal chance. <div class="treeview" id="simple_random_selector" style="margin-top: 1em;">
 * : A list of features to choose from. Either all strings or all compounds.
 * : The feature to place.
 * : The feature to place.

An example

minecraft:spring_feature
<div class="treeview" id="spring_feature" style="margin-top: 1em;">
 * : Fluid state. The fluid to use.
 * : (optional) Defaults to 4.
 * : (optional) Defaults to 1.
 * : (optional) Whether the spring feature requires a block below the fluid. Defaults to true.
 * : A list of valid blocks to place the spring feature in.
 * The namespaced id of the block.
 * The namespaced id of the block.

An example

minecraft:tree

 * (optional) Defaults to false. Allows the tree to generate even if there are vines blocking it.
 * : (optional) Defaults to false. If true, will place the dirt provider even when the block below the tree is not a grass block or mycelium.
 * : Defines the width of the tree at different heights, for the minimum size of the feature.
 * : One of  or
 * : (optional) Value between 0 and 80. If the possible height at this location is lower than what the trunk placer requires, but greater or equal to this value, the tree will generate anyway.
 * If  is  :
 * : (optional) Value between 0 and 81. Defaults to 1. At heights lower than this value, the feature size will return the value of, otherwise.
 * : (optional) Value between 0 and 16. Defaults to 0. Minimum width of the tree at heights under.
 * : (optional) Value between 0 and 16. Defaults to 1. Minimum width of the tree at heights greater than or equals.
 * If  is  :
 * : (optional) Must be between 0 and 80. Defaults to 1. At heights lower than this value, the feature size will return the value of, otherwise   or.
 * : (optional) Must be between 0 and 80. Defaults to 1. At heights between this and, the feature size will return the value of  . If it is greater or equals, it will use.
 * : (optional) Must be between 0 and 16. Defaults to 0. Minimum width of the tree at the lowest layer.
 * : (optional) Must be between 0 and 16. Defaults to 1. Minimum width of the tree at the middle layer.
 * : (optional) Must be between 0 and 16. Defaults to 1. Minimum width of the tree at the upper layer.
 * : The block to place below the trunk. Only places if  is true, or if there is a grass block or mycelium below the trunk.
 * : The block to use for the trunk.
 * : The block to use for the foliage.
 * : One of,  ,  ,  ,  , or.
 * : Must be between 0 and 32.
 * : Must be between 0 and 24.
 * : Must be between 0 and 24.
 * If  is  :
 * : Int provider between 1 and 64.
 * : (optional) Value needs to be at least 1. Defaults to 1.
 * One of,  ,  ,  ,  ,  ,  ,  , or.
 * If  is ,  ,  , or  :
 * Affects the foliage height and size in block height. Value between 0 and 16.
 * (Presumably) a random offset from the trunk block on which this piece of foliage is centered.
 * If  is  :
 * Int provider between 0 and 24.
 * If  is  :
 * Int provider between 0 and 24.
 * If  is  :
 * Int provider between 0 and 24.
 * If  is  :
 * Int provider between 1 and 512.
 * Value between 0 and 256.
 * Decorations to add to the tree apart from the trunk and leaves.
 * A decorator.
 * The type of decoration to add. One of,  ,  ,  , or.
 * If  is   or  :
 * Value between 0 and 1.
 * If  is  :
 * The block to replace the ground with.
 * If  is  :
 * Int provider between 1 and 512.
 * Value between 0 and 256.
 * Decorations to add to the tree apart from the trunk and leaves.
 * A decorator.
 * The type of decoration to add. One of,  ,  ,  , or.
 * If  is   or  :
 * Value between 0 and 1.
 * If  is  :
 * The block to replace the ground with.
 * If  is  :
 * The block to replace the ground with.

An example

minecraft:twisting_vines
<div class="treeview" id="twisting_vines" style="margin-top: 1em;">
 * Must be at least 1.
 * Must be at least 1.
 * Must be at least 1.
 * Must be at least 1.

An example

minecraft:underwater_magma
<div class="treeview" id="underwater_magma" style="margin-top: 1em;">
 * Value between 0 and 512.
 * Value between 0 and 64.
 * Value between 0 and 1.
 * Value between 0 and 1.

An example

minecraft:vegetation_patch
<div class="treeview" id="vegetation_patch" style="margin-top: 1em;">
 * vegetation_patch
 * The surface to place on. One of, or
 * : Int provider between 1 and 128.
 * Value between 1 and 256.
 * Value between 0 and 1.
 * Value between 0 and 1.
 * Value between 0 and 1. The chance that a vegetation feature will be placed, is evaluated for each block.
 * Int provider. The radius of the patch.
 * A block tag specifying what blocks this feature can replace.
 * The block to use for the ground of the patch.
 * The placed feature to place on top of the patch.
 * The block to use for the ground of the patch.
 * The placed feature to place on top of the patch.
 * The placed feature to place on top of the patch.

minecraft:vines
This feature has no config properties.

minecraft:void_start_platform
A thin stone platform. Used for the Superflat preset "The Void".

This feature has no config properties.

minecraft:waterlogged_vegetation_patch
Identical to, but will attempt to waterlog blocks placed.

minecraft:weeping_vines
This feature has no config properties.