This page is about the stat type format since 1.19.2. For the format from 1.16 to 1.18.2, see Stat Types 1.16-1.18.

Both material stats and materials traits make use of stat types as part of their definition. Stat types are often represented by a stat type ID, which takes the form of a standard resource location. The following stat types exist natively in Tinkers’ Construct. Most stat types exist within a group, which can be used to simply adding traits to a specific type of tool.

Many stat types are repairable, meaning that a matching material can be used to repair the tool. During repair, the durability stat of the first matching repairable stat type determines the amount repaired.

Melee/Harvest

Melee/harvest stats refer to stats for melee weapons and harvest tools. The group has a stat type ID of tconstruct:melee_harvest, which applies default traits to all types in the group.

Can datagen using HeadMaterialStats.

Head stats are repairable, and define the primary stats for all melee and harvest tools. This stat type is used for parts such as pickaxe heads and sword blades. Head stats apply all values additively, canceling the default stat value. Scaling will directly multiply the values for the given head.

Head stats have stat type ID tconstruct:head and the following format:

  • tconstruct:head (Object): The stats object.
    • durability (Integer): Durability of the tool.
    • melee_attack (Number): Damage the tool will deal when used as a melee weapon, in half hearts. If unset, defaults to 1.
    • mining_speed (Number): Mining speed when the tool is used to break blocks. See the Minecraft Wiki for an explanation of the values. If unset, defaults to 1.
    • mining_tier (Mining Tier): Determines the list of blocks where the tool is considered “effective”. If unset, defaults to minecraft:wood. For a list of valid values, see mining tiers.

Handle

Can datagen using HandleMaterialStats.

Handle stats define multipliers for various stats on melee and harvest tools. This type is used for parts such as tool handles and tough handles. Handle stats apply using the “percent formula”, meaning all stats are summed, then the tool’s stat is multiplied by the sum plus 1 (e.g. if two handles add a stat of 0.25 and 0.1, the resulting multiplier is 1.35). Scaling the stat will directly multiply the value, and the stats can be negative to reduce the stat.

Handle stats have stat type ID tconstruct:handle and the following format:

  • tconstruct:handle (Object): The stats object.
    • durability (Number): Percent bonus to durability. If unset, defaults to 0.
    • mining_speed (Number): Percent bonus to the tool’s mining speed. If unset, defaults to 0.
    • melee_damage (Number): Percent bonus to the tool’s damage when used as a melee weapon. If unset, defaults to 0.
    • melee_speed (Number): Percent bonus to the tool’s attack speed when used as a melee weapon. If unset, defaults to 0.

Binding

Can datagen using StatlessMaterialStats.

The binding stat type has no stats, simply applying their trait. Defining this type on a material is required to allow it to craft bindings. Binding stats have stat type ID tconstruct:binding, defined as an empty object.

Ranged

Ranged stats refer to stats for ranged tools such as longbows or crossbows. The group has a stat type ID of tconstruct:ranged, which applies default traits to all types in the group.

Limb

Can datagen using LimbMaterialStats.

Limb stats are repariable, and define the primary stats for ranged weapons such as longbows or crossbows. Limb stats apply all values additively, with durability canceling the default stat value. Scaling will directly multiply the values for the given limb.

Limb stats have stat type ID tconstruct:limb and the following format:

  • tconstruct:limb (Object): The stats object.
    • durability (Integer): Durability of the tool.
    • draw_speed (Number): Draw speed of the tool. Higher values means the tool takes shorter to charge up or pull back.
    • velocity (Number): Velocity of the projectile. Determines not just speed, but also acts as a multiplier on arrow damage.
    • accuracy (Number): Accuracy bonus for projectiles fired by this weapon. Determines how the projectile drifts from the crosshair.

Grip

Can datagen using GripMaterialStats.

Grip stats define bonus for ranged weapons such as longbows or crossbows. Each stat in the grip scales differently.

Grip stats have stat type ID tconstruct:grip and the following format:

  • tconstruct:grip (Object): The stats object.
    • durability (Number): Percent bonus to durability. If unset, defaults to 0.
    • accuracy (Number): Accuracy bonus for projectiles fired by this weapon. Determines how the projectile drifts from the crosshair.
    • melee_damage (Number): Damage the tool will deal when used as a melee weapon, in half hearts. If unset, defaults to 0.

Bowstring

Can datagen using StatlessMaterialStats.

The bowstring stat type has no stats, simply applying their trait. Defining this type on a material is required to allow it to craft bowstrings. Binding stats have stat type ID tconstruct:bowstring, defined as an empty object.

Armor

Armor stats refer to stats for plate armor and plate shields. The group has a stat type ID of tconstruct:armor, which applies default traits to all types in the group.

Plating

Can datagen using PlatingMaterialStats.

Plating refers to a set of 5 repairable stat types that all have the same format. Generally, a tool will have just 1 of these 5 stat types. Plating stats apply all values additively, canceling the default stat value. Scaling will directly multiply the values for the given head.

Plating stats have the following format:

  • tconstruct:plating_<type> (Object): The stats object.
    • durability (Integer): Durability of the tool. Generally, will be set to a durability factor which is multiplied by each piece’s durability multiplier.
    • armor (Number): Armor value of the part. If unset, defaults to 0. Not supported on tconstruct:plating_shield.
    • toughness (Number): Toughness value of the part. Generally the same value across all pieces. If unset, defaults to 0.
    • knockback_resistance (Number): Knockback resistance of the part. Generally the same value across all pieces. If unset, defaults to 0.

The following 5 plating stat types exist:

  • tconstruct:plating_helmet: Stat type for helmet plating. Generally has a durability multiplier of 11 and a max armor value of 2.
  • tconstruct:plating_chestplate: Stat type for chest plating. Generally has a durability multiplier of 16 and a max armor value of 7.
  • tconstruct:plating_leggings: Stat type for leg plating. Generally has a durability multiplier of 15 and a max armor value of 5.
  • tconstruct:plating_boot: Stat type for boot plating. Generally has a durability multiplier of 13 and a max armor value of 2.
  • tconstruct:plating_shield: Stat type for shield plating. Generally has a durability multiplier of 18 and does not support armor values.

The max armor values are to avoid armor exceeding 20 when considering the diamond modifier adding +1 armor.

Maille

Can datagen using StatlessMaterialStats.

The maille stat type has no stats, simply applying their trait. Defining this type on a material is required to allow it to craft maille. Maille stats have stat type ID tconstruct:maille, defined as an empty object.

Repair Kit

Can datagen using StatlessMaterialStats.

The repair kit stat type has no stats, and has no effect when used on a material for traits. Defining this stat type on a material will allow it to craft repair kits, though note that repair kits are craftable if the material has any repairable stats. Repair kit stats have stat type ID tconstruct:repair_kit, defined as an empty object.

The primary use is for specialized tools to allow repairing with materials that are not typically a repair part, such as repairing traveler’s gear with leather.

Skull

Can datagen using SkullStats.

The skull stat type is a repairable stat type used to define stats and traits for slimeskull variants. Unlike other stat types, there are no skull “tool parts”, rather the recipe for slime skulls uses mob heads directly. As a result, many of the materials associated with skull stats may seem random since they are just chosen for the sake of a repair material. If a tool somehow managed to get multiple skull stat types, the values are added with respect to the scale.

Limb stats have stat type ID tconstruct:skull and the following format:

  • tconstruct:skull (Object): The stats object.
    • durability (Integer): Durability of the tool.
    • armor (Integer): Armor value of the skull. Generally should not exceed 2 to prevent armor values from going over 20.