That "sudden" discount popup with the 2-hour timer isn't sudden at all. The client ships a 158-row ambush table that watches your exact behavior — this is it, decoded.
The config table limit_time_pack defines 158 triggered offers. Each row is: a trigger (a counter or milestone the game watches), an IAP product to sell when it fires, a "1000% value" banner, and a 2-hour countdown. The moment you star-up a fighter, spin the drone gacha enough times, or ascend a Mech Spirit — the matching pack pops.
Grouped by trigger family. The drone economy alone — refreshes, recasts, evolution stars, ownership counts — accounts for 106 of the 158 popups, a census of where the monetization team thinks the money is now.
The flagship ladder: the Rhenite refresh-gacha (see Drones) fires a discounted pack at 20, 40, 60, 100, 200, 300, 400, 500, 1,000 … 5,000 lifetime refreshes — 13 thresholds, each re-armed with a fresh 2-hour timer. Spin the slot machine, get sold more tokens for the slot machine, repeat for your entire account lifetime.
Each of the 7 premium fighters has packs at ★5, ★9 and ★15, and they escalate with your commitment: the deeper you've invested, the bigger and pricier the ambush — ×50 shards at $14.99 → ×100 at $29.99 → ×150 at $49.99 (the ×1.5-tier ships run $19.99 → $49.99 → $99.99). The trigger is your own star-up, so the popup always sells accelerant for exactly the ship you just committed to.
The very first popup shows the other end of the curve: clear campaign stage 02 — minutes into the game — and a $0.99 "Epic Selectable Pack" appears. Cheap enough to be a reflex purchase, and its real job is converting you into a payer; the $49.99 and $99.99 ambushes come later, priced to your sunk cost.
limit_time_pack.product_id does not reference the purchase (IAP) table — it indexes the store table's row id, whose row then carries the reward list, the USD price and the link to the actual IAP product. Joining it against the purchase table by id (off by 2–13 depending on the block) produces convincing-looking nonsense — every pack seems to sell a neighboring pack's contents. The table below uses the store-row join, verified by name/price/content coherence across all 14 families.Triggers are decoded from the config's parameters and cross-checked against other tables — the level triggers land exactly on the feature-unlock ladder (Gem at 25, Pilot at 35, Commander at 40, Drone at 45), module ids resolve to named modules, and fighter/spirit ids to named units. Contents and USD prices come from each pack's store row (see the join note above); 12 rows have an empty advertised-contents list in the store table (shown as —), including the module packs and the 3 daily-rotation packs.
time_limit: 7200), and most show only once (pack_showtime: 1). Miss it and it's gone.needPlayerDay (e.g. Thor packs wait until day 16), so the ambushes arrive on a schedule tuned to retention curves.same_conflict groups stop two popups from firing at once and cheapening each other.reset: 1) rotate daily forever, so even a player who never triggers a ladder still sees a countdown.