PackEngine
PackEngine lets you add animated first-person items and wearable 3D armor to Minecraft with JSON files instead of Java. You describe an item’s model, texture and animations, what it costs to use, and what happens at each point of its use animation. PackEngine draws it, plays it and runs the actions.
Most medicines, food, drinks, injectors and rechargeable tools can be built this way. When the built-in actions aren’t enough, an item can run a command, call Legendary Survival Overhaul’s thirst and limb health, or use an action type another mod registers.
This wiki is for pack authors and for developers building on PackEngine. If you only want to install
a pack, put its folder or zip in .minecraft/packengine/ and restart the game.
Supported versions
| Minecraft | Loaders | Java |
|---|---|---|
| 1.20.1 | Forge, Fabric | 17 |
| 1.21.1 | NeoForge, Fabric | 21 |
| 26.1.2 | NeoForge, Fabric | 25 |
| 26.2 | NeoForge, Fabric | 25 |
The current version is 1.1.0.
Pages
- Packs: the folder layout,
pack.json, packs inside a mod jar, data files. - Items: a minimal item, every core field, names and translations, first-person arms.
- Animations and sounds: clip fields, staged clips, sounds, durations, third-person poses.
- Using items: charges, when a use commits, cooldowns, use requirements.
- Events: the event timeline, timing and filters, every action type.
- Legendary Survival Overhaul: the optional thirst and limb healing actions.
- Armor: wearable pieces from the
armor/folder and their models. - Java API: custom actions, extra pack folders, addon-triggered animations, armor hooks.
- Full example and limits: one item using most features, and what gets validated.
Conventions used on every page
Ticks. Durations and event times are in ticks. There are 20 ticks per second.
Health. Health amounts are in half-hearts, as in vanilla. "amount": 4 is two hearts.
Resource locations. A bare name such as medkit_use resolves inside your own pack’s namespace.
Anything with a namespace, such as minecraft:item.armor.equip_leather, points wherever it says.
Optional fields. A field is optional unless its table says it’s required.