Offline & sync

The game is offline-first: everything playable lives on the phone. Cloud backup is opt-in, off by default, and never required to play.

How saving works

Save states you may see

StatusMeaning
Saved locallyProgress is safe on this phone; nothing has been sent anywhere.
Waiting to syncBackup is on, operations are queued, the connection isn’t there yet.
Backed upThe server acknowledged the operations.
Needs attentionSomething was rejected or failed; the local operation is kept visible with a recovery path — never silently discarded.

Cloud backup (opt-in)

Operation catalogue (sync v1)

OperationPayloadWhat it does
steps.importbucket start, aggregate countReports one Health Connect interval’s high-water mark; the server credits only growth above the previous mark.
mode.setautomatic: boolThe auto-attack switch — pause or resume step resolution.
actions.spendcount ≥ 1Resolve saved steps as attacks (Strike/All buttons or resuming auto-attack). No tap-to-attack exists.
hero.selectheroIdSelect a gameplay hero; free and reversible.
hero.upgrade.buyheroId, upgradeIdBuy one rung of a hero’s upgrade ladder, in order.
hero.level.buyheroId, count 1–100Buy endless hero levels (rules v2+).
ascension.perform—Perform the voluntary ascension; validated against the area gate.
rules.upgradetoVersion 2 or 3One-time forward conversion of a profile to a newer economy ruleset.
cosmetic.buyoutfitIdBuy a visual outfit with play-earned gold.
cosmetic.equipoutfitIdEquip an owned outfit; combat-neutral.
trial.attackcount 1–1000Resolve intentional trial taps; committed one tap per operation by default so replays can’t double-clear.
upgrade.buy—Legacy: the retired global damage ladder, still accepted for old logs.

Privacy