Wiki

Clone wiki

mcpatcher / Biome_Palettes

Custom Biome Palettes

In vanilla Minecraft, the grass and leaf textures vary in color depending on the climate of the surrounding biome. This is controlled by two files,

assets/minecraft/textures/colormap/grass.png
assets/minecraft/textures/colormap/foliage.png

Each file is a 256x256 colormap applied to the base grass or leaf texture (which is usually grey).

MCPatcher greatly expands this functionality to other blocks and to ambient sky and fog colors. Artists can use this to great effect to give each biome its own feel.

This page is divided into two sections. The first describes the colormap formats themselves, and the second shows how to apply them to various elements of the game world.

Vanilla colormap format

The format used by vanilla Minecraft is a 256x256 colormap with the axes representing temperature and humidity. Each biome has fixed base temperature and humidity values corresponding to a single pixel in the colormap. As the y coordinate increases, the position in the colormap slowly moves toward the lower right. A forum post by khanador illustrates how this works.

The vanilla format is used for all custom colormaps as well, unless you override this behavior.

MCPatcher "grid" format

An alternative format that offers finer control over each biome. It is detailed on its own page.

Other formats

Additionally, MCPatcher offers a simple "fixed" colormap format. This format does not require an image; it is simply a single color applied to all blocks regardless of location. Its primary purpose is to override certain hardcoded block colors like reeds (sugar cane).

Properties file format (Template)

A custom colormap can consist of either a png file, a properties file, or both depending on what you're trying to do. All of the properties are optional and in fact the entire properties file can be omitted if you do not need to change any of them.

(Optional) Colormap format

format=<vanilla | grid | fixed>

If omitted, the default format is vanilla. If you'd rather use grid format by default, you can set it globally in the assets/minecraft/mcpatcher/color.properties file:

palette.format=grid

Note that this setting does not affect the vanilla grass.png and foliage.png files in assets/minecraft/textures/colormap. Those are always interpreted in the vanilla format in order to preserve compatibility for non-MCPatcher users. See "Grass and foliage" below for how to use the grid format with these textures.

(Optional) List of blocks and metadata values

blocks=<list>

For colormaps applied to terrain (as opposed to fog, sky, and underwater), this is a list of blocks and optional metadata values to apply the map to. If this property is not specified, the block name is taken from the filename (e.g., cobblestone.properties -> blocks=minecraft:cobblestone).

See About Properties Files for the syntax. Examples,

# Equivalent to the vanilla grass.png
blocks=grass tallgrass:1,2 reeds

# Same, without reeds
blocks=grass tallgrass:1,2

# Equivalent to the vanilla foliage.png
blocks=leaves:0,4,8,12 vine

# Pine/spruce leaves
blocks=leaves:1,5,9,13

# Birch leaves
blocks=leaves:2,6,10,14

# Jungle leaves
blocks=leaves:3,7,11,15

# Acacia leaves
blocks=leaves2:0,4,8,12

# Old oak leaves
blocks=leaves2:1,5,9,13

# Water
blocks=water flowing_water

(Optional) Colormap image

source=<image>

For vanilla and grid colormaps only. The path to the image containing the colormap. If this property is omitted, it defaults to a png with the same name and directory as the properties file itself, e.g., stone.properties -> source=stone.png.

(Optional) Default color

color=<rgb value>

For format=fixed, this is simply the fixed color to be applied to all matching blocks. If no value is given, the default is white (ffffff).

For format=vanilla or grid, this color is used for held or dropped blocks. If no value is given, the default color is instead taken from a fixed location depending on the format:

  • format=vanilla: x=127,y=127 (Center of bitmap)
  • format=grid: x=1,y=64 (Plains biome at sea level)

Applying a custom colormap

Custom colormaps can be applied to any block or set of blocks, or only certain metadata values of a block type. They can also be applied to ambient fog, sky, and underwater colors.

Block-based colormaps can be applied in one of two ways: As a list in assets/minecraft/mcpatcher/color.properties or as separate files under assets/minecraft/mcpatcher/colormap/blocks.

For the first method, use the syntax

palette.block.<colormap image>=<list of blocks+metadata>

For example, this assigns the four basic types of leaves their own colormaps:

palette.block.~/colormap/oak.png=leaves:0,4,8,12
palette.block.~/colormap/pine.png=leaves:1,5,9,13
palette.block.~/colormap/birch.png=leaves:2,6,10,14
palette.block.~/colormap/jungle.png=leaves:3,7,11,15

Two limitations of this method: Effectively, only the source and blocks properties can be set; the rest are defaults. Second, if the player is using multiple resource packs, only the first color.properties file will be read by the game.

An alternative way is by using separate files under assets/minecraft/mcpatcher/colormap/blocks. Subfolders are allowed and are useful to make organization easier. The above example could also be done this way:

assets/minecraft/mcpatcher/colormap/blocks/oak.properties:

blocks=leaves:0,4,8,12

assets/minecraft/mcpatcher/colormap/blocks/pine.properties:

blocks=leaves:1,5,9,13

assets/minecraft/mcpatcher/colormap/blocks/birch.properties:

blocks=leaves:2,6,10,14

assets/minecraft/mcpatcher/colormap/blocks/jungle.properties:

blocks=leaves:3,7,11,15

This is assuming you have oak.png, pine.png, birch.png, and jungle.png in the same folder.

Single block

The simplest case, a custom colormap applied to a single block type with no metadata values, does not need a properties file. For example, assets/minecraft/mcpatcher/colormap/blocks/sand.png applies to sand blocks without the need to specify blocks=sand.

Multiple blocks

To apply the same colormap to all stone and ore blocks, use a properties file

assets/minecraft/mcpatcher/colormap/blocks/stone_and_ore.properties:

blocks=stone gold_ore iron_ore coal_ore lapis_ore diamond_ore redstone_ore lit_redstone_ore monster_egg:0 emerald_ore

Add format=grid if using the new format. The source property is unnecessary if the colormap is also named stone_and_ore.png.

In color.properties this can also be written as

palette.block.~/colormap/custom/stone.png=stone gold_ore iron_ore coal_ore lapis_ore diamond_ore redstone_ore lit_redstone_ore monster_egg:0 emerald_ore

Add palette.format=grid to use grid format for all your custom colormaps (except the vanilla grass and foliage.png).

Grass and foliage

Custom colormaps will override the vanilla grass.png and foliage.png. This means you can leave your vanilla maps in place for compatibility and create custom ones for MCPatcher users:

assets/minecraft/mcpatcher/colormap/blocks/grass.properties:

format=grid
# NOTE: blocks=grass not needed since it is in the filename
yVariance=2

assets/minecraft/mcpatcher/colormap/blocks/oak.properties:

format=grid
blocks=leaves:0,4,8,12

Fixing reeds (sugar cane) in 1.7

Starting in 1.7, Minecraft applies the grass.png color to reeds, much to the annoyance of many artists. A "fixed" colormap of ffffff (white) effectively reverts to the 1.6 behavior. A 256x256 all-white colormap would of course accomplish the same thing, but this method is more efficient. The simplest way to do this is to create a properties file containing just one line:

assets/minecraft/mcpatcher/colormap/blocks/reeds.properties:

format=fixed

This works because the blocks property defaults to the filename (reeds) and the color property defaults to ffffff for fixed colormaps.

Ambient fog, sky, and underwater colors

These specifically named colormaps override the default fixed ambient colors:

  • Overworld fog: assets/minecraft/mcpatcher/colormap/fog0.png
  • Overworld sky: assets/minecraft/mcpatcher/colormap/sky0.png
  • Underwater: assets/minecraft/mcpatcher/colormap/underwater.png

Each one can have a corresponding properties file to specify the format or other settings. These colormaps behave just as terrain-based ones except that they do not care about the blocks property.

Updated