Game update · Article updated
Changes at a glance
- Kecleon Shop: natures, abilities & TMs
- Second starting choice
- Cloud revision conflicts
- Co-op spectating while downed
- The October 21 original announcement adds server-assisted co-op for signed-in accounts when mobile data or a router blocks direct peers. Source 006257fa first tries STUN-only WebRTC for up to 9 seconds, without requesting TURN credentials or reserving a relay slot. A failed direct attempt, including an earlier connection failure, makes a signed-in host retry immediately with TURN if the service authorizes the account. The TURN-enabled attempt allows 15 seconds; the browser can still choose a direct route. Signing in is required for the credential request, but does not guarantee authorization or a working relay.
- During the current page session, the host remembers each pair whose direct attempt failed while the host was signed in even after a player leaves or the room is recreated. That pair starts subsequent attempts with TURN if available, skipping the initial 9-second wait. After two distinct guests have recorded direct failures, the host starts all further peers with TURN if available. This is failure memory, not proof that TURN was authorized or used. Reloading the page starts a fresh session.
How to use the shop
Open Shop from the original main menu and buy with coins. Bag shows unused stock; use it through Collection → choose a Pokémon → Mint, Capsule or Teach TM. Pick a different nature/ability, or an eligible TM you own. A successful change consumes one item and saves locally; press Save and wait for cloud confirmation before switching devices.
Daily TMs and inventory limits
Eight TMs refresh by the Europe/Madrid calendar date. The seeded base list is shared. If none can be taught to the selected partner now, slot eight becomes a compatible, not-yet-taught TM. Therefore partners or learned lists can change slot eight. Bag and TM stacks cap at 999; buying at cap still spends coins.
Natures
25 natures: 20 multiply one of physical attack, special attack, defense, special defense or speed by 1.1 and another by 0.9; five are neutral. HP is unchanged. Attack is recalculated from max(physical, special). A Mint costs 1,500 coins and lets you choose.
Abilities
Each species has its own regular and hidden slots. A hidden slot rolls at 1/20 only where it exists. Traits are fixed from account creation and species; repeated pulls do not reroll them. Regular Capsule: 1,500 coins, other regular slot. Hidden Capsule: 5,000, any other available slot. Both require a valid change.
TM compatibility
Only the listed compatible, off-type TMs can add new moves. Type + Normal natural moves need no TM. Teaching consumes one unused TM permanently; known moves cannot be taught twice. Taught moves join level-up cards and non-buff starting choices. Compatibility alone does not mean already learned.
Second starting choice
Second starting choice costs 400 coins PER POKÉMON and requires Repertoire. Reselecting is free. Choose a different legal non-buff move, including a taught TM or the default-start exception. A valid explicit choice overrides bans; without it Repertoire rolls an unowned, unbanned non-buff from the actual pool.
Select the second starting move
Open Upgrades and choose the Pokémon. Buy Repertoire first, then Second starting move for400coins. Choose a legal attack different from the first. Choosing again costs0; buying it for another species requires its own unlock.
Cloud revision conflicts
Cloud saves now compare a revision number before writing. A revision conflict can cause one cloud read, merge and retry; that read has a five-minute cooldown, so not every failure is immediately resolved. Manual Upload remains necessary (65s between successful writes). Old clients can write revision 0 only until the save gains a positive revision: reload the current original if upload fails. Learned TMs merge by union; nature/ability choices use their per-Pokémon timestamp; bag/TM balances use earned/spent ledgers. No unconditional no-loss guarantee.
Co-op spectating while downed
While downed in original co-op, use the spectator button, Q/E/Tab, or controller LB/RB to cycle living teammates and your own view. This moves only the camera; it does not revive or control a teammate. A living teammate still revives you by staying nearby for 3 seconds. The host now sends enemies/events around the viewed teammate.
Updating the original client
This original release marks version.json force=true. An eligible old published client shows a10-second warning, ends an active run as Quit, then reloads after4seconds. It attempts to flush pending cloud writes for up to6seconds; failure keeps the local copy. The active battle is not resumed. Development/file copies and older updaters may behave differently.
Original co-op: direct first, then TURN
The October 21 original announcement adds server-assisted co-op for signed-in accounts when mobile data or a router blocks direct peers. Source 006257fa first tries STUN-only WebRTC for up to 9 seconds, without requesting TURN credentials or reserving a relay slot. A failed direct attempt, including an earlier connection failure, makes a signed-in host retry immediately with TURN if the service authorizes the account. The TURN-enabled attempt allows 15 seconds; the browser can still choose a direct route. Signing in is required for the credential request, but does not guarantee authorization or a working relay.
The host tells the guest to request TURN only on a TURN-enabled offer; a normal offer requests none. Connected and Connected (via server), Conectado (por servidor) in Spanish, both count as connected. The label alone does not prove the actual network route. Wait until every intended player is connected before starting. The old Firebase Realtime Database gameplay relay remains disabled; TURN is a separate route.
During the current page session, the host remembers each pair whose direct attempt failed while the host was signed in even after a player leaves or the room is recreated. That pair starts subsequent attempts with TURN if available, skipping the initial 9-second wait. After two distinct guests have recorded direct failures, the host starts all further peers with TURN if available. This is failure memory, not proof that TURN was authorized or used. Reloading the page starts a fresh session.
If authorization is refused or the relay service/network fails, the original falls back to STUN-only networking. It can still connect directly, but networks that block direct peers may still fail. A refused request (403) is not retried for 30 minutes; other failed requests wait one minute. The credential request has a separate four-second abort timer. The client reuses valid temporary credentials until ten minutes before their stated expiry; the source describes a two-hour credential lifetime. These are original-client rules, not a test of relay availability for your account.
Finish runs, load the same current original version and keep all room tabs active. Allow the initial direct attempt up to 9 seconds and a TURN-enabled retry up to 15 seconds, plus any credential request; this is not a guaranteed total connection time. A guest waiting for its first offer has a separate 27-second placeholder timer. After a further failure, the host normally retries after 15 seconds; anonymous/no-account hosts do not request TURN and keep that retry. If it still fails, compare permitted Wi-Fi/mobile data and report host/guest role, exact room status and both networks. Preserve accounts and saves. These rules do not enable TURN in the independently embedded community game.
Source versions
Data, traits, cloud revision conflicts and spectating:ce578531. Direct/TURN transport last changed at006257fa; friend/ranking timings remain11fe868c. These are separate source layers; the earlier network-only release did not introduce the Kecleon mechanics.
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/006257fa748ad6ce11a3e1752f1aaf49e236e734/js/data/changelog.js
- https://github.com/JPTER78/pokesurvivor/blob/006257fa748ad6ce11a3e1752f1aaf49e236e734/js/net/net.js
- https://github.com/JPTER78/pokesurvivor/blob/006257fa748ad6ce11a3e1752f1aaf49e236e734/tests/net.test.cjs
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/version.json
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/core/updater.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/data/changelog.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/core/db.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/firestore.rules
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/data/shop.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/data/abilities.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/data/ability-fx.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/data/natures.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/systems/mons.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/data/tms.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/data/upgrades.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/net/coop.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/ui/hud.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/entities/player.js
- https://github.com/JPTER78/pokesurvivor/blob/ce5785313b0205af8b9477423f64b0a7b7039dcd/js/systems/combat.js