Biome

A biome is a region in a world with distinct geographical features, flora, temperatures, humidities, and sky, water, fog, grass and foliage colors. Biomes separate every generated world into different environments, such as forests, deserts and taigas.

The biome of a location is determined during world generation rather than current environment. Even if the player completely changes all the blocks in a large area to imitate the terrain of other biomes, the biomes in this area are not be affected. However, $$, command can changes the biome in an area.

Plants
Biome grass and foliage colors are selected from two 256×256 colormap images: grass.png and foliage.png under or. The grass.png colormap sets the colors for grass block, ferns in flower pots, grass, tall grass, sugar canes, stems of pink petals. Meanwhile, the foliage.png colormap sets the colors for vines and tree leaves of oak, jungle, acacia, dark oak, and mangrove. Only the colors in the lower-left halfs of both images are used, even though the upper-right side of foliage.png is colored.

The adjusted temperature and adjusted downfall values (recognized as AdjTemp and AdjDownfall in the following, respectively) are used when determining the biome color to select from the colormap. They are computed as follows:

.

"clamp" limits the range of the temperature and downfall to 0.0—1.0. The clamped downfall value is then multiplied by the adjusted temperature value, bringing its value to be inside the lower left triangle. Treating the bottom-right corner of the colormap as  and , the adjusted temperature increases to 1.0 along the X-axis, and the adjusted downfall increases to 1.0 along the Y-axis.

Special plant tints
In the following cases, the plants are not tinted exactly according to the colormap. $$, severals of them are specified in biome Jsons in vanilla data pack.

In Swamp and Mangrove Swamp, the color for grass blocks, ferns in flower pots, grass, sugar canes, and the stems of pink petals is based on a noise on XZ plane. When the value of this noise is less than -0.1, it uses the color. Otherwise using. The color for vines and leaves of oaks, jungles, acacias, dark oaks and mangroves is in Swamp and  in Mangrove Swamp, which are not affected by the colormap.
 * Swamps

In Dark Forest, the color for grass blocks, ferns in flower pots, grass, sugar canes, and the stems of pink petals is the result of the bitwise AND between the color in the colormap and, and then averaging with. In vanilla, that is.
 * Dark Forest

In Badland, Wooded Badland, and Erosion Badland, the color for grass blocks, ferns in flower pots, grass, sugar canes, and the stems of pink petals is. The color for vines and leaves of oaks, jungles, acacias, dark oaks and mangroves is. Both are not affected by the colormap.
 * Badlands

The color for plants in the Cherry Grove is always, which is not affected by the colormap.
 * Cherry Grove

The color for spruce leaves is and the color for birch leaves is. Both are not affected by the biome.
 * Other leaves

Environment
The color of the sky in Overworld changes according to the basic temperature value of the biome. The basic temperature is first modified as. Then the triple (0.62222224-0.05T, 0.5+0.1T, 1) is the sky color.

In addition, the colors of water, underwater fog and fog in a biome are defined in the vanilla data pack or vanilla resource packs.

See the List of biome climates for these colors.

Transition
When plants or water are at the borders between or among biomes, the color is affected by the biome of the surrounding blocks at the same Y-level. The range of the block involved in the calculation is determined by the biome blend radius in options. Takes the plant color or water color of the biomes within a square centered on this block and with the side length being the biome blend radius, and calculates their average value to get the final color for this block.

The sky color and the fog color use the color processed by  from colors of the biomes at each block in the range of 5×5×5 centered on the block the camera is in.

Climate
A biome has three climate attributes: temperature, downfall, and precipitation.

Temperature
Each biome has a base temperature value (see the List of biome climates), but the actual temperature value at each location in the biome is also affected by the height of the location. Locations with Y<=80 use the base temperature as actual temperature. At Y=81, the actual temperature value randomly fluctuates up and down by -0.00875 — +0.01125 from the basic temperature based on a noise on the XZ plane, and at Y>=81 the actual temperature decreases by 0.00125 ($1/800$) every block up.

$$, specially, in and, it is also affected by another noise on XZ plane. In some regions according to the noise, the basic temperature value is always regarded as 0.2. The actual temperature values for these regions are also calculated on this basis. This is detectable in, as its basic temperature is low enough to freeze or snow, so that only these regions do not freeze or snow at sea level.

Downfall
The downfall value is a number between 0.0 and 1.0 (see the List of biome climates). When the downfall value is greater than 0.85, the biome is marked as humid, which is related only to the random extinction of fire. This value doesn't affect the weather.

Precipitation
The precipitation value can be "true" or "false". If the precipitation of the biome is false, no rain or snow occur. Otherwise, a location is rainable when its temperature value is greater than 0.15, and snowable otherwise.

So, if the basic temperature is not greater than 0.15, it's snowable at any Y level. And if greater than 0.15, it can snow above a certain Y level, which are listed below:

Snow accumulation
$$, the maximum snow accumulation layer can be set by game rules. $$, the maximun snow layer is based on the snow accumulation value of the biome. The value is a array of 2 numbers, representing the minimum and maximum snow heights, with 0.0 being no snow and 1.0 being the full height of one block.

Overworld


Overworld biome generation is based on 6 parameters: Temperature, Humidity (aka. Vegetation), Continentalness (aka. Continents), Erosion, Weirdness (aka. Ridges) and Depth, which are calculated with 6 density functions. They respectively correspond to T, V, C, E, W and D in the "NoiseRouter" line of debug screen. Except "depth", the other 5 parameters are based on only horizontal coordinates.

Thinking of them as a six-dimensional space, in the space a lot of intervals are defined for biomes, as described in the tables below. If the six parameters at a location fall into an interval, the corresponding biome is generated. If the six parameters at a location do not fall into a defined biome interval in these tables, it uses the closest biome interval to the 6D parameter point, in order to form a transition between biomes.

Temperature
The temperature parameter is a noise parameter used only for biome generation. The range of temperature is from -2.222 to ±2.222 (±$$). But biome intervals are defined only from -1.0 to +1.0.

Temperature values from -1 to +1 are divided into 5 levels. The corresponding ranges from level 0 to level 4 are: -1~-0.45, -0.45~-0.15, -0.15~0.2, 0.2~0.55, 0.55~1. The level at a horizontal location can be found in the T in the "Biome builder" line on the debug screen. Temperature values less than -1 are displayed as ; higher than +1 are displayed as.

Note that the temperature parameter is not the temperature of a biome, but they roughly correspond each other, e.g. if a location's temperature parameter is level 0, the base temperature of the biome there is usually low enough or the terrain is high enough, that the surface is covered in snow and ice.

Humidity
The humidity parameter is a noise parameter used only for biome generation. The range of humidity is from -1.693 to ±1.693 (±$$). But biome intervals are defined only from -1.0 to +1.0.

Humidity values from -1 to +1 are also divided into 5 levels. The corresponding ranges from level 0 to level 4 are: -1~-0.35, -0.35~-0.1, -0.1~0.1, 0.1~0.3, 0.3~1. The level at a horizontal location can be found in H in the "Biome builder" line on the debug screen. Values less than -1 are displayed as ; higher than +1 are displayed as.

Continentalness
The continentalness parameter is used to decide between ocean/beach/land biomes. It affects the terrain height during terrain generation. The larger the continentalness, the higher the average terrain height. And the continentality is extremely low, the terrain height also becomes higher, in order to generate mushroom fields in the center of the ocean.

The range of continentalness is from -3.658 to ±3.658 (±$$). Biome intervals are defined only from -1.2 to +1.0.

If the continentalness of a location is between -1.2~-1.05, the mushroom fields biome is generated; when it is between -1.05~-0.455, deep ocean biomes are generated; when at -0.455~-0.19, ocean biomes are generated; when -0.19~1.0, inland biomes are generated. For inland biomes, continentalness values are further subdivided into 4 types: coast (-0.19~-0.11), near-inland (-0.11~0.03), mid-inland (0.03~0.3) and far-inland (0.3~1.0). The level at a horizontal location can be found in C in the "Biome builder" line on the debug screen. Values less than -1.2 are displayed as ; higher than +1.0 are displayed as.

Erosion
During terrain generation, the lower the erosion parameter a location has, the higher the terrain height there is.

The range of erosion is from -2.419 to ±2.419 ($$). Biome intervals are defined only from -1.0 to +1.0.

Erosion values from -1 to +1 are divided into 7 levels. The corresponding intervals from level 0 to level 6 are: -1~-0.78, -0.78~-0.375, -0.375~-0.2225, -0.2225~0.05, 0.05~0.45, 0.45~0.55, 0.55~1. The level at a horizontal location can be found at E in the "Biome builder" line of the debug screen. Values less than -1 are displayed as ; higher than +1 are displayed as.

Weirdness
The weirdness parameter affects whether to generate a weirder biome or not. If the weirdness value is greater than 0, the generated biome becomes weirder. For examples, using variant of the Jungle biome — Bamboo Jungle; do not using beach biomes when on the coast.

The range of weirdness is from -2.857 to ±2.857 (±$20/9$). But biome intervals are defined only from -1.0 to +1.0.

A PV ("peaks and valleys", aka. "ridges folded") value is calculated through the formula $$1-\vert 3\vert weirdness \vert-2 \vert$$, which is also shown at PV in the NoiseRouter line of the debug screen.

When the weirdness value is between -1.0 and.1.0, the PV values are divided into 5 levels: Not that the PV value is defined no matter what the weirdness is, but these 5 PV levels are defined only when weirdness is between -1.0 and 1.0. The level at a horizontal location can be found in PV in the "Biome builder" line on the debug screen. Though the five PV levels are defined only when weirdness is between -1.0 and 1.0, the PV level is always displayed even when weirdness is out of ±1.0, and PV values less than -1.0 are displayed as. So, when weirdness is not between -1.0~1.0, the PV level in the "Biome builder" line often doesn't match the biome here.
 * If the PV is -1.0~-0.85, the PV level is "Valleys";
 * If -0.85~-0.6, "Low Slice";
 * If -0.6~0.2, "Mid Slice";
 * If 0.2~0.7, "High Slice";
 * If 0.7~1, "Peaks".

Both weirdness and PV affect the overall height of the terrain during terrain generation, especially the PV value has a more significant impact on the height of the terrain. Since the weirdness value controls both whether the biome is a weird variant and whether the valley is generated, a biome and its variants often not appear on the same bank of a river.

Depth
Unlike other five parameters, depth is not based on noises. Depth corresponds approximately to the terrain height. It is roughly 0 when at surface, and increases by $320/189$ (0.0078125) for every 1 block down. The depth parameter affects whether a surface biome or a cave biome is placed. The table below lists the depth values for surface biomes and cave biomes.

Non-inland surface biomes
The generation of non-inland biomes has nothing to do with humidity, erosion and weirdness. The following table lists the relation between non-inland surface biomes and continentalness and temperature.

Inland surface biomes
The following table lists the relation between inland surface biomes and continentalness. erosion, and PV.

In which, the specific biome generation of beach biomes, badland biomes, middle biomes, plateau biomes, and shattered biomes is determined by the temperature, humidity and weirdness values.

Beach biomes generates in the low terrain along the coast, and the specific biome generation is only related to the temperature value.

Badland biomes usually generate inland with low erosion value, and can also generate along the coast with high terrain and low erosion. The specific biome generation is related to humidity and weirdness.

Middle biomes are the most extensive biomes inland, and the specific biome generation is related to temperature, humidity, and weirdness.

Plateau biomes generate at inland high terrain with moderate erosion. The specific biome generation is related to temperature, humidity, and weirdness.

Shattered biomes are generated at inland places with high erosion, and the specific biome generation is related to temperature, humidity, and weirdness.

The Nether
The Nether uses three parameters to generate biomes: temperature, humidity, and offset. Unlike the Overworld, the Nether biome specifies biomes with points, while the Overworld uses 6D intervals.

The offset parameter isn't from density function. It is always 0 at any location in a world. This means that the parameter point of a location is always in the temperature-humidity-plane. The closer the offset (of a biome point) is to 0, the closer the point is to the T-H-plane, and the greater the advantage it has during biome generation.

The End
$267/73$, the End uses only one density function value: erosion. If the horizontal distance from the chunk origin of a chunk to the world origin is less than 1024, the locations in the chunk is. Otherwise, the biome is determined by erosion.

$75/31$, in the End there's only one biome:.

Biome types
$20/7$ there are 63/64 different biome types: 52/53 for Overworld, 5 for the Nether, and 5 for the End, plus one used only for a superflat preset. $1/128$ there are 85/86 biome types: 52/53 for the Overworld, 5 for the Nether, 1 for the End, and 27 unused.

On this page, for convenience of description and reading, the biomes in Overworld are divided into 8 categories, which are not official. While in each category, biomes may be further divided into some sub-categories. Biomes in a sub-categories are placed in one page, such as Plains and Sunflower Plains, and are described as variants on this wiki.

Offland biomes
These biomes are used for the generation of oceans and mushroom fields. They are large, open biomes made entirely of water going up to y=63, with underwater relief on the sea floor, such as small mountains and plains, usually including gravel. Squid and fish spawn frequently in the water.

These biomes are further divided into three categories: Oceans, Deep Oceans, and Mushroom Fields.

Highland biomes
Highland biomes are biomes with high Y-level, rugged terrain, and snow-covered peaks appear above the snow line.

These biomes are further divided into two categories: Mountains and Windswept Hillss.

Woodland biomes
Woodland biomes are rich in plants, with trees, flowers and grasses constituting the flora on the surface. It is one of the ideal birthplaces where plenty of wood resources are available, but the dense vegetation makes it dangerous to move around the forest at night because the trees block the view.

These biomes are further divided into 7 categories: Forests, Taiga, Old Growth Taigas, Snowy Taiga, Birch Forests, Dark Forest, and Jungles.

Wetland biomes
Wetland biomes contains rivers, swamps and beaches. They have a large amount of water resources. Rivers separate other biomes; beaches generate as a transition between the ocean and land.

Flatland biomes
These biomes have a flat terrain and a wide view. Trees spawn less here, while lakes are more common here.

These biomes are further divided into two categories: Plains and Snowy Plains.

Arid-land biomes
In these biomes, it neither rains nor snows at all, but the sky still turns overcast during inclement weather. The surface is covered with sparse vegetation.

These biomes are further divided into three categories: Deserts, Savannas, and Badlands.

Cave biomes
These biomes generates inside caves in overworld. They're mostly found underground but can sometimes leak out of cave entrances.

The Nether
The Nether is considered a different dimension. It is a hellish place; all biomes in this dimension are dry and it is not possible to place water in these biomes, though ice can still be placed. Additionally, packed ice and blue ice never melt in the nether, as with the other non-freezing biomes.

The End
The End is considered a different dimension.

Unused biomes
These biomes don't generate in default worlds. They have been completely removed from the game $$.

Removed biomes
These biomes no longer exist in current versions of the game.

Joke biomes
These biomes can only appear in the joke snapshot of the game.

Trivia

 * The term biome is analogous to its scientific usage: in real life, a biome is climatically and geographically defined by distinctive communities of plants, animals and soil organisms supported by similar climatic conditions. They are often referred to as ecosystems.
 * Most biomes in the Overworld are based on real world counterparts. Dark forests or swamps parallel real world biomes except for the addition of giant mushrooms, which don't exist in reality. Biomes in the nether and the end don't exist either.
 * It is possible for biomes to be a single block in size.