{ "plains": { "format_version": "1.12.0", "minecraft:climate": { "downfall": 0.4, "snow_accumulation": [ 0.0, 0.125 ], "temperature": 0.8 }, "minecraft:overworld_height": { "noise_type": "lowlands" }, "minecraft:overworld_surface": { "floor_depth": 7, "floor_material": "minecraft:gravel", "foundation_material": "minecraft:stone", "mid_material": "minecraft:dirt", "top_material": "minecraft:grass" }, "minecraft:world_generation_rules": { "hills_transformation": [ [ "forest_hills", 1 ], [ "forest", 2 ] ], "mutate_transformation": "sunflower_plains", "generate_for_climates": [ [ "medium", 3 ], [ "warm", 1 ], [ "cold", 1 ] ] }, "animal": {}, "monster": {}, "overworld": {}, "plains": {} } }
{ object "minecraft:climate"[0,3] : opt // Describes temperature, humidity, precipitation, etc. Biomes without this component will have default values. { float "temperature" float "downfall" array "snow_accumulation"[2] { float "[0..0]" float "[1..1]" } } object "minecraft:overworld_height"[0,2] : opt // Noise parameters used to drive terrain height in the Overworld. { array "noise_params"[2] : opt { float "[0..0]" float "[1..1]" } string "noise_type"<"stone_beach", "deep_ocean", "default", "default_mutated", "lowlands", "river", "ocean", "highlands", "taiga", "mountains", "mushroom", "less_extreme", "extreme", "beach", "swamp"> : opt } object "minecraft:forced_features"[0,11] : opt // Force specific decorative features (trees, plants, etc.) to appear in this Biome, regardless of normal decoration rules. { array "first_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "before_underground_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "underground_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "after_underground_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "before_surface_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "surface_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "after_surface_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "before_sky_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "sky_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "after_sky_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } array "final_pass" : opt { object "<any array element>" : opt { 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 } } feature_reference "places_feature" string "identifier" } } } object "minecraft:ignore_automatic_features" : opt // No features will be automatically attached to this Biome, only features specified in the minecraft:forced_features component will appear. object "minecraft:overworld_surface"[0,5] : opt // Control the blocks used for the default Minecraft Overworld terrain generation. { block_reference "top_material" // Controls the block type used for the surface of this biome. block_reference "mid_material" // Controls the block type used in a layer below the surface of this biome. block_reference "floor_material" // Controls the block type used as a floor for bodies of water in this biome. block_reference "foundation_material" // Controls the block type used deep underground in this biome. int "floor_depth" // Controls how deep below the world water level the floor should occur. } object "minecraft:surface_material_adjustments"[0,1] : opt // Specify fine-detail changes to blocks used in terrain generation (based on a noise function) { array "adjustments" : opt // All adjustments that match the column's noise values will be applied in the order listed. { object "<any array element>" { object "materials" { block_reference "top_material" : opt // Controls the block type used for the surface of this biome when this adjustment is active. block_reference "mid_material" : opt // Controls the block type used in a layer below the surface of this biome when this adjustment is active. block_reference "floor_material" : opt // Controls the block type used as a floor for bodies of water in this biome when this adjustment is active. block_reference "foundation_material" : opt // Controls the block type used deep underground in this biome when this adjustment is active. } array "noise_range"[2] // Defines a range of noise values [min, max) for which this adjustment should be applied. { string "[0..0]"<"-infinity"> : opt float "[0..0]" : opt string "[1..1]"<"infinity"> : opt float "[1..1]" : opt } } } } object "minecraft:swamp_surface"[0,5] : opt // Similar to overworld_surface. Adds swamp surface details. { block_reference "top_material" // Controls the block type used for the surface of this biome. block_reference "mid_material" // Controls the block type used in a layer below the surface of this biome. block_reference "floor_material" // Controls the block type used as a floor for bodies of water in this biome. block_reference "foundation_material" // Controls the block type used deep underground in this biome. int "floor_depth" // Controls how deep below the world water level the floor should occur. } object "minecraft:frozen_ocean_surface"[0,5] : opt // Similar to overworld_surface. Adds icebergs. { block_reference "top_material" // Controls the block type used for the surface of this biome. block_reference "mid_material" // Controls the block type used in a layer below the surface of this biome. block_reference "floor_material" // Controls the block type used as a floor for bodies of water in this biome. block_reference "foundation_material" // Controls the block type used deep underground in this biome. int "floor_depth" // Controls how deep below the world water level the floor should occur. } object "minecraft:mesa_surface"[0,9] : opt // Similar to overworld_surface. Adds colored strata and optional pillars. { block_reference "top_material" // Controls the block type used for the surface of this biome. block_reference "mid_material" // Controls the block type used in a layer below the surface of this biome. block_reference "floor_material" // Controls the block type used as a floor for bodies of water in this biome. block_reference "foundation_material" // Controls the block type used deep underground in this biome. int "floor_depth" // Controls how deep below the world water level the floor should occur. block_reference "clay_material" block_reference "hard_clay_material" bool "bryce_pillars" bool "has_forest" } object "minecraft:nether_surface" : opt // Use default Minecraft Nether terrain generation. object "minecraft:the_end_surface" : opt // Use default Minecraft End terrain generation. object "minecraft:world_generation_rules"[0,5] : opt // Control how this biome is instantiated (and then potentially modified) during world generation. { biome_reference "hills_transformation" : opt array "hills_transformation"[1,*] : opt { biome_reference "<any array element>" : opt array "<any array element>"[2] : opt { biome_reference "[0..0]" int "[1..1]" } } biome_reference "mutate_transformation" : opt array "mutate_transformation"[1,*] : opt { biome_reference "<any array element>" : opt array "<any array element>"[2] : opt { biome_reference "[0..0]" int "[1..1]" } } array "generate_for_climates" : opt // Controls the world generation climate categories that this biome can spawn for. A single biome can be associated with multiple categories with different weightings. { array "<any array element>"[2] { enumerated_value "[0..0]"<"medium", "warm", "lukewarm", "cold", "frozen"> // Name of a climate category int "[1..1]" // Weight with which this biome should be selected, relative to other biomes in the same category } } biome_reference "river_transformation" : opt array "river_transformation"[1,*] : opt { biome_reference "<any array element>" : opt array "<any array element>"[2] : opt { biome_reference "[0..0]" int "[1..1]" } } biome_reference "shore_transformation" : opt array "shore_transformation"[1,*] : opt { biome_reference "<any array element>" : opt array "<any array element>"[2] : opt { biome_reference "[0..0]" int "[1..1]" } } } object "minecraft:legacy_world_generation_rules" : opt // Additional world generation control applicable only to legacy limited worlds. object "[a-z0-9_.:]+" : opt // Attach arbitrary string tags to this biome }