Small 3D props become sprites, the way DOS-era 3D games drew them. Billy Boarding is a resource pack that swaps the models of cakes, flower pots, anvils, bells, brewing stands, cactus, crops and fire for flat cross geometry textured with sprites. Mode 13h then billboards them: each sprite turns to face the camera.
- Opinionated. One look, no variants or options.
- Vanilla JSON only. Blockstates, item definitions (1.21.4+), block
models and textures. No OptiFine CEM/CTM, no mod-only features beyond the
render_typehint (ADR 0002). - Item icons as sprites. Reuse the vanilla item icon when it reads well; draw new art only where no icon fits (cake bites, candle cakes, anvils, pot layers).
- Still usable without the shader. Without Mode 13h the blocks are plain crossed sprites, like vanilla flowers. Nothing goes invisible or garbled.
| Target | Status |
|---|---|
Minecraft 1.20.1 (pack_format 15) |
Main target; the base assets/ |
| Minecraft 1.21.1 (34) | Main target; same files as 1.20.1 |
| Other releases, 1.20.2 to 26.3 (18–97.1) | Best effort, checked offline; from 1.21.4 overlays add item definitions and newer pots (ADR 0008) |
| Newer than 26.3 | Marked incompatible until max_format is raised |
Mode 13h with BILLY_BOARDING on, via Iris or Oculus |
Billboards |
| Vanilla, or any shader without the contract | Static crossed sprites |
| Forge/NeoForge | render_type honored |
| Fabric, vanilla | render_type ignored; the block's own render layer applies |
| Block | Model | Sprite |
|---|---|---|
| Cake, bites 0–6 | cross | new art, one per bite |
| Candle cake, all colors, lit/unlit | cross | new art; every color shows the plain candle for now |
| Flower pot, empty | cross, lowered 3px | vanilla item/flower_pot |
| 34 potted plants | three crosses: back, plant, front, 0.05px apart in depth (ADR 0007) | pot layers are new art; plant is the vanilla plant texture (fern tinted, bamboo uses item/bamboo, cactus block/cactus_side for now) |
| Potted pale oak sapling, closed and open eyeblossom (1.21.4+) | as the other pots, in overlay_1_21_4 |
vanilla plant textures; the open eyeblossom adds its emissive layer at light 15 |
| Potted golden dandelion (26.1+) | as the other pots, in overlay_26_1 |
vanilla plant texture |
| Potted poplar sapling (26.3+) | as the other pots, in overlay_26_3 |
vanilla plant texture |
| Anvil, chipped, damaged | cross; item model flat too (1.21.4+ via overlay_1_21_4/…/items/) |
new art (item/*_anvil_flat) |
| Bell, floor/ceiling | cross (floor adds a legs cross) | vanilla item/bell; legs are new art |
| Bell, single/double wall | flat plate in front of a stem plate, not billboarded (ADR 0007) | vanilla item/bell; stems are new art |
| Bell block entity | hidden | transparent entity/bell/* |
| Brewing stand | cross base + one cross per bottle | vanilla item/brewing_stand; bottles are new art |
| Cactus | cross | vanilla block/cactus_side |
| Wheat, carrots, potatoes, beetroots, nether wart | cross, via the block/crop parent |
vanilla crop textures |
| Fire, soul fire (floor) | cross | vanilla fire textures |
| Torchflower crop | vanilla cross, no file here | vanilla textures |
| Pitcher crop, ages 1–4 | 3D bulb box + billboarded cross (ADR 0007); age 0 and top ages 0–2 stay vanilla | vanilla textures |
To do once damikdevv's art lands (see Art needed). Until then they keep their vanilla models and stay out of 10990. Each becomes layered crosses (ADR 0006, depths per ADR 0007):
- Candles, 1–4, plain and all 16 colors, lit and unlit.
- Candle cakes, every color (now all show the plain candle).
- Sea pickles, 1–4, alive and dead.
- Turtle eggs, 1–4, hatch 0–2.
- Sniffer egg, hatch 0–2.
- Dragon egg.
- Campfire and soul campfire, lit and unlit.
- Heavy core (1.20.5+).
- Dried ghast, hydration 0–3 (1.21.6+); facing ignored.
- Signs: the Flatter Signs mod handles them (Mode 13h ID 10956).
- Copper golem statue: a block entity drawn with the mob's texture, so it can't be hidden the way the bell is.
- Shelf mushroom: wall-mounted.
- Leaf litter, wildflowers, resin clump: already flat.
- New cross flora (red shrub, golden dandelion, poplar sapling, pale hanging moss…): already crosses; billboarding them is Mode 13h's 10950 list.
Flower pot files are generated by tools/gen_flower_pots.sh (ADR 0004).
ADR 0003. The shader side lives in mode-13h: shaders/block.properties
and shaders/gbuffers_terrain.vsh.
- Every billboarded block is listed under ID 10990 in Mode 13h's
block.properties, gated by itsBILLY_BOARDINGoption (default off). - Its model must be vanilla
block/crossgeometry: two vertical planes from 0.8 to 15.2, rotated 45° around y withrescale. The shader keeps the face whose normal points to (+x, +z), drops the other diagonal faces, and rotates it to face the camera. - Flat faces (ADR 0007): faces with axis-aligned or vertical normals are drawn as they are, not billboarded, but still get the 10990 alpha discard. This is how wall bells and the pitcher bulb live in 10990.
- Layer depth (ADR 0007): a cross face pushed
dalong its own normal draws in front of the depth 0 cross from every side, shaders on or off. Mode 13h readsdin whole 0.05 px steps (integer ranks). Layers that overlap get different depths (pot layers ±0.05), unless they have identical geometry (brewing stand bottles), which draws in multipart order. - The shader finds the quad center from UVs, so each face maps the full sprite (uv 0–16) and sprites are 16×16. Vertical offsets are fine (pots).
- Every bell state is in 10990: floor and ceiling bells as crosses, wall bells as flat faces.
- Changing which blocks have cross models means changing the 10990 list in the same session. Renumbering 10990 is a breaking change on both sides.
- Anvils.
item/*_anvil_flatare identical black placeholder silhouettes until the art lands. - Colored candle cakes. Every color uses the plain candle cake sprite until the layered candles land (ADR 0006).
- Potted cactus. The plant layer is
block/cactus_side, a full-width green square, untilpotted_cactus.pnglands. - Candles, sea pickles, turtle eggs, sniffer egg, dragon egg, campfires. Vanilla until their art lands (Waiting for art).
- Fabric render layers. Fabric ignores
render_type, so blocks that vanilla draws in the solid layer (cakes, candle cakes, anvils, bells, later the eggs) show the sprite's transparent pixels as black or brown. Mode 13h fixes this with an alpha discard on 10990; without the shader they stay that way. Verified in game on 1.20.1 Fabric + Iris. - Moving blocks. Blocks moved by pistons are drawn through the block entity path, so they stay static crosses while moving.
- Pale oak pot on 1.21.2–1.21.3. Stays vanilla: pale oak was
experimental there, and its pot lives in
overlay_1_21_4. - Versions after 1.20.1. Checked offline against each version's vanilla
file list (
tools/check.sh); tested in game only on 1.20.1 so far.
Each item gets an ADR if it decides something new.
- R1 — Close the gaps above as the art in Art needed lands, one block family per task: cross models here, the 10990 entry in Mode 13h.
- R2 — 1.21.1 and newer: done. One zip for 1.20.1 to 26.3 with overlays (ADR 0008).
- R3 — First Modrinth release: done. 1.0.0, published by
tools/release.sh(ADR 0009).
For damikdevv. Every sprite is 16×16 with a transparent background, drawn
standing on the bottom edge (the ground line of a full-width cross). Files go
in assets/minecraft/textures/block/ unless noted. Layers stack as in ADR
0006.
| Block | Files | Count | Notes |
|---|---|---|---|
| Candles | candle_<n>.png, <color>_candle_<n>.png, n = 1..4 |
68 | Candles only, no flame. Colors may be palette swaps of one drawing. |
| Candle flames | candle_flame_<n>.png, n = 1..4 |
4 | Lit overlay. Flame positions match the candle sprites of the same n. |
| Candle cakes | none new | 0 | cake_bites0 + <color>_candle_1 + (lit) candle_flame_1, raised to the top of the cake. |
| Sea pickle | sea_pickle_<n>.png, dead_sea_pickle_<n>.png, n = 1..4 |
8 | Waterlogged = alive. |
| Turtle egg | turtle_egg_<n>_<hatch>.png, n = 1..4, hatch = 0..2 |
12 | |
| Sniffer egg | sniffer_egg_<hatch>.png, hatch = 0..2 |
3 | Hatch 0 may reuse item/sniffer_egg. |
| Dragon egg | dragon_egg.png |
1 | |
| Campfire | campfire_logs.png, campfire_logs_lit.png, soul_campfire_logs_lit.png |
3 | The fire layer reuses the animated vanilla block/campfire_fire and block/soul_campfire_fire. |
| Potted cactus | potted_cactus.png |
1 | A narrow cactus; becomes the plant layer. |
| Anvils | textures/item/{anvil,chipped_anvil,damaged_anvil}_flat.png |
3 | Replace the placeholders; same file names. |
| Heavy core | heavy_core.png |
1 | 1.20.5+. |
| Dried ghast | dried_ghast_hydration_<n>.png, n = 0..3 |
4 | 1.21.6+. One sprite per hydration level; facing is ignored. |
Once the candle cakes are layered, candle_cake_plain_{lit,unlit}.png are
unused and get deleted.
OptiFine CEM/CTM, mod-specific models or blocks, 3D or voxel models, options or variants of the look.
- GitHub
Hand-Lock/billy-boarding; Modrinth https://modrinth.com/resourcepack/billy-boarding (ADR 0009). README.md is the Modrinth page body. - License CC BY-SA 4.0. Models and blockstates by HandLock_, textures by damikdevv.