What one file gives you#
| What | How |
|---|---|
| Apply ability and skill tree entry | Added to the infinity: power where its {"infinity: placeholder sits. |
| Inventory item look | The gauntlet's item model, retextured with the skin's icon texture. |
| Worn, main hand and ground look | A generated Palladium ( GeckoLib) render layer, picked by the infinity: abilities. |
/ | Suggests the skin, and gives back its unlock item on clear. |
infinity: condition | Works with the skin ID. |
The apply ability uses one unlock item (held in the main hand), sets the skin, plays the apply sound and runs apply_commands. It only
appears while the gauntlet has no skin, or one listed in can_replace.
Worked example: a Gold Gauntlet#
1. Definition. The file name is the skin ID.
{
"title": "Gold Gauntlet",
"unlock_item": "minecraft:gold_ingot",
"description": "Unlock by right-clicking with a Gold Ingot in your main hand."
}2. Textures, named after the ID, in assets/:
| File | Used for |
|---|---|
models/ | The gauntlet worn, in the main hand and on the ground (same UV layout as models/ for geo/). |
item/ | Inventory item and skill tree icon (same layout as item/). |
That's it. Restart the game. Missing textures or models fall back to the normal gauntlet's, with a warning in the log.
Instead of description you can add the lang key ability.infinity.gauntlet.gold_gauntlet.description.
All fields#
Only unlock_item is required.
| Key | Default | Meaning |
|---|---|---|
unlock_item | required | Item held in the main hand to apply the skin. One is consumed, and given back when the skin is removed. Must be a registered item, or the skin is skipped. |
title | ID in title case | Name in the skill tree and ability bar. |
description | lang key ability.infinity.gauntlet.<id>.description | Text or text component shown in the skill tree. |
apply_on | right_click | right_click, or hold to apply as soon as the item is held. |
apply_sound | minecraft: | Sound played on apply. |
bar_color | black | Ability bar color (a Palladium ability color name). |
hidden_in_bar | false | Hide the apply ability from the ability bar, for secret skins. |
gui_position | next free slot | [x, y] in the gauntlet's skill tree. Without it: the first free slot in rows of five (x = −1 to 1, step 0.5) from y = 2.5. |
can_replace | [] | Skin IDs this skin may be applied over. Normally the gauntlet must have no skin. |
apply_commands | [] | Extra commands run as the player after applying. |
icon | infinity: | Skill tree icon and inventory item texture, as a sprite under textures/ (no textures/ or .png. A full texture path is accepted too). |
render.texture | infinity: | Model texture. |
render.model | infinity: | GeckoLib model prefix, without .geo.json. _mainhand and _ground are appended for those positions, so a custom shape needs all three files. |
render.glow | off | true adds an emissive layer using <texture>_. An object allows texture, enchantment_, conditions ( Palladium conditions, e.g. night only) and positions (any of worn, mainhand, ground). |
render.layers | none | {"worn": "infinity_: use your own Palladium render layer for that position instead of the generated one. |
Examples from the mod#
Minimal
{
"title": "Netherite Gauntlet",
"unlock_item": "minecraft:netherite_ingot",
"gui_position": [0, 2.5]
}Custom model + glint
{
"title": "Dragon Gauntlet",
"unlock_item": "minecraft:dragon_head",
"bar_color": "purple",
"gui_position": [0, 4],
"render": {
"model": "infinity:geo/dragon_gauntlet",
"glow": { "enchantment_glint": true }
}
}Glow at night
{
"title": "Midnight",
"unlock_item": "minecraft:black_dye",
"gui_position": [-1, 3.5],
"render": {
"glow": {
"positions": ["worn"],
"conditions": [ { "type": "palladium:night" } ]
}
}
}Apply on hold
{
"title": "Gauntlet with Fingers",
"unlock_item": "minecraft:chicken",
"apply_sound": "minecraft:entity.generic.eat",
"apply_on": "hold",
"gui_position": [1, 2.5],
"render": {
"model": "infinity:geo/finger_gauntlet",
"texture": "infinity:textures/models/gauntlet.png"
}
}Replace + commands
{
"title": "Nano Gauntlet Skin",
"unlock_item": "palladium:vibranium_flux_capacitor",
"apply_sound": "infinity:nano_gauntlet",
"bar_color": "red",
"gui_position": [-1, 2.5],
"can_replace": ["gauntlet_burn"],
"apply_commands": ["tag @s remove burn_texture"]
}Extending the format (Java)#
GauntletSkin keeps the raw JSON (skin.json), so new code can read a new key without changing the parser. Apply abilities
are built in GauntletSkinAbilities and render layers in GauntletSkin.renderLayerJson.

Palladium
GeckoLib