$left.| Action # | Action | Count | Cost | Wait | Cumul | Rate (sp/day) | Δ/1k cost | Done? |
|---|
Save your inputs, paste texts, and computed upgrade plan so you can pick up where you left off on any device. Mark steps as done to track your progress.
The model treats your sphere income as the sum of a few independent sources — daily minigames ($oh, $oc, $oq), OP9 sphere buttons, OP5+OP8 kakera buttons, SP2 megaspheres, OP10 passive income, SP5 $ot procs, and SP10 $ot procs — each boosted by specific upgrades. It adds them up, then searches for the upgrade order that maximizes your long-term discounted income.
Each OP9 character is modeled as spawning one button per day, multiplied by the probability of rolling at least one wish that day. (If you can roll all your wishes each day, use the checkbox in simple mode to bypass this.) The click cap is 10 + SP9 level/day, shared across all OP9 chars.
The model applies your double chance, flat bonus, and SP9 (+10%/level) to each color's base value. When spawns exceed the cap, a dynamic program picks which colors to click — see the perk-9 calculator for details. OP9 clicks can also give an extra $oq.
The model assumes every OP5+OP8 character spawns 4 kakera buttons/day, limited only by react power. OP8 halves the cost for the first 40 clicks/day (soulmate halves again). The budget is max_power × (1 + num_dk), where num_dk depends on premium (PP0=1, PP1/PP2=2, PP3=3).
Clicks 1–40 cost react_cost/4 with OP5 at face value; 41+ cost react_cost/2 but OP5 is doubled. Lv6 chars are clicked first (19 vs 12 sp/click). Non-soulmate chars aren't modeled.
SP5 gives a chance for each sphere earned from an OP5 click to give an extra $ot. The chance is 0.014% per SP5 level per sphere — so a character giving 19 sp/click at SP5 lv3 has 19 × 0.042% = 0.798% chance of $ot per react. The model applies this across all OP5 clicks, weighted by the sp/click in each pre/post tier.
SP2 gives megaspheres — bonus spheres triggered by rolling claimed characters. Each claimed roll has a 1/50 chance of spawning one; the more claimed rolls/day, the likelier you are to spawn at least one (capped at 5/day via chaining). Each megasphere can chain up to 5 times, and OP2 increases the free-chain chance (every 100 OP2 lv5+ chars guarantees one free continuation).
Each megasphere contains 3 × SP2 level component spheres. Most are regular colors (not affected by double chance/flat bonus); a small fraction give special rewards ($oh/$oc/$oq/$ot) that do.
OP10 gives passive sphere income per character, tiered by how many OP10 chars you have. The model uses a decreasing marginal rate: first 100 chars give 20 sp/day each, next 100 give 8, next 100 give 4, and beyond 300 give 2 each. OP10 also gives a chance at bonus $oq minigames, modeled with the same tiered percentage.
The model includes a fixed daily income from minigames: 4× $oh per day, plus $oc and $oq counts that depend on player premium. Each minigame's EV is its base reward scaled by your double chance, plus a flat bonus per click. These aren't upgradeable but contribute to your total rate.
SP10 gives a once-daily chance to give an extra $ot on your first $oh of the day. The chance is 0.25% per SP10 level per fully-upgraded character (capped at 120 chars). Each proc is worth the $ot special reward EV.
A naive greedy optimizer picks the most efficient upgrade (Δrate/cost) at each step, but ignores how long you have to save to afford that upgrade. A slightly less efficient but cheaper upgrade you can buy now and start earning from immediately can beat a more efficient but expensive upgrade that requires days of saving, during which you earn nothing extra.
The optimizer fixes this by using a discounted infinite-horizon valuation to account for spheres now being more useful than spheres later, and optimizes an ordering of upgrades based on the total income earned along the way plus a measure of the final sp/day reached. This way upgrades that require long waits are properly compared while still valuing total efficiency.
A naive greedy optimizer only considers each upgrade's value in isolation, but some upgrades synergize with each other to be worth much more together: SP9 is worthless without any OP9 characters, OP2 is worthless without SP2. A greedy optimizer might delay something for a long time when it'd be better to take the small hit and unlock two things together.
The optimizer fixes this by considering all orderings within each set of related upgrades, and then interleaves those orderings together for the full upgrade ordering, using dynamic programming to find the exact best orderings. (For full details or ideas on how to do better ping me, this got more complicated than I'd like)