Pommel - Held Item Models
Pommel is a Fabric mod that empowers resource pack creators to replace the models of items when held in a character's hand. Similar to how the spyglass and trident are displayed in the base game, you can now customize the appearance of any item in the player's hands.
Dreaming of a 3D mace, a flaming greatsword, or an ancient magical staff while keeping the original item in the inventory? With Pommel, all this becomes reality! The mod is also fully compatible with items from other modifications.
For Resource Pack Developers
The mod adds the following item predicates:
pommel:is_held— activates when the item is held in first or third personpommel:first_third_person— distinguishes display in first and third person (0.5 — first person, 1.0 — third person)pommel:is_offhand— item is in the left handpommel:is_fixed— item is placed in a framepommel:is_head— item is worn on the head in the helmet slotpommel:is_ground— item is lying on the groundpommel:is_thrown— throwable items in flight (eggs, snowballs, ender pearls, and others)pommel:is_used— item is being used (holding right mouse button)pommel:item_use— tracks the duration of item use, such as when consuming foodpommel:is_submerged— item is submerged in water (works only withminecraft:water)pommel:is_enchanted— item is enchantedpommel:is_misc_entity_holding— items in the hands of villagers, witches, pandas, and foxes
The is_using and is_submerged predicates also change the item model in the interface.
JSON Example
{
"parent": "item/handheld",
"textures": {
"layer0": "minecraft:item/2d_model_texture"
},
"overrides": [
{ "predicate": { "pommel:is_held": 1.0 }, "model": "minecraft:item/my_held_item" },
{ "predicate": { "pommel:is_fixed": 1.0 }, "model": "minecraft:item/my_framed_item" },
{ "predicate": { "pommel:is_head": 1.0 }, "model": "minecraft:item/my_worn_item" },
{ "predicate": { "pommel:is_ground": 1.0 }, "model": "minecraft:item/my_ground_item" }
]
}
Apple Eating Example
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:item/apple"
},
"overrides": [
{ "predicate": { "pommel:is_held": 1 }, "model": "minecraft:item/held_items/apple_3d" },
{ "predicate": { "pommel:item_use": 0.25 }, "model": "minecraft:item/apple_eat_0" },
{ "predicate": { "pommel:is_held": 1, "pommel:item_use": 0.25 }, "model": "minecraft:item/held_items/apple_eat_0_3d" },
{ "predicate": { "pommel:item_use": 0.50 }, "model": "minecraft:item/apple_eat_1" },
{ "predicate": { "pommel:is_held": 1, "pommel:item_use": 0.50 }, "model": "minecraft:item/apple_eat_1_3d" },
{ "predicate": { "pommel:item_use": 0.75 }, "model": "minecraft:item/apple_eat_2" },
{ "predicate": { "pommel:is_held": 1, "pommel:item_use": 0.75 }, "model": "minecraft:item/apple_eat_2_3d" }
]
}
In this example, the apple will sequentially change models from apple_eat_0 to apple_eat_2 during consumption. When held in hand, the 3D version activates with unique models for each stage of eating.
Additional Features
You can organize models in separate folders and change parent models for better structuring.
Frequently Asked Questions
Compatibility with CIT
CIT Resewn and Optifine work correctly provided that CIT replaces the item model, not just the texture.
Compatibility with Vanilla Predicates
Pommel is fully compatible with vanilla predicates such as Custom Model Data and bow Pulling. Remember to specify pommel:is_held for models with custom_model_data.
Compatibility with Eating Animation Mod
Eating Animation allows replacing models when consuming items using Pommel predicates. You can also use pommel:item_use for a similar effect without installing additional mods.
Working with Items from Other Mods
Use the same JSON structure, replacing minecraft with the identifier of the corresponding mod.
Troubleshooting
Check the JSON code for errors. Most development environments automatically detect syntax errors. For complex cases, consult the developer community.