Skip to content

palette.yml

The file is plugins/PixelPainter/palette.yml. Its blocks section maps Bukkit material names to quoted six-digit sRGB colors. The bundled file contains 335 material entries derived from representative Minecraft 1.21.11 textures; it contains numeric colors, not redistributed texture images.

blocks:
WHITE_CONCRETE: '#CFD5D6'
BLACK_CONCRETE: '#080A0F'
PALE_OAK_PLANKS: '#E4DAD8'
RESIN_BRICKS: '#CE5818'

This is an excerpt. Preserve the rest of the file when adding entries. Use uppercase Bukkit names and reload with /pp reload after editing.


For an available material, the loader requires:

  • A solid block without gravity.
  • An accepted opaque block, leaf block or supported transparent cube.
  • No block-entity state.
  • A color matching the quoted #RRGGBB format.

Supported transparent cubes include glass, tinted/stained glass, packed ice and blue ice. Leaves receive persistent=true in their placement data. Block entities and gravity blocks are rejected before they can be selected.

Unknown materials are skipped, allowing a palette file to be shared across supported server versions. An explicit palette.include material must still be available after filtering; missing inclusions reject reload instead of silently reducing the requested allowlist.

An empty final palette or malformed available entry rejects loading. Startup fails closed if no valid initial configuration can be published.


Bundled familyEntries
Logs ending in _LOG18
Wood ending in _WOOD18
Leaves11
Glazed terracotta16
Ores18
Stained glass16

These are selected family counts, not an exhaustive breakdown of all 335 materials. Hyphae, stems, concrete, wool, masonry, copper and other families provide additional entries.

The command family terracotta uses the _TERRACOTTA suffix, which includes glazed variants. The family named all respects global filters rather than ignoring config.yml.


Matching measures Oklab distance between source pixels and these representative colors. It does not sample a live block under the current world’s light.

Logs and columns may show different top/end textures. Foliage tint changes with the biome, and glass depends on blocks behind it. Copper can weather naturally. Try a concrete-only palette for a more uniform surface, or exclude materials that do not suit the intended result.

The shipped palette avoids unsuitable default candidates such as TNT, gravity blocks and block entities. Extending the file is an administrator action: choose materials whose gameplay behavior you understand, not merely any material that passes structural validation.


Keep color definitions here and filtering in config.yml:

palette:
include: []
exclude:
- GLASS
- TINTED_GLASS

This example excludes those two names only; it does not exclude stained-glass variants automatically. Lists use exact names, not wildcard patterns. See config.yml and palettes and dithering.