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)
EnemyOverworldIn a dungeon
Common0.040.06
Rare0.04 + 0.020.06 + 0.03
Special0.04 + 0.020.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 levelTier cap
1–201
21–402
41–603
61–804
81–995

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():

  1. If the roll fails magicChance → Normal (stop).
  2. Else if it fails rareChance → Magic (stop).
  3. 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

RarityMF 0MF +50%MF +100%MF +200%
Normal75%62.5%50%25%
Magic18.75%23.44%25%18.75%
Rare5.94%13.01%22.5%47.81%
Unique0.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 unrevealedReveal
Head Start (Worn Coif)87510,935
Lost Crown (Crown)1,95024,375
Desert Spike (Refined Scimitar)3,60045,000
Ardor (Gilded Scimitar)6,00075,000
Stone of Absurdity (Jeweled Ring)7,25090,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