Skip to content

Gift codes

One of the most popular features. The bot maintains a registry of Century Game promo codes (db/giftCodes.yaml), scrapes new ones from public sources, and redeems them against every configured account on a schedule. The dashboard page is your single view of “which codes succeeded for which accounts.”

Gift codes dashboard
  • Scrapes new codes — the Scrape now button hits the public code sources, dedupes against the registry, and queues anything new.
  • Redeems across all accountsRedeem now (or the cron schedule) walks every account configured in db/state/state.db and submits each pending code. The matrix view shows the result per account, per code.
  • Tracks the lifecycle — once a code is ALREADY_RECEIVED for an account, it never gets retried for that account. SUCCESS rows turn green and are dropped from the next pass.
  • Per-account columns — each configured player ID gets its own column. Status values:
    • SUCCESS — code redeemed, rewards in inbox
    • ALREADY_RECEIVED — this account already had it (no retry)
    • FAILED — API rejected (expired, region-locked, hit a per-account limit, etc.)
    • PENDING — queued but not yet attempted
  • API errors surfaced — the API ERR column shows the upstream code (20000, 40005, …) so you can tell “the code is bad” from “this one account is rate-limited.”
  • Active — codes that haven’t expired and could still pay out for someone.
  • Needs run — active codes that have at least one account in PENDING state.
  • Pending slots — total account × code pairs waiting to be tried (this is what the next run will burn through).
  • Expired — codes the API has confirmed dead, kept around for history but skipped on redeem.

Manual gift code redemption is the single biggest time sink for a Whiteout Survival multi-account player — every time the Century Game team or a content creator drops a new code, you’d otherwise have to switch accounts and re-type it N times. The bot does the whole sweep in one pass and logs which accounts came up empty so you can spot a stuck account quickly.

Pro

Redeem for any user ID, not just your own accounts

Beyond the accounts the bot owns, the redeem loop can target any list of player IDs (FIDs) you paste in — alliance members, partner farms, secondary accounts on other servers, friends who don’t run the bot themselves. Same matrix view, same per-code/per-account status, same retries.

Bulk-paste accepts fid or fid label, one per line. Scope is per game — WOS and Kingshot have independent lists. License feature flag: gift_codes.external_accounts.

The External accounts panel on the Gift codes page is where you manage this list. Each external ID gets its own column in the matrix alongside your own accounts. Rows added before a Pro license expires stay visible as read-only history but are skipped on redeem until the feature is licensed again.

The redeem loop is scenario gift_codes/scenarios/by_cron/redeem_gift_codes.yaml. The default cron pulls and redeems every few hours; you can also kick a one-off run from the dashboard’s Redeem now button or from the queue.