{ "format_version": "1.13.0", "minecraft:ore_feature": { "description": { "identifier": "minecraft:coal_ore_feature" }, "count": 17, "places_block": "minecraft:coal_ore", "may_replace": [ { "name": "minecraft:stone", "states": { "stone_type": "andesite" } }, { "name": "minecraft:stone", "states": { "stone_type": "andesite_smooth" } }, { "name": "minecraft:stone", "states": { "stone_type": "diorite" } }, { "name": "minecraft:stone", "states": { "stone_type": "diorite_smooth" } }, { "name": "minecraft:stone", "states": { "stone_type": "granite" } }, { "name": "minecraft:stone", "states": { "stone_type": "granite_smooth" } }, { "name": "minecraft:stone", "states": { "stone_type": "stone" } } ] } }
{ "format_version": 1.3.0, "minecraft:aggregate_feature": { "description": { "identifier": "example:monument_with_flowers_feature" }, "features": [ "monument_feature", "scatter_white_flowers_feature", "scatter_yellow_flower_feature" ] } }
{ "format_version": 1.3.0, "minecraft:sequence_feature": { "description": { "identifier": "example:oak_tree_then_apples_feature" }, "features": [ "oak_tree_feature", "scatter_apples_feature" ] } }
{ "format_version": 1.13.0, "minecraft:ore_feature": { "description": { "identifier": "example:oil_deposit_feature" }, "places_block": "example:oil_block", "count": 12, "may_replace": [ "minecraft:sand" ] } }
{ "format_version": 1.13.0, "minecraft:scatter_feature": { "description": { "identifier": "example:scatter_flowers_feature" }, "places_feature": "example:flower_feature", "iterations": 10, "scatter_chance": 50.0, "x": { "distribution": "uniform", "extent": [ 0, 15 ] }, "y": 64, "z": { "distribution": "uniform", "extent": [ 0, 15 ] } } }
{ "format_version": 1.13.0, "minecraft:search_feature": { "description": { "identifier": "example:find_valid_apples_feature" }, "places_feature": "example:apple_feature", "search_volume": { "min": [ -3, -3, -3 ], "max": [ 3, 3, 3 ] }, "search_axis": "-y", "required_successes": 3 }
{ "format_version": 1.13.0, "minecraft:single_block_feature": { "description": { "identifier": "example:single_pumpkin_feature" }, "places_block": "example:pumpkin", "enforce_placement_rules": true, "enforce_survivability_rules": true, "may_place_on": [ "example:grass" ], "may_replace": [ "example:air" ] } }
{ "format_version": 1.13.0, "minecraft:structure_template_feature": { "description": { "identifier": "example:hot_air_balloon_feature" }, "structure_name": "example:hot_air_balloon", "adjustment_radius": 8, "facing_direction": "random", "constraints": { "unburied": {}, "block_intersection": { "block_whitelist": [ "example:air" ] } } } }
{ "format_version": 1.13.0, "minecraft:weighted_random_feature": { "description": { "identifier": "example:select_flower_feature" }, "features": [ [ "example:white_flower_feature", 1 ], [ "example:red_flower_feature", 2 ], [ "example:blue_flower_feature", 1 ], [ "example:yellow_flower_feature", 4 ] ] } }
{ version "format_version" object "minecraft:aggregate_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } array "features"[1,*] // Collection of features to be placed one by one. No guarantee of order. All features use the same input position. { feature_reference "<any array element>" : opt } enumerated_value "early_out"<"none", "first_failure", "first_success"> : opt // LIKELY TO BE CHANGED: Do not continue placing features once either the first success or first failure has occurred. } object "minecraft:sequence_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } array "features"[1,*] // List of features to be placed in sequence. The output position of the previous feature is used as the input position to the next. { feature_reference "<any array element>" : opt } } object "minecraft:ore_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } block_reference "places_block" // Reference to the block to be placed. int "count"<1-*> // The number of blocks to be placed. array "may_replace"[1,*] : opt // A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced. { block_reference "<any array element>" : opt } } object "minecraft:scatter_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } feature_reference "places_feature" // Named reference of feature to be placed bool "project_input_to_floor" : opt // If true, snaps the y-value of the scattered position to the terrain heightmap. If false or unset, y-value is unmodified. molang "iterations" // Number of scattered positions to generate object "scatter_chance" : opt // Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will. { int "numerator"<1-*> int "denominator"<1-*> } molang "scatter_chance" : opt // Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will. enumerated_value "coordinate_eval_order"<"xyz", "xzy", "yxz", "yzx", "zxy", "zyx"> : opt // The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to "xzy". molang "x" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below. object "x" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above. { enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), or grid (either fixed-step or jittered) int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis array "extent"[2] { molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around } } molang "z" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below. object "z" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above. { enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), or grid (either fixed-step or jittered) int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis array "extent"[2] { molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around } } molang "y" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below. object "y" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above. { enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), or grid (either fixed-step or jittered) int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis array "extent"[2] { molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around } } } object "minecraft:search_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } feature_reference "places_feature" // Named reference of feature to be placed object "search_volume" // Axis-aligned bounding box that will be searched for valid placement positions. Expressed as offsets from the input position. { array "min"[3] // Minimum extent of the bounding volume expressed as [ x, y, z ] { int "[0..0]" // x_min int "[1..1]" // y_min int "[2..2]" // z_min } array "max"[3] // Maxium extent of the bounding volume expressed as [ x, y, z ] { int "[0..0]" // x_max int "[1..1]" // y_max int "[2..2]" // z_max } } enumerated_value "search_axis"<"-x", "+x", "-y", "+y", "-z", "+z"> // Axis that the search will sweep along through the 'search_volume' int "required_successes"<1-*> : opt // Number of valid positions the search must find in order to place the referenced feature } object "minecraft:single_block_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } block_reference "places_block" // Reference to the block to be placed. bool "enforce_placement_rules" // If true, enforce the block's canPlace check. bool "enforce_survivability_rules" // If true, enforce the block's canSurvive check. object "may_attach_to" : opt { int "min_sides_must_attach"<1-4> : opt bool "auto_rotate" : opt // Automatically rotate the block to attach sensibly. block_reference "top" : opt array "top" : opt { block_reference "<any array element>" } block_reference "bottom" : opt array "bottom" : opt { block_reference "<any array element>" } block_reference "north" : opt array "north" : opt { block_reference "<any array element>" } block_reference "east" : opt array "east" : opt { block_reference "<any array element>" } block_reference "south" : opt array "south" : opt { block_reference "<any array element>" } block_reference "west" : opt array "west" : opt { block_reference "<any array element>" } block_reference "all" : opt array "all" : opt { block_reference "<any array element>" } block_reference "sides" : opt array "sides" : opt { block_reference "<any array element>" } } array "may_replace" : opt { block_reference "<any array element>" : opt // A list of blocks that may be replaced during placement. Omit this field to allow any block to be replaced. } } object "minecraft:structure_template_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } structure_reference "structure_name" // Reference to the structure to be placed. int "adjustment_radius"<0-16> : opt // 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. enumerated_value "facing_direction"<"north", "south", "east", "west", "random"> : opt // Direction the structure will face when placed in the world. Defaults to "random" if omitted. object "constraints" // Specific constraints that must be satisfied when placing this structure. { object "grounded" : opt // When specified, ensures the structure is on the ground. object "unburied" : opt // When specified, ensures the structure has air above it. object "block_intersection" : opt // When specified, ensures the structure only intersects with whitelisted blocks. { array "block_whitelist" // List of blocks the owning structure is allowed to intersect with. { block_reference "<any array element>" : opt } } } } object "minecraft:tree_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } object "can_be_submerged" : opt { int "max_depth"<1-*> } bool "can_be_submerged" : opt block_reference "base_block" : opt array "base_block" : opt { block_reference "<any array element>" } object "base_cluster" : opt { array "may_replace" { block_reference "<any array element>" : opt } int "num_clusters"<1-*> int "cluster_radius"<0-*> } array "may_grow_on" : opt { block_reference "<any array element>" } array "may_grow_through" : opt { block_reference "<any array element>" } object "acacia_trunk" : opt { int "trunk_width" object "trunk_height" { int "base"<1-*> array "intervals" : opt { int "<any array element>"<1-*> : opt } } object "trunk_lean" { bool "allow_diagonal_growth" "lean_height" "lean_steps" } block_reference "trunk_block" object "branches" : opt { "branch_length" "branch_position" chance_information "branch_chance" object "branch_canopy" : opt { object "acacia_canopy" : opt { int "canopy_size"<1-*> block_reference "leaf_block" bool "simplify_canopy" : opt } object "canopy" : opt { object "canopy_offset" { int "min" int "max" } int "min_width"<0-*> : opt object "canopy_slope" : opt { int "rise"<1-*> : opt int "run"<1-*> : opt } chance_information "variation_chance" : opt array "variation_chance" : opt { chance_information "<any array element>" : opt } block_reference "leaf_block" object "canopy_decoration" : opt { chance_information "decoration_chance" block_reference "decoration_block" : opt int "num_steps" : opt enumerated_value "step_direction"<"down", "up", "out", "away"> : opt } } object "fancy_canopy" : opt { int "height"<1-*> int "radius"<0-*> block_reference "leaf_block" } object "mega_canopy" : opt { "canopy_height" int "base_radius"<0-*> int "core_width"<1-*> : opt bool "simplify_canopy" : opt block_reference "leaf_block" } object "mega_pine_canopy" : opt { "canopy_height" int "base_radius"<0-*> float "radius_step_modifier"<0.000000-*> int "core_width"<1-*> : opt block_reference "leaf_block" } object "pine_canopy" : opt { "canopy_height" int "base_radius"<1-*> block_reference "leaf_block" } object "roofed_canopy" : opt { int "canopy_height"<3-*> int "core_width"<1-*> int "outer_radius"<0-*> int "inner_radius"<0-*> block_reference "leaf_block" } object "spruce_canopy" : opt { "lower_offset" "upper_offset" "max_radius" block_reference "leaf_block" } } } object "trunk_decoration" : opt { chance_information "decoration_chance" block_reference "decoration_block" : opt int "num_steps" : opt enumerated_value "step_direction"<"down", "up", "out", "away"> : opt } } object "fallen_trunk" : opt { "log_length" "stump_height" : opt "height_modifier" : opt block_reference "trunk_block" feature_reference "log_decoration_feature" : opt object "trunk_decoration" : opt { chance_information "decoration_chance" block_reference "decoration_block" : opt int "num_steps" : opt enumerated_value "step_direction"<"down", "up", "out", "away"> : opt } } object "fancy_trunk" : opt { object "trunk_height" { int "base"<1-*> int "variance"<1-*> float "scale" } int "trunk_width"<1-*> object "branches" { float "slope" float "density" float "min_altitude_factor"<0.000000-1.000000> } block_reference "trunk_block" : opt float "width_scale"<0.000000-*> float "foliage_altitude_factor"<0.000000-1.000000> } object "mega_trunk" : opt { int "trunk_width" object "trunk_height" { int "base"<1-*> array "intervals" : opt { int "<any array element>"<1-*> : opt } } block_reference "trunk_block" object "trunk_decoration" : opt { chance_information "decoration_chance" block_reference "decoration_block" : opt int "num_steps" : opt enumerated_value "step_direction"<"down", "up", "out", "away"> : opt } object "branches" : opt { int "branch_length"<1-*> float "branch_slope" "branch_interval" object "branch_altitude_factor" { float "min"<0.000000-1.000000> float "max"<0.000000-1.000000> } object "branch_canopy" : opt { object "acacia_canopy" : opt { int "canopy_size"<1-*> block_reference "leaf_block" bool "simplify_canopy" : opt } object "canopy" : opt { object "canopy_offset" { int "min" int "max" } int "min_width"<0-*> : opt object "canopy_slope" : opt { int "rise"<1-*> : opt int "run"<1-*> : opt } chance_information "variation_chance" : opt array "variation_chance" : opt { chance_information "<any array element>" : opt } block_reference "leaf_block" object "canopy_decoration" : opt { chance_information "decoration_chance" block_reference "decoration_block" : opt int "num_steps" : opt enumerated_value "step_direction"<"down", "up", "out", "away"> : opt } } object "fancy_canopy" : opt { int "height"<1-*> int "radius"<0-*> block_reference "leaf_block" } object "mega_canopy" : opt { "canopy_height" int "base_radius"<0-*> int "core_width"<1-*> : opt bool "simplify_canopy" : opt block_reference "leaf_block" } object "mega_pine_canopy" : opt { "canopy_height" int "base_radius"<0-*> float "radius_step_modifier"<0.000000-*> int "core_width"<1-*> : opt block_reference "leaf_block" } object "pine_canopy" : opt { "canopy_height" int "base_radius"<1-*> block_reference "leaf_block" } object "roofed_canopy" : opt { int "canopy_height"<3-*> int "core_width"<1-*> int "outer_radius"<0-*> int "inner_radius"<0-*> block_reference "leaf_block" } object "spruce_canopy" : opt { "lower_offset" "upper_offset" "max_radius" block_reference "leaf_block" } } } } object "trunk" : opt { "trunk_height" "height_modifier" : opt block_reference "trunk_block" object "trunk_decoration" : opt { chance_information "decoration_chance" block_reference "decoration_block" : opt int "num_steps" : opt enumerated_value "step_direction"<"down", "up", "out", "away"> : opt } } object "acacia_canopy" : opt { int "canopy_size"<1-*> block_reference "leaf_block" bool "simplify_canopy" : opt } object "canopy" : opt { object "canopy_offset" { int "min" int "max" } int "min_width"<0-*> : opt object "canopy_slope" : opt { int "rise"<1-*> : opt int "run"<1-*> : opt } chance_information "variation_chance" : opt array "variation_chance" : opt { chance_information "<any array element>" : opt } block_reference "leaf_block" object "canopy_decoration" : opt { chance_information "decoration_chance" block_reference "decoration_block" : opt int "num_steps" : opt enumerated_value "step_direction"<"down", "up", "out", "away"> : opt } } object "fancy_canopy" : opt { int "height"<1-*> int "radius"<0-*> block_reference "leaf_block" } object "mega_canopy" : opt { "canopy_height" int "base_radius"<0-*> int "core_width"<1-*> : opt bool "simplify_canopy" : opt block_reference "leaf_block" } object "mega_pine_canopy" : opt { "canopy_height" int "base_radius"<0-*> float "radius_step_modifier"<0.000000-*> int "core_width"<1-*> : opt block_reference "leaf_block" } object "pine_canopy" : opt { "canopy_height" int "base_radius"<1-*> block_reference "leaf_block" } object "roofed_canopy" : opt { int "canopy_height"<3-*> int "core_width"<1-*> int "outer_radius"<0-*> int "inner_radius"<0-*> block_reference "leaf_block" } object "spruce_canopy" : opt { "lower_offset" "upper_offset" "max_radius" block_reference "leaf_block" } } object "minecraft:weighted_random_feature" : opt { object "description" { string "identifier" // The name of this feature in the form 'namespace_name:feature_name'. 'feature_name' must match the filename. } array "features"[1,*] { array "<any array element>"[2] : opt // Collection of weighted features that placement will select from. { feature_reference "[0..0]" // Named reference to a feature. float "[1..1]" // Weight used in random selection. Value is relative to other weights in the collection. } } } }
{ "format_version": "1.13.0", "minecraft:feature_rules": { "description": { "identifier": "minecraft:birch_forest_surface_trees_feature", "places_feature": "minecraft:legacy:birch_forest_tree_feature" }, "conditions": { "placement_pass": "surface_pass", "minecraft:biome_filter": [ { "test": "has_biome_tag", "operator": "==", "value": "forest" }, { "all_of": [ { "test": "has_biome_tag", "operator": "==", "value": "birch" }, { "test": "has_biome_tag", "operator": "!=", "value": "mutated" } ] } ] }, "distribution": { "iterations": 1, "x": 0, "y": 0, "z": 0 } } }
{ version "format_version" object "minecraft:feature_rules" { object "description" { string "identifier" // The name of this feature rule in the format 'namespace_name:rule_name'. 'rule_name' must match the filename. feature_reference "places_feature" // Named reference to the feature controlled by this rule. } object "conditions" // Parameters to control where and when the feature will be placed. { enumerated_value "placement_pass"<"first_pass", "before_underground_pass", "underground_pass", "after_underground_pass", "before_surface_pass", "surface_pass", "after_surface_pass", "before_sky_pass", "sky_pass", "after_sky_pass", "final_pass"> // When the feature should be placed relative to others. Earlier passes in the list are guaranteed to occur before later passes. Order is not guaranteed within each pass. biome_filter_group "minecraft:biome_filter" : opt // List of filter tests to determine which biomes this rule will attach to. } object "distribution" // Parameters controlling the initial scatter of the feature. { molang "iterations" // Number of scattered positions to generate object "scatter_chance" : opt // Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will. { int "numerator"<1-*> int "denominator"<1-*> } molang "scatter_chance" : opt // Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will. enumerated_value "coordinate_eval_order"<"xyz", "xzy", "yxz", "yzx", "zxy", "zyx"> : opt // The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to "xzy". molang "x" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below. object "x" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above. { enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), or grid (either fixed-step or jittered) int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis array "extent"[2] { molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around } } molang "z" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below. object "z" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above. { enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), or grid (either fixed-step or jittered) int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis array "extent"[2] { molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around } } molang "y" : opt // Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below. object "y" : opt // Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above. { enumerated_value "distribution"<"uniform", "gaussian", "inverse_gaussian", "fixed_grid", "jittered_grid"> // Type of distribution - uniform random, gaussian (centered in the range), or grid (either fixed-step or jittered) int "step_size"<1-*> : opt // When the distribution type is grid, defines the distance between steps along this axis int "grid_offset"<0-*> : opt // When the distribution type is grid, defines the offset along this axis array "extent"[2] { molang "[0..0]" : opt // Lower bound (inclusive) of the scatter range, as an offset from the input point to scatter around molang "[1..1]" : opt // Upper bound (inclusive) of the scatter range, as an offset from the input point to scatter around } } } } }
This website is not affiliated with Mojang Studios or Microsoft