The reward screen feels like a gift. It is an invoice with the rates printed in code — and once you know them, you can tell when a drop is normal and when you got away with something.
The common/uncommon/rare roll
Every StS1 combat card roll is one number 0–99 off cardRng, plus a pity offset. Base thresholds by room:
| Room | Rare ≤ | Uncommon ≤ | Rest common |
|---|---|---|---|
| Monster / event | 3 | 40 | — |
| Elite | 10 | 50 | — |
| Shop | 9 | 46 | hooks not applied |
| Boss | always RARE | — | unconditional |
The pity system moves those numbers. cardBlizzRandomizer starts each run
at 5 and grows by 1 on every common rolled (down to −40); rolling a rare
resets it to 5 (blizzard_pity). At full pity the effective rare chance hits
3+5+40 = 48% — the game refuses to starve you forever.
StS2 runs the same shape in decimals: regular encounters 0.60/0.37/0.03, elites 0.50/0.40/0.10, boss guaranteed rare, with a pity offset that starts at −0.05 and grows +0.01 per non-rare to a cap of +0.4. Its Scarcity ascension swaps in worse tables — rare 0.0149 on regular fights.
Elite bonus slots
An elite's generosity isn't just rarity. In StS1 the elite room adds a relic
on top of the card stack, tier-rolled 50/33/17 common/uncommon/rare off
relicRng (relic_rewards.elite_combat.tier_roll; Black Star grants a second
roll). StS2's eliteRoom composes identically — gold at full range, potion
roll, 3-card reward at elite odds, plus RelicReward
(combatRewards.eliteRoom) — and its relic tier comes from a 0.5/0.33/0.17
float roll (relicRarity.distribution). Same design, two number systems.
Gold curves by floor and ascension
StS1 prints three bands (gold_rewards): normal combat draws
treasureRng.random(10, 20), elites draw random(25, 35), bosses pay
100±5; at Ascension 13+ boss gold rounds down ×0.75. Escaped monsters
pay nothing.
StS2 hardcodes the same three brackets as ranges: Monster [10,20], Elite
[35,45], Boss [100,100], with a poverty multiplier of 0.75 under its money-hungry
ascension (combatRewards.goldRanges). The curves rhyme because they are the
same curve — elites pay ~3× a trash fight, bosses ~10×, and ascension taxes
only the top end.
Chest tier odds
Chests come in three sizes rolled 50/33/17 per act; act 4 forces medium only
(chests.chest_size_roll). What's inside rolls separately
(contents_roll):
| Chest | Common | Uncommon | Rare | Gold chance | Gold amt |
|---|---|---|---|---|---|
| Small | 75 | 25 | 0 | 50 | 25 |
| Medium | 35 | 50 | 15 | 35 | 50 |
| Large | 0 | 75 | 25 | 50 | 75 |
Gold amounts then wobble ±10% around the flat value unless it's a daily run
(gold_amount). A large chest can never hand you a common relic — that's
why opening one feels different.
Potion drop chance
Base 40% per monster fight, elite or event room alike
(potion_rewards.base_chance), with a ±10 pity oscillator: fail → +10,
success → −10. White Beast Statue pins the
chance at 100. Rarity inside the drop splits 65/25/10 common/uncommon/rare.
StS2's version targets 0.5 from a starting chance of 0.4, steps ±0.10 with
no clamp, and gives elites +0.125 effective.
Boss relic choice mechanics
Three boss relics, every time, from the boss pool — drawn FIFO after a seeded
shuffle, so the pool order was fixed before the run began
(boss_rewards.boss_relic_choice). StS2's bossRoom likewise guarantees a
rare card reward and pays full gold (combatRewards.bossRoom), but its boss
relic analog flows through the shared grab bag with shop pulls taken from
the opposite end (relicGrabBag.pulls: rewards PullFromFront, shops
PullFromBack). Taking a boss relic early reshuffles nothing; it empties a
queue someone else was queuing on. See the
relic pools guide for what's actually in those queues, and
the full StS1 relic index for the artifacts
themselves — with the card index covering what
those rare slots can print.
Side-by-side odds table
Only constants present in both extractions get cells; anything absent renders "—" rather than a guess.
| Roll | StS1 | StS2 |
|---|---|---|
| Regular card rare | 3% base (+pity to 48%) | 0.03 (+pity offset ≤0.4) |
| Regular uncommon | 37% | 0.37 |
| Elite card rare | 10% | 0.10 |
| Elite relic tier split | 50/33/17 | 0.50/0.33/0.17 |
| Normal gold | band via treasureRng | [10, 20] |
| Elite gold | random(25, 35) | [35, 45] |
| Boss gold | 100±5 (×0.75 at A13+) | [100, 100] (×0.75 poverty) |
| Potion base | 40% (±10 pity) | 0.4 start → 0.5 target (±0.10) |
| Potion rarity C/U/R | 65/25/10 | — (not in extraction) |
| Chest tiers | 50/33/17 per act | — (no chests key) |
| Card upgrade-on-reward | 0 / 25% / 50% by act (A12+: 12.5%/25%) | — (not in extraction) |
Two absences worth naming honestly: the StS2 extraction records no potion rarity table and no chest-tier table — so this guide claims none.