Chests
Chests are the only way to evolve weapons and items.
Chest size
Verified: 5 rewards if a roll is below 0.02 × (1 + luck), 3 rewards if below 0.19999999999999998 × (1 + luck), otherwise 1.[1] A 5-reward chest is announced as “Jackpot chest!”.
| Luck | 1 reward | 3 rewards | 5 rewards |
|---|---|---|---|
| 0 | 80% | 18% | 2% |
| 0.1 | 78% | 19.8% | 2.2% |
| 0.3 | 74% | 23.4% | 2.6% |
| 0.5 | 70% | 27% | 3% |
| 1 | 60% | 36% | 4% |
Computed from the formula.
What each reward is
Verified: each reward slot is, in order of priority:[2]
- An evolution or union, if one is ready (see Evolutions). If a weapon can both evolve and unite, you choose: “Evolve or unite?”.
- Otherwise a level-up of your highest-level non-max weapon, including a limit-broken evolution or union (ties go to the one that dealt more damage).
- Otherwise a random non-max passive level.
- Otherwise gold:
20 × gold gain × gold scale.
There is no time gate (evolutionGateSec = 0).
Item evolutions that are ready happen on top of these slots when the chest opens; they do not use up a slot (see Evolutions).[3]
Loot notices outside Story
Verified: an item pickup or a chest with no evolution/union choice to make can show its loot as an icon notice while the run keeps going. Story keeps the panels, and a chest with a choice still opens a panel. A chest kept open for a choice is not silently dismissed after that choice. This automatic handling waits for the notice text to load and requires auto-continue to be enabled.[4][5]
Loot notices merge if the previous notice is still queued and the next arrives within 1.5 s; the notice lifetime is renewed to 3 s. Repeated weapon/passive rewards show the final level, gold amounts are summed, and evolutions have their own icon banners.[6] This changes presentation, not chest reward rolls.
Verified: the HUD loads its base icon sheet first, then adds expansion icons without waiting to show the base icons. Weapon and passive slots whose icons have just become available are refreshed, along with loot banners. This changes icon loading, not rewards.[7][8]
Gold in chests
Verified: chest gold is round(random(12–30) × rewards × gold gain × gold scale), where gold scale = min(2, 1 + 0.05 × minutes) for boss and elite chests and 1 otherwise.[9]
A Tater Slots triple adds 4 current spin prices of bonus gold after that calculation; the bonus itself is not multiplied by gold gain.[10] Gold awarded as a fallback reward slot is separate from this chest gold.
Where chests come from
- Elites always drop a chest (plus gold, 50% reroll, 25% banish, 10% Bot Beacon). See Pickups.
- Bosses drop a chest, an XP gem and 25 gold.
- Cursed extra elites and bosses drop 1 chest each.
- Beetle Nests spawn an elite; Boss Lairs wake a boss.
- Tater Slots: three of a kind gives a 1-reward chest plus 4 spin prices of bonus gold.
- poteto's gift is a 5-reward chest.
Potato Crates, the Fry Cart and the Microwave give items, not chest rolls, so they never evolve anything.
Item rarity
Verified: rarity weights are [59,25,10,4,2] (Common to Legendary), and the weight of rarity n is multiplied by (1 + luck)^n.[11]
| Rarity | Weight | Chance (luck 0) | Chance (luck 0.5) | Chance (luck 1) |
|---|---|---|---|---|
| Common | 59 | 59% | 41.37% | 27.7% |
| Uncommon | 25 | 25% | 26.29% | 23.47% |
| Rare | 10 | 10% | 15.78% | 18.78% |
| Epic | 4 | 4% | 9.47% | 15.02% |
| Legendary | 2 | 2% | 7.1% | 15.02% |
Computed from the formula. Second Spud is removed from the item pool on difficulties without revives.
Sources
Game version 75: main-CSuyb4iv.js / boot-CPW8VVmR.js / sim-BkfBhQfw.js from https://tibo.dog/, researched 2026-11-05. See Versions & updates.
- Game config and formulas in
sim-BkfBhQfw.js
Code references
- sim-BkfBhQfw.js
return r<t.chanceFive*n?5:r<(t.chanceFive+t.chanceThree)*n?3:1 - sim-BkfBhQfw.js
function hu(e,t){if(e.runClock>=e.cfg.chests.evolutionGateSec){let n=vu(e,t.pending) - sim-BkfBhQfw.js
dc(e,s.rewards) - choices-BiyKHFKO.js
return e.kind===item||e.kind===chest&&e.forks.length===0 - run-extras-l2haGSVw.js
n=e.over||t.mode===story||this.app.chestPanels||!this.app.offers.autoContinue - boot-CPW8VVmR.js
chestBanners:{mergeSec:1.5,lifeSec:3} - boot-CPW8VVmR.js
Ir().then(async t=>{e.useIcons(t),this.sheet=t;let n=await Lr(t);e.addIcons(n),this.sheet=n} - boot-CPW8VVmR.js
for(let n of[...this.weapons,...this.passives])!0!==t?.has(n.id)&&e.frames.has(n.id)&&(n.id=``) - sim-BkfBhQfw.js
return Math.min(n.goldCap,1+n.goldPerMinute*(e.runClock/60)) - sim-BkfBhQfw.js
*e.loadout.stats.greedMult*o)+a - sim-BkfBhQfw.js
e.cfg.economy.rarityWeights.map((e,n)=>e*ve(1+t,n))