Color

Tints are applied to several blocks, items and particles in order to display a much wider array of possibilities than would be possible with a raw unmodified texture without the need for potentially millions of distinct files.

Grass
Grass blocks have several gray parts on the texture. These are colored later when rendering, depending on what biome the block exists in. Grass and ferns are rendered similarly.

Leaves
Oak, jungle, acacia and dark oak leaves also change color under very similar conditions to grass, although the color used is usually different.

Water
Water (in a cauldron or as a fluid itself) is also affected by a biome-specific tint. It varies less from biome to biome than foliage.

Potion cauldrons
These probably also use a tint.

Stems
Pumpkin stems and melon stems also use gray textures by default, which are then coloured depending on their age.

Redstone
Redstone wire has various different power levels it can be in. The higher the power, the brighter red it is, with its off state being a dark almost brownish-red.

Constant tints
Birch and spruce leaves do not change color depending on biome, instead applying a constant color tint at all times. Why this is done instead of simply having a colored texture with no tint applied is unknown.

Lily pads also use constant coloring in a similar way.

Spawn eggs
Spawn eggs have two distinct colours to each of them.

Potions
Potions (and likewise, splash potions and lingering potions) also have colors applied to a white texture. This color can be defined to be anything through commands.

Other
Experience orb textures are mostly white/grey/red - a gradient is applied afterwards to make them green and yellow.

Worldborder
The World border in Java Edition has several tints. A blue tint is applied if the border is stationary. If expanding, the world border takes on a green hue. If the world border is shrinking, the world border turns red. In the Nether, the worldborder is always red no matter if it is expanding, stationary, or shrinking. The worldborder becomes more opaque the closer the player is to the border and more difficult if the player if further away (5, 6 chunks away). Fluids are not affected however by visibility.

Biome tints


The temperature and rainfall values of a biome are used when determining the colors of a small selection of blocks: grass, grass blocks, some leaves, vines, sugar cane, and other features such as water and the sky. Blocks such as mossy cobblestone, mossy stone bricks and the stems of flowers are not affected by biome coloration.

A biome's rainfall value is typically a value from 0.0 to 1.0, and - as stated on another page - a biome's temperature starts at a given value at sea level (e.g. 2.0 for Desert or -0.5 for Snowy Taiga) and decreases by 0.00166667 for each meter above sea level.

Biome grass and foliage colors are selected from two 256&times;256 colormap images: grass.png and foliage.png. Both colormaps, shown to the right, can be found in. The grass.png colormap sets the colors for the grass block top and sides (along with other types of grass, such as tall grass, ferns, double tall grass, etc.). Meanwhile, the foliage.png colormap sets the colors for tree leaves (with the exception of spruce and birch).

Biome colormaps use a triangular gradient by default. However, only the colors in the lower-left half of the image are used, even though the upper-right side of foliage.png is colored. Furthermore, as shown in the template image to the left, a select few pixels are considered when the colormap is read by the game, and are determined by the code below.

The adjusted temperature and adjusted rainfall values (recognized as AdjTemp and AdjRainfall in the code, respectively) are used when determining the biome color to select from the colormap. Treating the bottom-right corner of the colormap as  and , the adjusted temperature increases to 1.0 along the X-axis, and the adjusted rainfall increases to 1.0 along the Y-axis. The values used to retrieve the colors are computed as follows:

AdjTemp = clamp( Temperature, 0.0, 1.0 ) AdjRainfall = clamp( Rainfall, 0.0, 1.0 ) * AdjTemp

"clamp" limits the range of the temperature and rainfall to 0.0-1.0. The clamped rainfall value is then multiplied by the 0.0-1.0 adjusted temperature value, bringing its value to be inside the lower left triangle. Some biomes' ranges are shown in the template above; the multiplication makes all the line segments point toward the lower right corner.

At borders between or among biomes, the colors of the block and its eight neighbors are computed and the average is used for the final block color.

The exact temperature and rainfall values for biomes can be found in various projects, e.g. this biome code.

Hard-coded colors
Certain biome colors are hard-coded, which means they are locked into the Minecraft code and are not retrievable from any texture file. Thus, they cannot be modified without the use of external tools, such as MCPatcher/OptiFine, that support the use of custom colormaps.

Swamp color
Swamp temperature, which starts at 0.8, is not affected by altitude. Rather, a Perlin noise function is used to gradually vary the temperature of the swamp. When this temperature goes below -0.1, a lush green color is used ( 0x4C763C ) otherwise it is set to a sickly brown ( 0x6A7039 ).

Dark forest color
The dark forest biomes' grass color is retrieved normally, then averaged with a dark green color ( 0x28340A ) to produce the final color.

Badlands color


All badlands biomes' grass and foliage have hard-coded colors, which are two tan colors ( 0x90814D and 0x9E814D respectively). These are not modifiable by grass.png and foliage.png, and are unaffected by temperature.

Other colors
Several other biome colors are set into the game and currently require external tools in order to be changed. This includes blocks such as birch and spruce leaves and water (which have a hard-coded overlay set onto them), and other features such as the sky and fog.

Stems
pending

Constant tints
These do not change depending on biome or any other factor.

Spawn eggs
pending

Inventory tints
The inventory color of the grass is calculated with and. The result is, We can get the color for the middle of center(x:127, y:127) of the.