Loot & Drops
How items drop — base drop chance, the rarity roll, item level, and exactly what Magic Find does (and doesn't).
On this page
Every kill runs an independent drop roll per gear slot the enemy carries. If a roll succeeds, the game then rolls an item level, picks a base item, and finally rolls a rarity (Normal / Magic / Rare / Unique). These are four separate stages — Magic Find only touches the last one. This page walks each stage with the real formulas.
Stage 1 — Base drop chance
The global per-slot drop chance is GLOBAL_ITEM_DROP_CHANCE = 0.04 (4%). A plain (common)
enemy has exactly one drop entry at this chance.
Rare and special enemies get a second drop entry at half the base chance
(0.04 / 2 = 0.02). Nothing else scales by rarity: a rare and a special roll the same two
entries.
common enemy : 1 roll @ 0.04
rare enemy : roll A @ 0.04 , roll B @ 0.02
special enemy : roll A @ 0.04 , roll B @ 0.02
Each entry rolls independently, so a rare or special enemy can drop zero, one, or two items.
Dungeon ×1.5
Inside a dungeon, every drop entry’s chance is multiplied by
DUNGEON_ITEM_DROP_CHANCE_MULTIPLIER = 1.5 at roll time, then clamped to [0, 1]:
effectiveDropChance = clamp(entry.chance × 1.5, 0, 1)
| Enemy | Overworld | In a dungeon |
|---|---|---|
| Common | 0.04 | 0.06 |
| Rare | 0.04 + 0.02 | 0.06 + 0.03 |
| Special | 0.04 + 0.02 | 0.06 + 0.03 |
Note this ×1.5 is drop quantity/frequency — it is a completely separate bonus from the dungeon Magic Find bonus (Stage 4), which affects rarity.
Stage 2 — Item level
Once a roll succeeds, the dropped item’s level is rolled around the enemy’s level:
itemLevel = clamp(enemyLevel + randInt(-5, +5), 1, 99)
randInt(-5, +5) is inclusive on both ends (11 possible offsets). The upper clamp is
HERO_MAX_LEVEL = 99 and it applies everywhere — no drop anywhere in the game rolls
above item level 99. Pushing a region with Region Resonance raises the
rarity of what drops (via Magic Find) and the material drop rate, never the item level.
Item level drives the affix roll ranges (higher ilvl → stronger affix tiers), so it matters even beyond picking the base. Magic Find does not change item level.
Item level → level requirement
The level you need to wear the drop is the highest of three terms, then capped at hero level 99 so a deep-endgame drop can never become permanently unequippable:
effectiveLevelReq = min(99, max(
base item's own requirement, // every rarity
itemLevel − 15, // Magic / Rare only
skill-granting affix requirements ))
- The base item’s own requirement is the real progression gate, and heavier bases gate higher.
- Magic and Rare items additionally track their item level (
LEVEL_REQUIREMENT_ITEM_LEVEL_STRETCH = 15), because their affixes scale with it: wearable about 15 levels under their item level, but never under their base’s floor. Normal and Unique items skip that term entirely, so a low-tier unique found in a high-level zone is gated by its base alone. - An affix that grants access to a specific skill (a skill rank, a proc) drags the requirement up to that skill’s own unlock level. Tree-wide ranks (+<Class> Skills on an amulet, the unique-only +All Skills, +Main/Active/Passive Skill Tree) do not, since they only boost skills you have already learned.
Stage 3 — Base item & tier
The tier cap is derived purely from the rolled item level:
getItemTier(itemLevel) = clamp(ceil(max(1, itemLevel) / 20), 1, 5)
| Item level | Tier cap |
|---|---|
| 1–20 | 1 |
| 21–40 | 2 |
| 41–60 | 3 |
| 61–80 | 4 |
| 81–99 | 5 |
A tier is then drawn from TIER_DROP_WEIGHTS[tierCap] — higher tiers still include lower
tiers with decreasing weight:
tier 1: [1]
tier 2: [0.75, 0.25]
tier 3: [0.375, 0.375, 0.25]
tier 4: [0.25, 0.25, 0.25, 0.25]
tier 5: [0.225, 0.225, 0.225, 0.225, 0.10]
So a tier-5 enemy (ilvl 81+) drops a genuine tier-5 base only 10% of the time; the rest spreads evenly across tiers 1–4 at 22.5% each.
Within the chosen tier, the specific base item is picked by a fit weight so drops stay
mostly equippable. For each candidate base with level requirement levelReq:
gap = levelReq − itemLevel
weight = gap ≤ 0 ? 1 : 1 / (1 + gap)
Bases you can already use get full weight; a base whose requirement is a few levels above the drop level becomes an “aspirational” rare pick; a wildly-too-high base is near-impossible. See Item Bases.
Every base in the tier shares one flat pool — there is no per-slot quota, so a slot’s share of drops is simply its share of the base items at that tier. Each tier holds 53 gear bases, two of them rings, so the two ring families thin every other family’s share by about 3.8%.
Stage 4 — The rarity roll (this is what Magic Find touches)
Rarity is decided by rollItemRarity using three sequential gates. magicFind is a
fraction (e.g. 1.0 = +100% MF), and:
magicFactor = 1 + max(0, magicFind)
magicChance = clamp(0.25 × magicFactor, 0, 0.75) // base→Magic gate
rareChance = clamp(0.25 × magicFactor, 0, 0.75) // Magic→Rare gate
uniqueChance = clamp(0.05 × magicFactor, 0, 0.50) // Rare→Unique gate
The gates run in order, each rolling Math.random():
- If the roll fails
magicChance→ Normal (stop). - Else if it fails
rareChance→ Magic (stop). - Else if it passes
uniqueChance→ Unique, otherwise → Rare.
That yields the closed-form odds:
P(Normal) = 1 − magicChance
P(Magic) = magicChance × (1 − rareChance)
P(Rare) = magicChance × rareChance × (1 − uniqueChance)
P(Unique) = magicChance × rareChance × uniqueChance
Odds at MF 0
With magicFactor = 1: magicChance = rareChance = 0.25, uniqueChance = 0.05.
P(Normal) = 1 − 0.25 = 0.75 → 75%
P(Magic) = 0.25 × 0.75 = 0.1875 → 18.75%
P(Rare) = 0.25 × 0.25 × 0.95 = 0.059375 → 5.9375%
P(Unique) = 0.25 × 0.25 × 0.05 = 0.003125 → 0.3125%
(These sum to exactly 100%.)
Rarity → affix count
- Normal — no affixes (base stats only). For jewelry — amulets and rings — there is no Normal base item, so a failed Magic gate means no drop at all rather than a white amulet or ring. This keeps jewelry Unique odds equal to every other slot instead of 4× higher.
- Magic — 2 affixes.
- Rare — 3 affixes.
- Unique — a hand-authored Unique for that base, drawn by weight from the candidates that are flagged droppable and whose own required level is at or below the rolled item level. If that list comes out empty the roll falls back to a “near-unique” Rare with 4 affixes. A unique always drops unrevealed (below).
Magic Find — reality check
Magic Find only re-weights the rarity gates in Stage 4. It does not:
- increase drop quantity or drop chance (that is Stage 1 — the dungeon ×1.5 is separate),
- change item level (Stage 2),
- change which base item drops (Stage 3),
- change affix values — those roll from the item-level tier ranges regardless of MF.
MF also caps out: the Magic and Rare gates are clamped at 0.75, so once
magicFactor ≥ 3 (i.e. MF ≥ +200%) those two gates stop improving. Past that point, extra MF
only pushes the Unique gate — and that one is clamped at 0.50, reached at magicFactor = 10
(MF ≥ +900%), so unique odds keep climbing far longer than the other two.
Worked example — MF +200%
magicFind = 2.0 → magicFactor = 1 + 2.0 = 3:
magicChance = clamp(0.25 × 3, 0, 0.75) = 0.75 (capped)
rareChance = clamp(0.25 × 3, 0, 0.75) = 0.75 (capped)
uniqueChance = clamp(0.05 × 3, 0, 0.50) = 0.15 (not yet capped)
P(Normal) = 1 − 0.75 = 0.25 → 25%
P(Magic) = 0.75 × 0.25 = 0.1875 → 18.75%
P(Rare) = 0.75 × 0.75 × 0.85 = 0.478125 → 47.81%
P(Unique) = 0.75 × 0.75 × 0.15 = 0.084375 → 8.44%
Because both leading gates are pinned at 0.75, P(Magic) has actually risen back to 18.75%
and P(Normal) can never drop below 25% no matter how much more MF you stack — the only
remaining lever is the Unique gate.
Odds table by Magic Find
| Rarity | MF 0 | MF +50% | MF +100% | MF +200% |
|---|---|---|---|---|
| Normal | 75% | 62.5% | 50% | 25% |
| Magic | 18.75% | 23.44% | 25% | 18.75% |
| Rare | 5.94% | 13.01% | 22.5% | 47.81% |
| Unique | 0.31% | 1.05% | 2.5% | 8.44% |
Dungeon Magic Find bonus
Rolling rarity inside a dungeon adds a flat DUNGEON_MAGIC_FIND_BONUS = 1.5 to your
effective Magic Find for the rarity roll only:
effectiveMagicFind = playerMagicFind + (inDungeon ? 1.5 : 0)
So a player with 0% MF farming a dungeon rolls rarity at magicFactor = 2.5
(magicChance = rareChance = 0.625, uniqueChance = 0.125). Between the ×1.5 drop chance and
the +150% rarity MF, dungeons are the premium farm — but the two bonuses are independent
mechanics, not one number.
Stage 5 — Unrevealed uniques
A unique never drops finished. Every one of them — world drop, monster-hunt bounty, echoed-dungeon finale amulet, the Brood Matriarch’s ring — is created unrevealed, and the Trader reveals it for gold before it becomes the named item in the Uniques catalogue.
How it looks
- The item wears its plain base item name, styled in unique gold. The real name stays hidden.
- Every affix is a masked ”???” line, so the affix count is visible and nothing else.
- The tooltip shows what the Trader charges to reveal it, where a revealed unique shows its lore.
- The base item’s own stats count in full from the moment it drops. Its affixes contribute nothing at all until it is revealed — worn, an unrevealed unique is just its base item.
How it is revealed
On the Trader tab, click it in your bag (worn or stashed uniques go into the bag first). One dialog offers both choices:
reveal price = 5 × unique sell value = 5 × floor(base value × 2.5) // UNIQUE_REVEAL_PRICE_MULTIPLIER
sell price = base value // as if it were not a unique
| Unique (base item) | Sell unrevealed | Reveal |
|---|---|---|
| Head Start (Worn Coif) | 875 | 10,935 |
| Lost Crown (Crown) | 1,950 | 24,375 |
| Desert Spike (Refined Scimitar) | 3,600 | 45,000 |
| Ardor (Gilded Scimitar) | 6,000 | 75,000 |
| Stone of Absurdity (Jeweled Ring) | 7,250 | 90,625 |
- The bedroom’s Cost Reduction takes −2.5% per level off the reveal price, like every price the Trader lists.
- Reveal is instant: the item takes its real name, every affix turns on, it is written into your Armory, and a “Unique revealed!” notice fires. There is no refund.
- Sell pays the plain base value and you never learn what it was. An unrevealed unique is never sold without this dialog, even with the inventory sell confirmation turned off.
- Nothing else reveals a unique: not kills, not time.
Until it is revealed, the Blacksmith and the Witch won’t temper, enchant, base-upgrade or salvage it. Once revealed it crafts like any other unique, and the loot filter never auto-sells uniques.
See also
- Item Bases — the base pool per tier
- Affixes — how rolled affix values scale with item level
- Uniques — the authored Unique items
- Inventory & Equipment
- Region Resonance — the Magic Find and material-drop bonuses from raising a region’s difficulty