GRASS
1 block
- grass block
Most of what you see in Minecraft is texture color — RGB values baked into 16×16 PNGs. But alongside those ~1,100 textures, the game maintains a parallel layer of programmatic color: hard-coded numeric values that tint, replace, or categorize what you see at runtime. Map colors are the most complete and self-contained of these systems — 61 base colors × 4 shades = 244 fixed values that define the entire visual vocabulary of in-game maps.
| Dye | Dyed blocks | Terracotta |
|---|---|---|
| red | ||
| orange | ||
| yellow | ||
| light green | ||
| green | ||
| cyan | ||
| light blue | ||
| blue | ||
| purple | ||
| magenta | ||
| pink | ||
| brown | ||
| white | ||
| light gray | ||
| gray | ||
| black |
Map colors are one of about a dozen hard-coded color systems in the codebase. The most interesting:
Dye colors — 16 DyeColor constants, each carrying different RGB values per context (entity tinting, fireworks, sign text, beacons). Dyed blocks like wool and concrete don't use these values at all — they have separate texture files per variant. Runtime tinting applies to leather armor, sheep, collars, and banners. Leather armor goes further: players can mix dyes for arbitrary colors stored as NBT data.
Biome tints — Grass and foliage textures are grayscale, multiplied by per-biome tint colors at runtime. Most biomes derive tints from colormap textures indexed by temperature and downfall; swamp, badlands, pale garden, and a handful of others use hard-coded overrides.
Text formatting — The 16 § color codes are hex values lifted from the 1981 CGA palette. Gold (§6) is the only one Mojang changed.
The remaining systems — status effects (~36 colors for particles and HUD), spawn eggs (~73 base+overlay pairs), redstone wire (16-level gradient), sky/fog colors, particles, and utility constants — follow the same pattern: hard-coded RGB values applied at runtime.
| System | Count | Source | What it colors |
|---|---|---|---|
| Map colors | 61 × 4 shades | MapColor |
In-game maps |
| Dye colors | 16 × 4 contexts | DyeColor |
Armor, sheep, banners, beams, fireworks, signs |
| Biome tints | ~70 biomes | Biome defs + colormaps | Grass, leaves, vines, water |
| Status effects | ~36 | StatusEffect |
Particles, HUD icons |
| Text formatting | 16 + hex | Formatting |
Chat, signs, books |
| Spawn eggs | ~73 × 2 | SpawnEggItem |
Egg tint |
| Redstone wire | 16 levels | RedstoneWireBlock |
Wire tint |
| Sky/fog | ~6+ | Dimension/weather classes | Atmosphere |
| Particles | many | Individual classes | Particle tint |
| Utility constants | ~13 | Colors |
UI, debug, fallbacks |
Textures give artists per-pixel control — red terracotta has its own character, not just a red filter. Programmatic tinting handles cases where flexibility matters: biome-dependent grass, customizable armor, signal-strength redstone.
net.minecraft.block.MapColornet.minecraft.util.DyeColornet.minecraft.util.Formatting