Guild of Monster Girls · per-unit talent pool · 4-row reroll · lock + soft-pity model
Loading talent-simulator-data.js...
Unit & target
—
Step:Class:
Last roll
Locked0/4
Next cost1 fruit
Live state
Pity 1 dry streak (no S)0 / 50
S/Orange rate (next row)2.00%
Pity 2 non-target Oranges0 / 50
Target hits / click count0 / 0
Total fruits spent0
Within Orange (next row)
Target Talent Rate—
Exclusive Talent Rate—
Restricted Talent Rate—
Generic Talent Rate—
Rates conditional on Orange rolling. Sum = 100%. Pity-2 inactive: target's rate is its natural share within its category. Pity-2 active: target carved out as separate slot, removed from its category for the split.
Tier distribution (per row roll, all clicks)
Counts per tier, summed across all 4 row slots over all clicks. "exp" = expected count from base rates, ignoring pity.
Click history (last 1000)
No rolls yet
Monte Carlo — clicks until first target appears
Mean clicks-
Mean fruits (no locks)-
p25 / p50 / p75 clicks-
p90 / p99 clicks-
Min / Max clicks-
Distribution (capped at p99)
0--
MC simulates with no locks (locks are interactive). Each trial = clicks until target appears in any of the 4 rows. Pity counters carry across rows within a trial.
Roll mechanics (editable)
Lock shift: appearance rates [r1,r2,r3,r4] queue assigns to unlocked rows in order — locked rows skip the queue. Lock row 3 → row 4 uses r3's rate.
Cost: 1 + lockedCount talent fruits per click. 4 locked = roll disabled.
Pity 1 (per click): dry +1 if no S rolled this click; resets to 0 when any S appears. S-rate next click = base + step × max(0, dry − thr+1).
Pity 2 (per click counter, per-row check): nonP +1 if click had S but no target; resets to 0 when target appears; unchanged if no S. Bonus = step × max(0, nonP − thr+1) applied only when an S row rolls (conditional within Orange, per loc text).
Within-Orange split: Orange budget is split E (Exclusive) / R (Restricted = race+class+element) / G (Generic) by user weights × pool-nonempty. Pity-2 inactive: target sits inside its natural category — natural P(target | Orange) = (cat_weight / totalW) × (1/cat_size). Pity-2 active (bonus > 0): target carved out as separate slot ★ = pity-2 bonus, removed from its category for the E/R/G split. So when the only exclusive in the pool IS the target and pity activates, exclusive pool drops to 0 → wE×0 = 0%.