[Boolean] has_precipitation: Determines whether or not the biome has precipitation.
[Float] temperature: Controls gameplay features like grass and foliage color, and a height adjusted temperature (which controls whether raining or snowing occurs if [Boolean] has_precipitation is true, and generation details of some features).
[String] temperature_modifier: (optional, defaults to none) Either none or frozen. Modifies temperature before calculating the height adjusted temperature. If frozen, makes some places' temperature high enough to rain (0.2).
[Float] downfall: Controls grass and foliage color.
[NBT Compound / JSON Object] effects: Ambient effects in this biome.
[Int] water_color: (Required, but the normal value is 4159204) Decimal value converted from Hex color to use for water blocks and cauldrons.
[Int] foliage_color: (optional) Decimal value converted from Hex color to use for tree leaves and vines. If not present, the value depends on downfall and the temperature.
[Int] dry_foliage_color: (optional) Decimal value converted from Hex color to use for leaf litter.
[Int] grass_color: (optional) Decimal value converted from Hex color to use for grass blocks, short grass, tall grass, ferns, tall ferns, and sugar cane. If not present, the value depends on downfall and temperature.
[String] grass_color_modifier: (optional, defaults to none) Can be none, dark_forest or swamp.
[NBT Compound / JSON Object] attributes: (optional) Map of environment attributes that apply when in this biome.
[String][NBT Compound / JSON Object][NBT List / JSON Array] carvers: Any number of carver(s) (a [String]tag with #, or an [NBT List / JSON Array] array containing [String] IDs) (Required, but can be empty)
[NBT List / JSON Array] features: List of generation steps (Can be empty). Usually there are 11 steps, but any amount is possible.
[String][NBT Compound / JSON Object][NBT List / JSON Array] each entry of the list: Any number of placed feature(s) (a [String]tag with #, or an [NBT List / JSON Array] array containing either [String] IDs or new [NBT Compound / JSON Object] definitions in the same data type) — Features to place during that generation step. The same placed features in the same step in two biomes cannot be in different orders. In each step, all feature IDs need to be ordered consistently across biomes. For example, in the UNDERGROUND_ORES step of minecraft:plains, ore_dirt is before ore_gravel. In other biomes' UNDERGROUND_ORES step, if both ore_dirt and ore_gravel as present, ore_gravel cannot be before ore_dirt.
These generation steps are also referred to by name for structure generation. They are, in order:
RAW_GENERATION: Used by small end island features in vanilla.
LAKES: Used by lava lakes in vanilla.
LOCAL_MODIFICATIONS: Used for amethyst geodes and icebergs in vanilla.
UNDERGROUND_STRUCTURES: Used for dungeons and overworld fossils in vanilla.
SURFACE_STRUCTURES: Used for desert wells and blue ice patches in vanilla.
STRONGHOLDS: Not used for features in vanilla.
UNDERGROUND_ORES: Used for overworld ore blobs, overworld dirt/gravel/stone variant blobs, and sand/gravel/clay disks in vanilla.
UNDERGROUND_DECORATION: Used for infested block blobs, nether gravel and blackstone blobs, and all nether ore blobs in vanilla.
FLUID_SPRINGS: Used for water and lava springs in vanilla.
VEGETAL_DECORATION: Used for trees, bamboo, cacti, kelp, and other ground and ocean vegetation in vanilla.
TOP_LAYER_MODIFICATION: Used for surface freezing in vanilla.
[Float] creature_spawn_probability: (optional) Higher value results in more creatures spawned in world generation. Must be between 0.0 and 0.9999999 (both inclusive).
[NBT Compound / JSON Object] spawners: (Required, but can be empty. If this object doesn't contain a certain category, mobs in this category do not spawn.) Entity spawning settings.
[NBT List / JSON Array] <mob category>: (Can be empty. If empty, mobs in this category do not spawn.) The key must be one of monster, creature, ambient, water_creature, underground_water_creature, water_ambient, misc, or axolotls. A list of spawner data objects, one for each mob which should spawn in this biome.
[NBT Compound / JSON Object]: The spawner data for a single mob.
[String] type: The namespaced entity id of the mob.
[Int] weight: How often this mob should spawn, higher values produce more spawns.
[Int] minCount: The minimum count of mobs to spawn in a pack. Must be greater than 0.
[Int] maxCount: The maximum count of mobs to spawn in a pack. Must be greater than 0. And must be not less than [Int] minCount.
[NBT Compound / JSON Object] spawn_costs: (Required, but can be empty. Only mobs listed here use the spawn cost mechanism) See Mob spawning § Spawn costs for details.
[NBT Compound / JSON Object] <entity id>: The namespaced entity id of the mob.
[Double] energy_budget: New mob's maximum potential.
[Double] charge: New mob's charge.
An interactive widget is being loaded. If this does not work for you, please reload the page or check if JavaScript is working or enabled.
[String] format_version: The format version of the file. This is a string representing a Bedrock Edition version. It is recommended to use the latest version. For 26.0 and later, add a leading 1. For example: "1.26.0" for 26.0. Preview versions should use the version that it is a preview for (Example: Preview 26.0.27 would be "1.26.0").
[NBT Compound / JSON Object] minecraft:biome: The biome definition.
[NBT Compound / JSON Object] states: Block states for the block.
[NBT Compound / JSON Object] minecraft:overworld_height: Currently only affects map items. Specifies the noise parameters used to drive terrain height.
[NBT List / JSON Array] noise_params: 2 values, first is depth, and the second is scale.
[String] noise_type: Uses a built-in preset instead of specifying values. Available presets are:
beach
deep_ocean
default
default_mutated
extreme
highlands
less_extreme
lowlands
mountains
mushroom
ocean
river
stone_beach
swamp
taiga
[NBT Compound / JSON Object] minecraft:replace_biomes: Allows this biome to replace parts of one or more vanilla biomes.
[NBT List / JSON Array] replacements: The list of replacements
[NBT Compound / JSON Object]: An replacement
[Float] amount: Chance that the replacement is attempted. Must be >0.0 and ≤1.0.
[String] dimension: The dimension in which this replacement can occur. Can be either minecraft:overworld, or minecraft:nether.
[Float] noise_frequency_scale: Scale to alter the frequency of replacements. Lower values make bigger areas that are less common, and higher values make smaller areas that are more common. Must be >0.0 and ≤100.0.
[NBT List / JSON Array] targets: The biomes that can be replaced.
[NBT Compound / JSON Object] builder: Controls the blocks used for terrain generation.
[String] type: The type of surface builder. Can be minecraft:capped, minecraft:frozen_ocean, minecraft:mesa, minecraft:overworld, minecraft:swamp, or minecraft:the_end.
If type is minecraft:capped:
[NBT Compound / JSON Object][String] beach_material: Material used near sea level.
Renamed the precipitation field to has_precipitation. And now it is a boolean, and when it is true, whether it rains or snows are determined only by temperature. Before, it can be one of "none", "rain" and "snow".[1]
Now [Int] minCount and [Int] maxCount in [NBT Compound / JSON Object] spawners must be a positive integer. And [Int] maxCount must be not less than [Int] minCount.
The [String][NBT List / JSON Array][Int] water_color, [String][NBT List / JSON Array][Int] foliage_color, [String][NBT List / JSON Array][Int] dry_foliage_color, and [String][NBT List / JSON Array][Int] grass_color fields now accept a hex-string or array of red, green, blue floats in addition to the packed integer value.
Added minecraft:replace_biomes component to allow for custom biomes to replace portions of vanilla biomes. To use, add to custom biome files in behavior packs.
Custom biome names are no longer implied by their filenames. Biome names are explicitly specified via the identifier property under the description sub-object of their JSON definition.
Biome identifiers must now be namespaced (ex: minecraft:plains). Biomes with a format version lower than 1.21.90 will have their identifier automatically prefixed minecraft: when loaded if no namespace is already specified.
Added a new server side biome component surface_builder that will combine the components surface_parameters, frozen_ocean_surface, mesa_surface, swamp_surface, capped_surface, and the_end_surface into one component. Each biome can only use one builder type. The component can be used for world generation settings such as foundation material and sea floor depth.
Added minecraft:humidity component with is_humid this forces a biome to either always be humid or never humid. Humidity effects the spread chance, and spread rate of fire in the biome.
Added minecraft:partially_frozen This component will impact the temperature in a frozen biome, causing some areas to not be frozen. Ex: patchy ice, patchy snow.
Added max_puddle_depth_below_sea_level to the surface_builder biome component for the swamp builder type. The component will set the search depth for how far below sea level to search for a surface to add a puddle.
Removed support for loading custom biomes for base game versions 1.21.100 and below.
Added minecraft:village_type biome component that determines the type of the village in the biome. This also allows for the generation of villages in the biome; not using this component means the village will never be generated in the biome.
Enabled the Biome Replacement feature in the Nether, however, currently it doesn't work as well as it should.