Recolouring the sky is six files — and all eight moon phases are one of them
A sky pack replaces sun.png, moon_phases.png, clouds.png, rain.png, snow.png and end_sky.png at exact sizes. The moon is a single 128×64 strip, not eight textures.
Recolour packs fail for boring reasons: the wrong path, the wrong canvas size, or eight files where the game wants one. These are the exact targets, taken from the recolour tool on this page — which writes them — so the paths and sizes here are the ones that actually load.
The sky is six files
Everything the sky is made of lives under assets/minecraft/textures/environment/:
| file | size |
|---|---|
sun.png | 32 × 32 |
moon_phases.png | 128 × 64 |
clouds.png | 256 × 256 |
rain.png | 64 × 256 |
snow.png | 64 × 256 |
end_sky.png | 128 × 128 |
Replace all six and the sky is yours. There is nothing else — no separate horizon, no gradient file. Sky colour beyond these comes from the biome, not from a texture.
The moon is one strip, not eight textures
This is the mistake worth naming. moon_phases.png is a single 128 × 64 image holding all eight phases in a 4 × 2 grid of 32 × 32 cells. The game picks the cell for tonight's phase.
So there is no moon_full.png, and a pack that ships eight separate moon files ships eight files Minecraft never reads. If your moon renders as a quarter of the picture you drew, the canvas is the problem: you painted one moon at 128 × 64 instead of eight at 32 × 32 each.
Rain and snow are tall, not square
Both are 64 × 256 — four times taller than wide. That is because they are a vertical streak tiled down the screen, not a particle sprite. Painting them square gets a stretched smear, and it is the second most common size mistake after the moon.
The glint is two files with different jobs
The enchantment shimmer is not one texture:
misc/enchanted_glint_item.png— the sheen on itemsglint_armor.png— the sheen on worn armour
Recolour one and the other keeps vanilla's purple, which reads as a bug in your own pack. If you are changing the glint, change both or neither.
Fonts are a JSON plus a sheet
Font work needs two files together:
font/default.json— the provider list, which says which sheet supplies which charactersfont/ascii.png— the sheet itself
Swapping only the PNG keeps vanilla's character mapping, so glyphs land in the wrong slots. The JSON is what tells the game where each character lives, and it has to agree with the image you shipped.
The general rule
A recolour pack is a path-for-path override: put a file at the same path vanilla uses and yours wins. That is why the paths above matter more than the artwork — a beautiful texture at textures/enviroment/sun.png loads nothing at all, and the game will not tell you why.