Loot Table Calculator: Drop Rate and Pity Odds
Enter your loot table as weights or percentages and get each item's chance per roll and per kill, its chance to drop at least once in a number of kills, and how many kills it takes to reach 50%, 90% and 99%. Add a pity rule to cap bad luck, then copy a weighted-pick GDScript function or download the table as JSON.
How to use it
- Choose Weights or Percent per roll, start from a preset or type your own items, and press Next.
- Set Rolls per kill, the Nothing drops weight and the number of kills to check, then press Next.
- Optionally tick the pity box, pick the pity item and the roll that guarantees it.
- Press Calculate drop odds to see the chart and the table of chances and kill counts.
- Press Copy GDScript for a ready weighted-pick script, or Download JSON for the full table.
How drop chances are calculated
With weights, an item's chance per roll is its weight divided by the sum of all weights, including the weight of nothing dropping. Weights of 40 nothing, 40 gold, 15 potion, 4 sword and 1 gem add up to 100, so the gem drops on 1% of rolls. Adding an item later only means adding a weight; the other weights stay as they are.
If a kill rolls the table more than once, the chance of the item in one kill is 1 - (1 - p)^r for a chance p per roll and r rolls. Two rolls of 1% give 1.99%, not 2%, because both rolls can hit.
The chance of at least one drop in n kills follows the geometric distribution: 1 - (1 - chance per kill)^n. The kills needed for a target chance t is the smallest n with 1 - (1 - p)^n >= t, which is n = ln(1 - t) / ln(1 - p) rounded up.
Why a 1% drop does not take 100 kills
A 1% drop takes 100 kills on average, but players do not get an average. Half of them have it after 69 kills, 90% after 230 and 99% after 459, so 1 in 100 players kills the enemy more than 450 times. After exactly 100 kills, about 37% of players still have nothing.
The same shape holds for any rare drop: the 99% count is roughly 6.6 times the 50% count. A 0.1% drop reaches 50% at 693 kills and 99% at 4,603. Look at the 99% column when you decide whether a drop is fair, because that is the experience of your unluckiest players.
Pity timers and bad luck protection
A pity rule guarantees an item if it has not dropped for a number of rolls in a row. In this calculator the pity roll gives the item when all the rolls before it missed, and the counter resets whenever the item drops. With a 1% item and pity on roll 150, everyone has it within 150 kills and the average falls from 100 to about 78 kills.
Set the pity roll a bit above the 90% count so it only rescues the unluckiest players and the drop still feels random. The exported GDScript tracks the counter in _rolls_without_pity_item; save that value with the player's progress or the pity resets every session.
The GDScript picks items with RandomNumberGenerator.rand_weighted(), which takes the weights as a PackedFloat32Array and returns an index. It was added in Godot 4.3, so the script needs Godot 4.3 or newer.
Frequently asked questions
How do I calculate the chance of getting a drop in N tries?
How many kills does a 1 in 100 drop take?
Should I use weights or percentages in a loot table?
What is a pity system in loot drops?
Does rolling twice double the drop chance?
More free game dev tools
- RPG Item Name Generator: Loot and magic item names with effects and flavor text, from Common to Legendary.
- XP Curve Calculator: Turn an XP formula into a level table with kills and playtime per level.
- Roguelike Upgrade Generator: A pool of roguelike upgrades with rarities, numbers, stacking rules and synergy tags.