Guide updated
Shop and gacha stay open during event refresh
In original d667c216, receiving the server time after launch or starting/ending Halloween may update the menu background and music, but no longer rebuilds the main menu over an open shop, gacha or another submenu. The main menu is rebuilt when you return to it. Runs still retain the event flag from their start; this fix does not change candy ownership or purchases.
Ranking: longer seal retries and All-time damage
The client requests each player’s run seal up to 8 times, with 3-second retry gaps and at most 15 seconds per request. Requests are bounded by an 80-second client window; a new attempt needs at least 2 seconds remaining. 401/403 stops retries. A qualified run lacking a seal now shows a connection warning, including a team missing any member’s seal. This cannot recover an older unsealed run. In All-time, a higher damage record is saved even when time does not improve and both top-50 lists are missed; the prior better time/level/kills are preserved and pending time uploads retain the higher damage. Friends only also fetches friends and yourself outside the All-time top 50, sorts by positive damage and shows at most 50, cached for 2 hours. Other periods and species tables retain their top-50 scope. The global position badge does not become a friends-only rank. Upload damage caps and minimum run times are unchanged.
A fresh server seal is required for every run
The client requests each player’s run seal up to 8 times, with 3-second retry gaps and at most 15 seconds per request. Requests are bounded by an 80-second client window; a new attempt needs at least 2 seconds remaining. 401/403 stops retries. A qualified run lacking a seal now shows a connection warning, including a team missing any member’s seal. This cannot recover an older unsealed run. In All-time, a higher damage record is saved even when time does not improve and both top-50 lists are missed; the prior better time/level/kills are preserved and pending time uploads retain the higher damage. Friends only also fetches friends and yourself outside the All-time top 50, sorts by positive damage and shows at most 50, cached for 2 hours. Other periods and species tables retain their top-50 scope. The global position badge does not become a friends-only rank. Upload damage caps and minimum run times are unchanged. Before a new run, check sign-in, public profile and connectivity. Every co-op member needs their own seal; preserve local saves. Missing ranking alone does not establish a save failure.
Upload cap, separate from combat damage
For the original client’s score field, use t = integer run seconds clamped to 1–86,400. Before t = 1,800, uploaded damage is 0. From t = 1,800, it is max(0, min(floor(cumulative credited damage), (t − 1,799) × 50,000)). Thus the limits are 50,000 at 30:00 and 5,050,000 at 31:40. The cap uses total run time, even if Judgment began late. It also covers Halloween Gengar because that encounter uses the same score field and submission path. This does not cap damage per hit, DPS or the in-run display; enter the cumulative credited score, not raw DPS multiplied by time.
Time gates and separate run records
A run needs at least 120 seconds for ordinary boards and 600 seconds for its Pokémon-specific board. The uploaded time is an integer bounded to 1–86,400 seconds. The new rt field retains this run’s time when the stored best-time record belongs to an earlier, longer run. Best time and best damage can come from different runs. Daily, weekly and monthly boards still retain their top 50; this update does not reset them.
Which game version does this describe?
Latest original execution rules: 5c97df2e (October 27); reviewed October 28. Pokémon, move, evolution and legal-learning data remain d567c6da; Halloween stays f7fbcfc4. All 13 tools are retained. New original calculations use the independent equipment pool and corrected buff transition. Previously versioned shares without an execution pin retain d567c6da behavior and display that pin; use Recalculate with current rules to migrate deliberately. Community remains its separate fixed snapshot and keeps its own rules. The iframe remains https://survivorpoke.com/play/. Source tests and projections do not establish that both live games behave identically. Public bytes observed October 28 match embedded build 3667bcad81, declared selective upstream f7fbcfc4. The Community calculator is the fixed 395a0e47 snapshot (build marker 559ca0a7c8), not a reproduction of that current embedded build.
Original source preview · spoilers
Original d667c216 extends Halloween to October 30–November 2 inclusive in Europe/Madrid, ending November 3 at 00:00. In 2026: October 29 at 23:00 through November 2 at 23:00 UTC. The same window covers the map, candy shop and witch skins, Ghost banner and great Gengar. This is the scheduled original-game window, not proof that the event is active now; the source preview below describes its rewards.
Server clock and run boundaries
The original reads the Date header of version.json on load and every 15 minutes, then advances it with performance.now. Without that server reference the event stays off. Changing the device date does not unlock it. The menu checks date changes at most every 10 seconds and shows a countdown from 14 days before the event. A run keeps its starting event flag; in co-op the host supplies it. Public dev URLs cannot force Halloween. This Wiki's tools are explicit scenarios and do not query that eligibility clock.
Candy: drop budget, collection and shop cost
The shared ambient budget is floor(run seconds ÷ 60 × 1.25). Ghost defeats and broken pumpkins need at least 1 unspent unit; other non-Judgment enemies need a backlog of 3, but each successful drop consumes only 1 and drops 1 candy. Defeating more enemies cannot bypass the time budget. Drops still need collecting. Pumpkins also give 8 XP and a 50% chance of 2 coins. Entering the great Gengar fight grants 60 candy; in co-op the host grants it to everyone. Judgment enemies do not produce ambient candy. At a 30:00 transition, 37 ambient drops + 60 bonus = at most 97, so three such runs give 291, short of a 300-candy skin. A delayed transition can change that budget; the planner asks for its actual start time and whether the fight was reached.
Three permanent witch skins
Kecleon sells Witch Gengar, Witch Pikachu and Witch Umbreon for 300 candy each while Halloween is open. Gengar has a hat and cape; Pikachu and Umbreon have a hat only. These are cosmetic sprite sheets, including shiny variants, not new species, moves or stat boosts. A purchase is permanent and cannot be bought twice. You may buy before owning the species; automatic equipping requires ownership. Equip or remove it from that Pokémon's card later. Candy is stored in bag.candy, purchased skins in skins and the most recently selected outfit in pskin. Kecleon's own shop hat is decoration, not a fourth purchasable skin. Candy is earned, not a free coin-shop purchase.
Spooky Night: its own pool and pity
The event banner uses Ghost-type Pokémon from every region that have game sprites, split by their existing rarity. It is internal banner 10, not a tenth generation. It has independent pity[10], fixed 2% shiny rolls and no Shiny Charm, so collection completion cannot raise it to 4%. Rarity rates remain 45/30/17/6.5/1.5%; the 70th pull without a five-star forces five-star and each ten-pull guarantees at least four-star. An empty rarity falls back in order 0, −1, +1, −2, +2, −3, +3, −4, +4. A hundred-pull is ten ten-pulls. Shiny duplicates reroll an unowned shiny in the same actual rarity pool; if all are owned, the result becomes normal. The nine regular regional banners and their charms remain separate.
Great Gengar at Judgment
An event run replaces the minute-30 Arceus presentation with a giant Witch Gengar. The fight may wait for a Rift or card choice to finish. Gengar is fixed Ghost-type with its own base Defense and Special Defense, not an Arceus Plate selection. It remains an invincible score target: credited hit damage is scaled by 0.05 ÷ (1 + arena seconds ÷ 150), without reducing its HP, and control/status effects are suppressed. Automatic targeting skips Gengar while summoned legendary enemies live, but area attacks and projectiles that actually collide can still score hits. The same damage leaderboard is used. Legendary reinforcements always exclude Arceus #493, even in this Gengar run. Existing contact escalation, player speed cap, five-second reinforcement schedule and 35-minute item break remain; this is not an ordinary capturable Gengar boss.
Night biomes, pumpkins and enemies
Pumpkin Patch, Haunted Graveyard and Gloomy Forest replace the three biome presentations, with themed music and a dark menu. Each enemy tier adds up to two eligible Ghost species not already in its randomly chosen cast; availability and the original tier's candidate rules still apply. These are additional run candidates, not guaranteed fixed spawns or changed species stats. Pumpkins use the seeded map, so group members see the same positions. The menu has denser decorative pumpkins; do not use its density as a combat drop rate.
Save, cloud and edition boundaries
The original's normal successful-upload gap is now 25 seconds, previously 65. A cloud Save already waiting in the timer tries to upload when the page becomes hidden, respecting a 21-second rules gap; merely leaving without a scheduled Save does not create one. This is an attempt, not proof of server receipt: retain the local copy and check the cloud state before changing devices. Purchased skins merge as permanent acquisitions; the latest timestamp chooses the worn outfit, including removal. The unbuilt dev page outside localhost is local-only and disables account/cloud/ranking access. The embedded community game at survivorpoke.com is a separate fixed version: this upstream synchronization updates the Wiki and original-rule scenarios, not that game.
Mobile controls and display fixes
Android Back first closes overlays or returns within menus, pauses a running game, and only exits at the root menu. Losing focus on touch devices pauses play. Card selection commits on touch release, avoids a duplicate following click and resets a joystick whose pointer is lost or whose touches end. Alerts wrap in narrow screens; toasts no longer capture touch. The top bar can use icons only, shorten the name and abbreviate large amounts; full values remain in tooltips, with logout moved into Settings on small screens. Defense display is rounded. Mobile username fields disable auto-capitalization and autocorrection. Audio suspension when minimizing was adjusted. These are original-source changes, not a claim of physical-device tests or equivalent behavior in the embedded edition.
Source versions used here
Pokémon, move levels, evolutions and legal learnsets stay at d567c6da; seasonal combat/rewards stay at f7fbcfc4 and damage/buff execution at 5c97df2e. Only the calendar is updated to d667c216. New planners use the extended window; old f7 calendar shares retain the former November 2 midnight end and show a calendar selector. The original public bundle 01d06d8e0c matched immutable d667c216 on October29. The embedded game remains a separate observed3667bcad81 build declaring selective f7 adaptation; this Wiki does not change it or claim that its calendar was extended. Community calculations remain fixed395a0e47/build559ca0a7c8.
Tools
Related pages
- PokéSurvivor Updates · 2026-10-29: October 28: Halloween lasts one day longer
- PokéSurvivor Updates · 2026-10-28: October 27: steadier co-op, defense and ranking fixes
- Why is my leaderboard record missing?
- Halloween: dates, candy, skins and Spooky Night
- Halloween skins
- Kecleon Shop
- Spooky Night
- Great Witch Gengar (score target)
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/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/systems/halloween.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/systems/gacha.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/data/shop.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/core/skins.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/systems/judgment.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/data/enemies.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/world/world.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/core/db.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/game.js
- https://github.com/JPTER78/pokesurvivor/blob/f7fbcfc4c278080c74af9538e5efc2fe7e3709a9/js/data/changelog.js
- https://github.com/JPTER78/pokesurvivor/blob/d667c216ddc99ee7bbb16a0ca0528f25461f037e/js/systems/halloween.js
- https://github.com/JPTER78/pokesurvivor/blob/d667c216ddc99ee7bbb16a0ca0528f25461f037e/js/game.js
- https://github.com/JPTER78/pokesurvivor/blob/d667c216ddc99ee7bbb16a0ca0528f25461f037e/js/ui/shop-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/d667c216ddc99ee7bbb16a0ca0528f25461f037e/js/ui/gacha-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/net/ranking.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/net/coop.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/game.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/README.md
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/entities/player.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/data/items.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/net/net.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/core/touch.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/ui/run-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/ui/test.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/entities/enemy.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/systems/spawner.js
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/contacto/index.html
- https://github.com/JPTER78/pokesurvivor/blob/5c97df2e764a11f7a99b46c2104413a073f117ad/js/data/changelog.js
- https://survivorpoke.com/version.json
- https://github.com/JPTER78/pokesurvivor/blob/d667c216ddc99ee7bbb16a0ca0528f25461f037e/js/data/changelog.js
- https://github.com/JPTER78/pokesurvivor/blob/d667c216ddc99ee7bbb16a0ca0528f25461f037e/.github/workflows/live.yml