Loot drop rate calculator: what are the odds in N tries?
Short answer
If an item drops with chance p on each try, the chance of getting at least one in N tries is 1 - (1 - p)^N. The tries you need for a target chance C is ln(1 - C) / ln(1 - p). For a 1% drop: 69 tries for a 50% chance, 230 for 90%, 459 for 99%.
Calculator
63.4%
Copy-paste code
Spreadsheet, Luau and GDScript
Spreadsheet (p in A2, tries in B2): =1-(1-A2)^B2
Tries for 90% (p in A2): =ROUNDUP(LN(1-0.9)/LN(1-A2),0)
-- Luau
local function chanceIn(p, n) return 1 - (1 - p) ^ n end
local function triesFor(p, c) return math.ceil(math.log(1 - c) / math.log(1 - p)) end
# GDScript
func chance_in(p: float, n: int) -> float: return 1.0 - pow(1.0 - p, n)
func tries_for(p: float, c: float) -> int: return ceili(log(1.0 - c) / log(1.0 - p))| Drop chance | 50% sure | 90% sure | 99% sure |
|---|---|---|---|
| 10% (1 in 10) | 7 | 22 | 44 |
| 5% (1 in 20) | 14 | 45 | 90 |
| 1% (1 in 100) | 69 | 230 | 459 |
| 0.1% (1 in 1,000) | 693 | 2,302 | 4,603 |
Source: computed from 1 - (1 - p)^N, rounded up
Good to know
Unlucky streaks are normal: with a 1% drop, about 1 player in 10 still has nothing after 230 tries. A pity timer (a guaranteed drop after N misses) fixes the worst cases.
If several items share one roll (a loot table), convert weights to chances first: chance = weight / total weight.
Grindscale: Balance XP, gold and loot before players do
from $7Grindscale is a game-economy spreadsheet for Excel and Google Sheets: balance XP curves, gold income and loot tables before players find the holes.
Secure checkout · 14-day fix-or-refund if it doesn't work as described (terms)Questions
Is a 1% drop guaranteed in 100 tries?
No, only about 63%.
How do I add pity?
Count misses per player; when the count reaches your limit, force the drop and reset the count.
Free: the Roblox Starter Kit
7 free Luau modules (damage, pets, shop formatting, admin audit log, tycoon guards and more) plus 3 free calculators, then 5 short emails with the scripting fixes we see go wrong most often.