Game update · Article updated
Changes at a glance
- Save now compares the actual merged progress with the cloud copy. A newer cloud timestamp alone cannot mark unsent tickets, coins or Pokémon as already uploaded. Tabs of the same browser immediately merge changes through the storage event in cloud-account mode. Different devices still merge when opening the game or resolving a save conflict; this adds no continuous cross-device listener. Keep the same account, press Save before changing devices, and keep the original browser copy while Pending or Offline is shown.
- The upload payload now fits the existing server limits: integer time 1–86400 seconds, level 1–10+floor(time/4), and defeated count 0–100+12×time. At 2400 seconds, 40000 defeated becomes 28900 in the submitted record; the run time remains 2400. This prevents the former whole-record rejection for very fast defeating rates. It does not reduce combat damage or change the calculators. General boards still require 120 seconds and per-Pokémon boards 600 seconds; network or other validation failures remain possible.
- After more than 3 seconds without a teammate frame, the host marks that teammate silent. Ordinary enemies and Judgment Arceus exclude that Pokémon when selecting a living target. A new frame clears the flag; this is distinct from the existing 45-second failed-peer reconnection window and does not grant general damage immunity. New original rooms use the host account ID, allowing one hosted room per account. Guests write their own rin join marker before joining or restoring membership and remove it on leaving. Existing direct/TURN and room-recovery timing remains.
- Judgment now clamps the local player after each update, including guests, to a radius of (24−1.4)=22.6 tiles from the arena center. High speed no longer allows survival outside the arena. Enemy and Arceus target selection also skips silent teammates. Plate probabilities, damage-credit scaling, legendary growth, item-break timing and all move/stat formulas are unchanged by these two commits.
Save across devices and browser tabs
Save now compares the actual merged progress with the cloud copy. A newer cloud timestamp alone cannot mark unsent tickets, coins or Pokémon as already uploaded. Tabs of the same browser immediately merge changes through the storage event in cloud-account mode. Different devices still merge when opening the game or resolving a save conflict; this adds no continuous cross-device listener. Keep the same account, press Save before changing devices, and keep the original browser copy while Pending or Offline is shown.
Repeated spending of an old balance on two devices previously created a negative ledger that could inflate later saves or consume later earnings. The new code repairs that debt once through led.fix; merging takes the largest counter, so the same repair is not added twice. Tickets, coins, bag items and TM quantities follow their ledger balances. An unchanged Save skips the cloud write even if the local update timestamp changed. Public-profile writes also skip the nickname-registry lookup when the name is unchanged.
If the first cloud read fails at startup, the game keeps the local copy and schedules up to 10 read retries: 10 seconds initially, exponential backoff, capped at 10 minutes between attempts. A successful read merges the cloud copy; it does not silently upload remaining local progress. Save is still manual. These retries are for the failed initial read. After the retry budget is exhausted, preserve local data and reopen with a working connection. Existing save revision checks, write limits and conflict retry rules remain.
Rankings: accepted uploads and visible best runs
The upload payload now fits the existing server limits: integer time 1–86400 seconds, level 1–10+floor(time/4), and defeated count 0–100+12×time. At 2400 seconds, 40000 defeated becomes 28900 in the submitted record; the run time remains 2400. This prevents the former whole-record rejection for very fast defeating rates. It does not reduce combat damage or change the calculators. General boards still require 120 seconds and per-Pokémon boards 600 seconds; network or other validation failures remain possible.
The browser combines already cached shorter-period summaries without extra reads: all-time includes month/week/day; month and week each include day. A week is not copied into a month because it can cross the month boundary. Both time and Arceus-damage summaries follow this rule. The six-hour all-time upload deferral remains, but a queued better solo time is shown immediately and a worse run cannot replace it. Two-hour caches remain. Daily/weekly/monthly and per-Pokémon friends views use retained top summaries; the all-time time view can fetch friends outside the top 50. Arceus damage remains a filtered top-summary view, with no per-Pokémon damage board. This Wiki’s Challenge scores are separate.
Silent teammates and bounded room signaling
After more than 3 seconds without a teammate frame, the host marks that teammate silent. Ordinary enemies and Judgment Arceus exclude that Pokémon when selecting a living target. A new frame clears the flag; this is distinct from the existing 45-second failed-peer reconnection window and does not grant general damage immunity. New original rooms use the host account ID, allowing one hosted room per account. Guests write their own rin join marker before joining or restoring membership and remove it on leaving. Existing direct/TURN and room-recovery timing remains.
The accompanying Realtime Database rules require host/guest membership and host–guest signaling, validate member fields and names up to 24 characters, and bound each sender/recipient to 100 cyclic slots with messages up to 16000 JavaScript string units. These are source-defined signaling limits. The original operator controls deployment of those backend rules; this Wiki update neither deploys them nor proves their current live enforcement. The client tolerates a rejected join-marker write for compatibility with older rules.
Judgment keeps every local player inside the arena
Judgment now clamps the local player after each update, including guests, to a radius of (24−1.4)=22.6 tiles from the arena center. High speed no longer allows survival outside the arena. Enemy and Arceus target selection also skips silent teammates. Plate probabilities, damage-credit scaling, legendary growth, item-break timing and all move/stat formulas are unchanged by these two commits.
Controller pulls and two-stick touch aiming
On the October 25 original, a controller no longer automatically selects a ticket-spending pull button after Continue. Move to ×10 or ×100 deliberately. The pull overlay supports Skip and Continue; B also continues. Orb slots show X to use the selected orb and Y to cycle. Mobile Manual aim is available again in Settings → Accessibility: with a floating joystick, left moves and right aims; with a fixed joystick, aim away from the movement-stick area. Releasing the aiming finger restores automatic targeting; chain and meteor moves still choose targets automatically. While level-up, item or Bond cards are open, touching outside their box can hold the movement joystick ready; this does not unpause the choice. In portrait, the top bar uses two rows so coins, tickets and your name remain visible.
Co-op choices and guest weather
Guests now repeat their choice-round number and item/Bond hold state in every normal frame. A lost “finished choosing” notice can recover on the next frame instead of freezing everyone; older clients still use their notices. Drought, Drizzle, Sand Stream and Snow Warning can now request weather as a guest. Each local summon ability checks at the start and every 180 active seconds, starts 60 seconds of weather only when none is active, and the host validates the weather ID and accepts a guest request at most once per 60 seconds. These fixes change whether weather starts, not its damage/type multipliers: select the weather actually present in the calculator.
Read the end-of-run damage summary
The original now shows an end-of-run summary for solo and co-op, with a tab for each available teammate snapshot. Each attack lists actual credited damage and displayed DPS = damage ÷ max(5, run seconds − learned-at seconds), rounded for display. Example: 12000 damage at time 900 from a move learned at 300 gives 20/s, not 12000/900. Support moves show a dash; total damage sums damaging moves currently listed. The transmitted snapshot has up to eight moves, rounds time/damage, refreshes about every 5 seconds and is also included at run end, so a disconnected teammate can have an older snapshot. This is observed-run accounting, separate from the Wiki calculator’s conditional output or Arceus team ranking damage.
Public profiles and repeated invitations
Automatic publication of records and medals in the public profile is now limited to once per six hours; your own local view remains immediate and explicit forced updates are separate. Repeating an invitation to the same friend in the same room within 20 seconds skips another write. Invitations still expire after 3 minutes; room-exit cleanup ignores expired sent entries. The Firestore source now checks an admin ban when adding a visible top-50 summary rather than on every stored run; this does not permit a banned account to appear in top 50. Rules deployment belongs to the original operator.
Collection move details and menu windows
The changelog files these UI improvements under October 24, although they entered source in dc3029a7 on October 25. In Collection, learnable-move icons grow from 16 to 32 pixels; hover or tap an icon for its name, type, physical/special category when applicable, and description. Tap again, elsewhere, or scroll to dismiss it. This reveals the existing legal pool, including compatible taught TMs; it grants no extra move. Kecleon Shop and News now sit below the top bar, including portrait mobile. Menu/settings/news/support windows close only when both press and release occur on the dark backdrop; dragging from inside does not close them. Controller B/Back remains.
Original YouTube live indicator
680c3e12 fixes the original channel’s live indicator: the checker requires a playable live video that is not merely scheduled, and accepts the normal channel page after a stream ends. Its source workflow still checks every 5 minutes and preserves the previous result when the response cannot be recognized. This describes the original game’s channel button, not this Wiki’s separately operated YouTube channel, and is not a claim that a stream is live now.
Which edition and source this covers
The behavior notes cover original source d567c6da..680c3e12 (7 commits), release marker 6b6bde6e28. Entity values, move/evolution rules and numerical calculator formulas remain those extracted at d567c6da; player/game edits add weather activation, input and summary behavior. All 13 tools retain their abilities. The embedded community edition and the Wiki’s local collection/share state are independent; original account, cloud and ranking fixes do not automatically apply to them. Original source tests use isolated mocks, not real player accounts.
Related pages
Previous and next updates
Game data & sources
The linked game files show where these stats, costs and rules come from. Updates to the game may change them.
Data version: d567c6da
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/core/db.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/ranking.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/ranking-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/social.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/net.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/coop.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/entities/enemy.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/entities/player.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/game.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/core/gamepad.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/core/touch.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/hud.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/menu.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/run-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/settings-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/systems/judgment.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/database.rules.json
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/firestore.rules
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/data/changelog.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/.github/workflows/live.yml
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/version.json