Blame
|
1 | # Resource Pack Compiler |
||||||
| 2 | ||||||||
| 3 | ||||||||
| 4 | > **Documentation baseline:** VoxelCore `main` at `452b569` ยท 14 September 2026. |
|||||||
| 5 | > **Repository:** [https://github.com/VoxelHorizons/VoxelCore](https://github.com/VoxelHorizons/VoxelCore) |
|||||||
| 6 | ||||||||
| 7 | ||||||||
| 8 | `voxelcore-pack` compiles authored assets plus the active render-allocation authority into deterministic Java resource-pack ZIP files. |
|||||||
| 9 | ||||||||
| 10 | ## Exact pack targets |
|||||||
| 11 | ||||||||
| 12 | | Target | Mode | Pack metadata format | |
|||||||
| 13 | |---|---|---:| |
|||||||
| 14 | | `mc-1.12.2` | legacy durability/damage predicate | 3 | |
|||||||
| 15 | | `mc-1.13.2` | legacy durability/damage predicate | 4 | |
|||||||
| 16 | | `mc-1.14.4` | numeric Custom Model Data | 4 | |
|||||||
| 17 | | `mc-1.19.4` | numeric Custom Model Data | 13 | |
|||||||
| 18 | | `mc-1.20.5` | numeric Custom Model Data | 32 | |
|||||||
| 19 | | `mc-1.21.4` | modern item-model / structured CMD | 46 | |
|||||||
| 20 | | `mc-26.2` | modern item-model / structured CMD | **88.0** | |
|||||||
| 21 | ||||||||
| 22 | The 26.2 target uses modern `pack.mcmeta` range metadata (`min_format` and `max_format`) rather than the legacy `pack_format` shape used by older targets. |
|||||||
| 23 | ||||||||
| 24 | ## Build output |
|||||||
| 25 | ||||||||
| 26 | Runtime pack builds are written to: |
|||||||
| 27 | ||||||||
| 28 | ```text |
|||||||
| 29 | plugins/VoxelCore/build/resource-packs/<target>.zip |
|||||||
| 30 | ``` |
|||||||
| 31 | ||||||||
| 32 | Use: |
|||||||
| 33 | ||||||||
| 34 | ```text |
|||||||
| 35 | /voxelcore admin pack validate [target] |
|||||||
| 36 | /voxelcore admin pack build [target] |
|||||||
| 37 | ``` |
|||||||
| 38 | ||||||||
| 39 | If the target is omitted, VoxelCore only auto-selects when the current server version has an **exact** registered pack target. Otherwise the command asks for an explicit target. |
|||||||
| 40 | ||||||||
| 41 | ## Determinism |
|||||||
| 42 | ||||||||
| 43 | The compiler writes sorted entries with fixed ZIP metadata so identical authoring + allocation state produces identical archive bytes. This improves reproducibility and makes generated differences meaningful. |
|||||||
| 44 | ||||||||
| 45 | ## Shared allocation authority |
|||||||
| 46 | ||||||||
| 47 | Runtime item creation and pack compilation both use `render-allocations.yml`. Numeric CMD values and structured semantic-key indices therefore cannot independently drift between server-side stacks and the generated pack. |
|||||||
| 48 | ||||||||
| 49 | ## Asset validation |
|||||||
| 50 | ||||||||
| 51 | Compiler validation checks model ownership/dependencies and required authored model assets. Generated Minecraft glue is written to build output; it is not expected to be manually authored inside a content pack. |
|||||||