Infinity Stone CoreWiki 8.0
Pugmeowla

These pages are for 8.0, which isn't out yet. The version on CurseForge and Modrinth is still 7.3. Read the 7.3 docs

Gauntlet Skin Files

A skin is one JSON file plus its textures. The mod generates the apply ability, skill tree entry, item look and render layers for you.

On this page
  1. What one file gives you
  2. Worked example: a Gold Gauntlet
  3. All fields
  4. Examples from the mod
  5. Extending the format (Java)

What one file gives you#

WhatHow
Apply ability and skill tree entryAdded to the infinity:infinity_gauntlet power where its {"infinity:generate": "gauntlet_skins"} placeholder sits.
Inventory item lookThe gauntlet's item model, retextured with the skin's icon texture.
Worn, main hand and ground lookA generated Palladium (GeckoLib) render layer, picked by the infinity:gauntlet_skin_layer abilities.
/infinity gauntlet skin set|clearSuggests the skin, and gives back its unlock item on clear.
infinity:gauntlet_skin conditionWorks 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.

data/infinity/gauntlet_skins/gold_gauntlet.json
{
  "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/infinity/textures/:

FileUsed for
models/gold_gauntlet.pngThe gauntlet worn, in the main hand and on the ground (same UV layout as models/gauntlet.png for geo/gauntlet.geo.json).
item/gauntlet_skins/gold_gauntlet.pngInventory item and skill tree icon (same layout as item/infinity_gauntlet_item.png).

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.

KeyDefaultMeaning
unlock_itemrequiredItem 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.
titleID in title caseName in the skill tree and ability bar.
descriptionlang key ability.infinity.gauntlet.<id>.descriptionText or text component shown in the skill tree.
apply_onright_clickright_click, or hold to apply as soon as the item is held.
apply_soundminecraft:block.anvil.landSound played on apply.
bar_colorblackAbility bar color (a Palladium ability color name).
hidden_in_barfalseHide the apply ability from the ability bar, for secret skins.
gui_positionnext 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.
iconinfinity:item/gauntlet_skins/<id>Skill tree icon and inventory item texture, as a sprite under textures/ (no textures/ or .png. A full texture path is accepted too).
render.textureinfinity:textures/models/<id>.pngModel texture.
render.modelinfinity:geo/gauntletGeckoLib model prefix, without .geo.json. _mainhand and _ground are appended for those positions, so a custom shape needs all three files.
render.glowofftrue adds an emissive layer using <texture>_glow.png. An object allows texture, enchantment_glint, conditions (Palladium conditions, e.g. night only) and positions (any of worn, mainhand, ground).
render.layersnone{"worn": "infinity_test_stone:my_layer", …}: use your own Palladium render layer for that position instead of the generated one.

Examples from the mod#

Minimal

netherite_gauntlet.json
{
  "title": "Netherite Gauntlet",
  "unlock_item": "minecraft:netherite_ingot",
  "gui_position": [0, 2.5]
}

Custom model + glint

dragon_gauntlet.json
{
  "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

midnight.json
{
  "title": "Midnight",
  "unlock_item": "minecraft:black_dye",
  "gui_position": [-1, 3.5],
  "render": {
    "glow": {
      "positions": ["worn"],
      "conditions": [ { "type": "palladium:night" } ]
    }
  }
}

Apply on hold

finger_gauntlet.json
{
  "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

nano_gauntlet.json
{
  "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.