⚠ TEST SERVER — characters and items may be wiped without notice. Report bugs on Discord.

Affix System

Items can roll affixes — bonuses similar in spirit to Diablo 2 prefixes / suffixes. Affixes come in three categories.

Category A — Direct ITEM_ATTRIBUTE_*

Native item attributes the engine already supports: attack, defense, armor, hitchance, etc. Affix bumps these directly on the item.

Example: +5 Sword (of the Bear)attack increased by 5.

Category B — Equipment stats

Skills, max HP, max mana, regen, run speed, vocation-style bonuses. Implemented as a single CONDITION_ATTRIBUTES recomputed when you move items around or log in.

Example: +7 Sword Skill on a chest piece — stacks with other +sword affixes from other slots.

Category C — Combat hooks

Triggered on hit:

  • Crit — chance to multiply damage
  • Life leech — restore HP per damage dealt
  • Mana leech — same for mana
  • Reflect — bounce a % of incoming damage back
  • Dodge — chance to zero an incoming hit
  • Mitigation — flat % physical reduction
  • Strikes — extra elemental damage on melee
  • DoT — damage over time on hit
  • Vibrancy — paralyze resist

Tiers

Affixes have four tiers (I–IV) rolled at drop time. Higher tier = stronger numbers. The tier is shown in the item description and also synced to the client UI so you can see it at a glance.

Sockets & rune words

Some items have sockets. Use a rune on the socketed item to inscribe one of its slots. Specific rune sequences (rune words) grant additional bonuses. The UI shows you pending words before you commit.

Per-slot validation

Affixes only count from items in their valid equipment slot. A +7 Sword Skill chestplate in the ammo slot does not stack — the system checks the item's slot position and ignores mis-slotted gear.

Rolling new gear

Affixes are rolled in _affix_engine.lua on monster drop. The drop hook lives in eventcallbacks/monster/default_onDropLoot.lua.