Skip to content

Durability & Quality

The durability and quality systems control item wear mechanics and rarity classification. Durability determines how long items last before breaking, while quality is a full asset system that controls tooltip appearance, slot textures, text colors, and drop visual effects.

FieldTypeDefaultDescription
MaxDurabilityfloatMaximum durability points
DurabilityLossOnHitfloatDurability lost per use

Weapons lose durability when hitting targets. The DurabilityLossOnHit value is subtracted from current durability on each successful hit.

Weapon_Sword_Mithril.json (durability section)
{
"MaxDurability": 220,
"DurabilityLossOnHit": 0.21
}

Calculation: Hits until broken = MaxDurability / DurabilityLossOnHit

  • Mithril Sword: 220 / 0.21 = ~1048 hits

Tools use a more complex durability system with per-block-type loss rates.

Tool_Pickaxe_Mithril.json (durability section)
{
"MaxDurability": 400.0,
"Tool": {
"DurabilityLossBlockTypes": [
{
"BlockSets": ["Stone", "Rock", "Ores", "Soil"],
"DurabilityLossOnHit": 0.25
}
]
}
}

Tool-specific properties:

FieldTypeDescription
DurabilityLossBlockTypesarrayPer-block-set durability loss
BlockSetsarrayBlock categories that trigger this loss rate
DurabilityLossOnHitfloatLoss when mining these blocks

Armor pieces have durability that decreases when taking damage.

Armor_Mithril_Chest.json (durability)
{
"MaxDurability": 180
}
MaterialMaxDurabilityDurabilityLossOnHitApproximate Hits
Scrap500.21~238
Crude800.21~381
Copper1000.21~476
Iron1200.21~571
Cobalt1500.21~714
Adamantite1800.21~857
Mithril2200.21~1048
MaterialMaxDurability
Crude100
Copper150
Iron200
Steel280
Mithril400

Quality isn’t a hardcoded enum — it’s a full asset system. Each quality tier is a JSON asset (ItemQuality) loaded into its own AssetStore, which means modders can define entirely new quality tiers beyond the defaults. Each quality asset defines its own tooltip textures, slot textures, text color, localization, and visual behavior.

FieldTypeDescription
QualityValueintOrdering value (0 = lowest quality)
ItemTooltipTexturestringTooltip background texture path
ItemTooltipArrowTexturestringTooltip arrow texture path
SlotTexturestringInventory slot texture
BlockSlotTexturestringSlot texture for block-type items
SpecialSlotTexturestringSlot texture for consumables/usables
TextColorColorItem name color in inventory
LocalizationKeystringLocalized quality name
VisibleQualityLabelbooleanShow quality label in tooltip
RenderSpecialSlotbooleanUse special slot for consumables
HideFromSearchbooleanHide from creative library search
ItemEntityConfigobjectDrop visual config (glow, particles)

Items reference a quality by its asset ID string (e.g. "Quality": "Common"), which gets resolved to the full ItemQuality asset at load time.

QualityDescriptionText Color
CommonBasic itemsWhite
UncommonImproved itemsGreen
RareAdvanced itemsBlue
EpicHigh-tier itemsPurple
LegendaryTop-tier itemsGold
TemplateBase templates (not for items)
Weapon_Sword_Copper.json
{
"Parent": "Template_Weapon_Sword",
"Quality": "Common",
"ItemLevel": 10,
"MaxDurability": 100
}
Weapon_Sword_Mithril.json
{
"Parent": "Template_Weapon_Sword",
"Quality": "Epic",
"ItemLevel": 50,
"MaxDurability": 220
}
Weapon_Longsword_Flame.json
{
"Quality": "Legendary",
"ItemLevel": 30,
"DurabilityLossOnHit": 0.52
}
MaterialQualityItem Level
CrudeCommon8
CopperCommon10
ScrapUncommon15
IronUncommon20
BronzeUncommon30
SteelUncommon30
CobaltRare35
AdamantiteRare40
MithrilEpic50
OnyxiumEpic30
Flame (Special)Legendary30
MaterialQuality
Cloth (Linen, Cotton, Wool, Silk)Common
BronzeUncommon
IronUncommon
SteelUncommon
CobaltRare
AdamantiteRare
CinderclothRare
MithrilEpic
OnyxiumEpic

The ItemLevel field indicates the relative power/tier of an item. Higher levels typically correlate with better stats and higher quality.

Item Level RangeTypical Quality
1-10Common
11-25Uncommon
26-39Rare
40-50+Epic/Legendary

Dropped items display visual effects based on their quality tier.

Drop_Uncommon.json
{
"SwitchTo": "PostColor",
"PostColorOpacity": 0.0,
"AnimationDuration": 1.0,
"EffectDirection": "BottomUp",
"AnimationRange": { "Y": 1.0 },
"UseBloomOnHighlight": true,
"HighlightThickness": 0.5,
"HighlightColor": "#e0ff7d",
"LoopOption": "Loop"
}
Drop_Rare.json
{
"SwitchTo": "PostColor",
"PostColorOpacity": 0.0,
"AnimationDuration": 1.0,
"EffectDirection": "BottomUp",
"AnimationRange": { "Y": 1.0 },
"UseBloomOnHighlight": true,
"HighlightThickness": 1.0,
"HighlightColor": "#7db2ff",
"LoopOption": "Loop"
}
Drop_Legendary.json
{
"SwitchTo": "PostColor",
"PostColorOpacity": 0.0,
"AnimationDuration": 1.0,
"EffectDirection": "BottomUp",
"AnimationRange": { "Y": 1.0 },
"UseBloomOnHighlight": true,
"HighlightThickness": 5.0,
"HighlightColor": "#ffdb91",
"LoopOption": "Loop"
}
QualityHighlight ColorThicknessEffect
CommonNo glow
UncommonGreen (#e0ff7d)0.5Subtle glow
RareBlue (#7db2ff)1.0Medium glow
EpicPurple (#cb91ff)2.0Strong glow
LegendaryGold (#ffdb91)5.0Bright glow
MyPlugin_Weapon_Sword_Custom.json
{
"Parent": "Template_Weapon_Sword",
"Quality": "Rare",
"ItemLevel": 35,
"MaxDurability": 160,
"DurabilityLossOnHit": 0.21,
"Model": "MyPlugin/Weapons/Sword_Custom.blockymodel",
"Texture": "MyPlugin/Weapons/Sword_Custom_Texture.png"
}
MyPlugin_Tool_Pickaxe_Custom.json
{
"Parent": "Tool_Pickaxe_Crude",
"Quality": "Epic",
"ItemLevel": 45,
"MaxDurability": 500.0,
"Tool": {
"DurabilityLossBlockTypes": [
{
"BlockSets": ["Stone", "Rock", "Ores"],
"DurabilityLossOnHit": 0.15
},
{
"BlockSets": ["Soil"],
"DurabilityLossOnHit": 0.10
}
]
}
}
MyPlugin_Weapon_Special.json
{
"Quality": "Legendary",
"ItemLevel": 50,
"MaxDurability": 300,
"DurabilityLossOnHit": 0.35,
"InteractionVars": {
"Swing_Damage": {
"Interactions": [
{
"DamageCalculator": {
"BaseDamage": { "Fire": 45 },
"RandomPercentageModifier": 0.15
}
}
]
}
},
"Light": {
"Radius": 1,
"Color": "#621"
}
}
  1. Durability scales with tier - Higher-tier items last longer
  2. Loss rate is consistent - Most weapons use 0.21 loss per hit
  3. Special items may vary - Legendary items can have different loss rates
  4. Tools use block-specific rates - Different blocks cause different wear
Item TypeTypical DurabilityLossOnHit
Swords0.21
Maces0.21
Daggers0.21
Battleaxes0.21
Bows0.58
Pickaxes (Stone/Rock)0.25
Pickaxes (Soil)0.25
Axes (Wood)0.25
Hits Until Broken = MaxDurability / DurabilityLossOnHit
Example:
Iron Sword: 120 / 0.21 = 571 hits
Mithril Sword: 220 / 0.21 = 1048 hits
  1. Match quality to power - Higher ItemLevel items should have higher Quality
  2. Scale durability appropriately - More powerful items should last longer
  3. Use consistent loss rates - Follow game patterns for weapon types
  4. Consider tool specialization - Different loss rates for different block types
  5. Test in-game - Verify durability feels right during gameplay
  6. Balance crafting costs - Higher durability items should cost more to craft