4c6bc97 New: Click any percentile stat to open a distribution modal with min/mean/max, IQR, and standard deviation; main stats now show the mean — thanks to /u/203system for the ideabf816ea Fix: Percentile displays now use nearest-rank percentile selectionbf816ea Fix: Rate-up copy distribution chart now counts token-awarded rate-up copies at the pull threshold where they are granted96e70f2 Change: Default free pulls increased from 5 to 10 per banner527feba Change: Auto-consumed free pulls now execute after bonus60 (was before); custom strategies can hold and manually control free pulls via pull1Free and pullBonus60 decisionsc425d9d Fix: 6★ soft pity now correctly starts at pull 66 (was pull 65) — thanks to /u/AngryMeerkat23 for reporting2ad21e4 Fix: 5★ pulls now correctly advance 6★ pity counter — thanks to /u/AngryMeerkat23 for reporting1c5979c Fix: 6★ soft pity now correctly starts at pull 65 (was starting 2 pulls late) — thanks to /u/Syryniss for reporting7473326 Fix: bonus30/bonus60Available state now properly exposed to custom strategy functions (was always false) — thanks to /u/Aeanah for reporting05819fd Fix: Hard pity at 80 now rolls normal 50/50 instead of forcing rate-up8e26d98 Fix: Crate of Origeometry cost calculation now uses 242 origeometry for ¥10,000 (was 350) — thanks to /u/autuns for reporting944cc1a Fix: 5★ pity no longer blocks 6★ from landing on the 10th pull6868316 Fix: Max Pot 5/5 strategy now correctly requires 6 copies (was 7)0e1ba89 Fix: Bonus30 5★ guarantee and 120-pull rate-up guarantee logicA strategy is a JavaScript function that takes player and banner and returns a decision string.
| Decision Returned | Skip? | Free pulls |
|---|---|---|
'stop' | Yes | Auto-consumed |
'pull1' / 'pull10' | No | Auto-consumed |
'skip-hold-free' | Yes | Spent when instructed to by strategy |
'pull-hold-free' | No | Spent when instructed to by strategy |
"Skip" means the banner's pulls are excluded from the target pull count statistic.
The simulator automatically spends bonus60 (Chartered Headhunting) and free pulls unless the strategy returns 'skip-hold-free' or 'pull-hold-free' in step (1).
| Decision Returned | Effect |
|---|---|
'stop' | Stop pulling on this banner. Move to the next banner. |
'pullBonus60' | Use the 10 bonus60 pulls. Must be the first decision when bonus60 is available (at pull 0). Error otherwise. |
'pull1Free' | Use one free pull. Error if none remaining. Must be used before pull1/pull10. |
'pull1' | Do one paid pull. |
'pull10' | Do ten paid pulls. |
When spending free pulls manually, pulls must be spent in this order before spending paid pulls: pullBonus60 → pull1Free (until exhausted) → pull1/pull10.
player Fields| Field | Type | Description |
|---|---|---|
seed | int | The PRNG seed used for this trial. Useful for reproducing specific runs. |
sixStarPity | int | Pulls since last 6★. Soft pity at 66, hard pity at 80. |
fiveStarPity | int | Pulls since last 5★ or higher. Guaranteed 5★ at 10. |
pullCount | int | Total paid pulls across all banners. Excludes Chartered Headhunting and free pulls. |
bonus60PullCount | int | Total Chartered Headhunting pulls across all banners. |
welfarePullCount | int | Total free pulls across all banners. |
totalSixStarRateUp | int | Total rate-up 6★ obtained. |
totalSixStarLimited | int | Total off-banner limited 6★ obtained. |
totalSixStarStandard | int | Total off-banner standard 6★ obtained. |
totalFiveStar | int | Total 5★ obtained. |
totalFourStar | int | Total 4★ obtained. |
banner Fields| Field | Type | Description |
|---|---|---|
serial | int | Banner number (1-indexed). |
pullCount | int | Total pulls on this banner (paid + Chartered Headhunting + free). |
skipProbe | bool | true during the banner intention probe, false during the strategy loop. |
gotRateUp | bool | Whether the rate-up 6★ has been obtained on this banner. |
bonus60Available | bool | Whether the Chartered Headhunting 10-pull is available. |
bonus60Used | bool | Whether the Chartered Headhunting 10-pull has been used. |
welfarePullsRemaining | int | Free pulls remaining on this banner. |
totalSixStarRateUp | int | Rate-up 6★ obtained on this banner. |
totalSixStarLimited | int | Off-banner limited 6★ obtained on this banner. |
totalSixStarStandard | int | Off-banner standard 6★ obtained on this banner. |
totalFiveStar | int | 5★ obtained on this banner. |
totalFourStar | int | 4★ obtained on this banner. |