Explore the DarkerDB API documentation, your gateway to harnessing Dark and Darker game data. Use our APIs to track in-game market trends, analyze live player stats, and access detailed item data, including stats, descriptions, and market data. Download game assets like item icons to enhance your apps or generate interactive tooltips. Feel free to get in touch with us in our Discord for support or to request new features or data!

Loot

How drop odds are actually computed, and the endpoints that expose them.

Background

Loot is modelled as a graph, walked fresh on every request. Here's one roll, start to finish:

  1. 1
    You kill a Wraithid.monster.wraith
    Wraith

    A Wraith just died in front of you. The game now decides what it drops.

The rarity draw in that walkthrough is the one calculation worth spelling out. A monster's odds table (loot_drop_rate) gives every grade a weight, and a grade is a rarity, from grade-0 (nothing) up to grade-8 (Artifact). One drop is a single categorical roll: pick a grade in proportion to its weight, then one item uniformly among the items that share it. So an item's chance is its grade's share of the whole table's weight, split across the items in that grade:

drop_rate=w(g) · m(g, luck)N(g) · Σh w(h) · m(h, luck)
  • g the item's grade; w(g) its weight in the odds table.
  • m(g, luck) the grade's luck multiplier (1.0 at luck=0, see the curves below).
  • N(g) how many items in the pool share that grade.
  • Σh runs over every grade h, grade-0 (nothing) included, so the denominator is the whole table's luck-scaled weight.

At luck=0 every multiplier is 1.0, so the sum is just the raw weights: grade-4 (Rare)'s 9000/10000 is a 90% grade share, grade-5 (Epic)'s 1000/10000 is 10%. Because grade-0 (nothing) stays in the denominator, a pool that can roll nothing has its item chances sum to under 1. A deeper tier pairs the same pool with a different odds table, so an item's rate shifts tier to tier, which is why the loot endpoints report each item at its most generous tier (and name that tier in dungeon_grade).

Worked example, the Wraith's rare / epic pool: the odds table weights grade-4 (Rare) at 9000 and grade-5 (Epic) at 1000. The Arcane Gloves sit in both. Drag luck and the items per grade (real pools vary, so this count is yours to tune) to watch each version move through the formula:
0
36

The gold terms move with luck; the teal one moves with items per grade.

The grade-4 (Rare)Arcane Gloves:
drop_rate=9000 · 1.00036 · ( 9000 · 1.000 + 1000 · 1.000 )=2.50%
The grade-5 (Epic)Arcane Gloves:
drop_rate=1000 · 1.00036 · ( 9000 · 1.000 + 1000 · 1.000 )=0.28%
Both versions share the same denominator (the whole pool), and as luck rises grade-5 (Epic) climbs faster than grade-4 (Rare), so the split tilts toward epic: the rare version eases down while the epic version climbs, on the same roll. That is loot skewing rarer, not simply more of everything, and it is exactly what /v2/monsters/id.monster.wraith/loot?luck=250 returns.

Luck grades and the luck stat

Every droppable item sits in exactly one of 9 grades, from grade-0 (nothing) through grade-8 (Artifact). A player's luck stat (0–500) doesn't touch which items exist or their base weight. It multiplies each grade's weight by that grade's m(g, luck) before the roll, and the table renormalizes (that scaled sum is the denominator above). So luck reshapes the whole grade distribution at once, never one item in isolation.

The scaling isn't linear and isn't uniform across grades. It's read off nine piecewise curves, one per grade:

The junk grades (grade-0 (nothing) and grade-1 (Poor)) trend down. More luck actively suppresses them, which is why they share one curve above. grade-2 (Common) trends down too, just gently. grade-3 (Uncommon) sits dead flat at 1.0 for every luck value, the pivot the other grades bend around. Grades 4–8 (grade-4 (Rare) up to grade-8 (Artifact)) trend up, steeper the higher the grade: grade-4 (Rare) reaches 1.563 at luck=250 and 1.752 at 500, while grade-8 (Artifact) nearly quadruples. Every curve flattens well before then, diminishing returns at the top end, not a runaway multiplier.

You rarely need to walk the graph yourself. /v2/monsters/{id}/loot and /v2/containers/{id} collapse it to a flat list of drops with the rates already computed, and /v2/spawners is the raw placement layer beneath them. The endpoints below are the loot-specific catalogs.

GET /v2/luck

The game's luck curves, one row per rarity grade (0–8): { id, rarity, rarity_grade, curve }, where curve is a piecewise-linear multiplier over the player's luck stat (0–500). The grade IS the rarity (id.luck.rare is the rare curve), not a dungeon grade. These are exactly the multipliers the luck query param applies on monster and container loot. See the grade curves chart in Background above.

GET/v2/luck