Skip to content

Armor Models

In Catharsis we support a way to define custom armor models for items. This allows you to create dynamic textures for armor that can change based on certain properties,

You can define armor models in an armor definition file in assets/<namespace>/catharsis/armors/<id>.json. Similarly to item models you can also declare it for skyblock ids ie. assets/skyblock/catharsis/armors/<id>.json.

Armor models support some of the same model types as item models such as minecraft:condition and minecraft:range_dispatch as well as armor specific ones such as catharsis:texture.

Json format

Root object
  • model: Set the Armor Model to use.

Armor Model

An Armor Model object
  • type: One of minecraft:condition, minecraft:range_dispatch, or catharsis:texture.
  • Additional fields depending on the value of type, see the respective model type documentation for more details.

Available Armor Model Types

Texture (catharsis:texture)

Render a specific texture for the armor.

Root texture armor model object
  • type: catharsis:texture
  • texture: The texture to use for the armor. This should be a resource location pointing to a PNG file.

Condition (minecraft:condition)

Render an armor model based on a boolean property.

Root condition armor model object
  • type: minecraft:condition
  • property: type of boolean property.
  • on_true: The armor model object when the property is true.
  • on_false: The armor model object when the property is false.

Range Dispatch (minecraft:range_dispatch)

Render an armor model based on a numeric property. Will select last entry with a threshold less than or equal to the property value.

Root range_dispatch armor model object
  • type: minecraft:range_dispatch
  • property: type of numeric property.
    • You can find a list of all available item model numeric properties on the Minecraft wiki at Item Model Properties. Additionally, you can find a list of all Catharsis custom item properties in the Catharsis Range Properties documentation.
  • Additional fields depending on the value of numeric property type.
  • scale: Optional. Will be used to scale the property value before comparing it to thresholds. Default is 1.0.
  • entries:
    • Entry object
      • threshold: The threshold value for this entry.
      • model: The armor model object to use for this threshold.
  • fallback: Optional. The armor model object to use if no thresholds are met.
    • Will render as a missing texture if fallback is needed but not provided.