🎖️ Season 42 is live — your Season 41 record stays preserved →
PUBG.ARMY
Changelog

Things we ship.
Things we correct.

Every fix, feature, and improvement — out in the open. When something breaks, you’ll read about it here, along with what we did about it.

Profiles reborn as the in-game Career screen + faster loads

Every profile is now the in-game Career screen

feature
  • Player profiles have been fully rebuilt in the visual language of PUBG's in-game Career screen — a metallic operator-tier plate, Overview / Stats / Match History / Weapons / Medals / Intel / Arcade tabs, and your season laid out like the game itself
  • New visuals throughout: a playstyle-fingerprint scatter (range × accuracy per weapon), a blue-zone-discipline ring, combat ratio gauges (finish rate, damage efficiency, knocks dealt vs taken), a kill-feed HUD with real weapon art, cinematic map banners, and laurel-framed medals with progress bars toward the ones you haven't earned yet
  • Season trajectory: sparklines and 'vs last season' deltas on your headline stats, so you can see whether you're improving across seasons at a glance
  • Shareable everywhere: per-tab share cards (signature weapon, cheater-hunter), the animated season recap, and a new embeddable live badge at /players/<name>/badge for Twitch panels, Discord, and forum signatures
  • Fully keyboard-navigable and screen-reader friendly — real tab semantics, focus rings, and text alternatives for every chart
  • The career view IS the profile now — the old /players/<name>/career link just forwards to the profile

Profiles load faster

improvement
  • Profiles now paint instantly — the career screen is server-rendered with your stats already in it, so active players see their numbers immediately instead of waiting on a client fetch
  • For players whose data has to be pulled live (no recently-collected matches), the screen now loads with a structured layout that fills in as the data arrives, instead of a blank spinner — and a repeat view within the cache window paints those numbers instantly too

Five new stat surfaces + SEO funnel + self-correcting season

Five new stat surfaces from existing telemetry

feature
  • Finish Rate — the % of your knockdowns you closed with a kill on the same victim within 60 seconds. Now you can see whether you actually finish what you start, separately from raw knock count
  • First Kill — your average time-to-first-kill per match, scoped to matches where you actually opened. Tells you whether you're a hot-drop opener or a mid-game closer
  • What Kills You — counter-meta card mirroring Weapon Arsenal: which guns opponents have actually used to put you down this season, with headshot % and avg distance. Plan armor and range loadouts off real data, not the meta pages
  • Vehicles — favourite ride, total rides, vehicle destroys, roadkills given, and rotations that ended in death (vehicle deaths). Season-scoped from telemetry, separate from PUBG's lifetime counters
  • Kill Heatmap — your kill locations plotted on every PUBG map you've played, with a per-map switcher (Erangel, Miramar, Sanhok, Vikendi, Taego, Deston, Rondo, Paramo, Karakin). Auth-walled at the API; signed-in operators see the full point cloud. Quietly retires the long-standing "Heatmaps SOON" promise — the feature is now live on every profile
  • All five surfaces read from telemetry we already collect — zero new schema, zero PUBG API calls

Season boundary auto-corrects from match data

improvement
  • The exact moment a new PUBG season starts is now derived from the data, not a hardcoded constant. The cron looks for the maintenance-window gap in collected matches — the multi-hour silence PUBG runs before a season launches — and pins the season boundary to the first match after that gap
  • Idempotent: re-runs every cron, only writes when the refined timestamp differs from what's stored
  • Why this matters: if PUBG's actual rollover drifts from the time we hardcoded by even a few minutes, every match in that window would have landed in the wrong season's stats. The data-driven boundary closes that drift permanently

Season rollover survives a silent cron

fix
  • GitHub Actions throttled the */15 scheduled cron right around the Season 42 launch this morning — the watchdog that flips is_current from S41 → S42 only ran from that path, so the site briefly served stale-season previews
  • The season watchdog (plus the boundary refiner) now also runs from the traffic-driven tick that fires on profile and leaderboard loads. With visitors hitting the site, is_current stays correct even if the external cron silently pauses for hours
  • Best-effort and cheap — the watchdog has its own 1h gate, so the per-tick cost is one cheap query, not a PUBG API call

48,000 new player pages indexable on Google

feature
  • Every player we've ever seen in match telemetry — not just the 115 registered operators — now ships to Google in the sitemap. That's ~48k long-tail PUBG player pages discoverable through search overnight
  • Capped at 48,000 most-recently-seen names (within Google's 50k/sitemap limit) and filtered to the last 180 days so we don't waste crawl budget on stale accounts
  • Registered operators stay at higher priority (0.7) than seen-only players (0.4); their lastModified follows the player's most recent appearance in collected matches, so Google re-crawls when they show up again
  • Why this matters: search traffic for any of those names lands directly on pubg.army instead of tracker.gg — biggest organic-funnel expansion since launch

"Is this you?" claim CTA on preview profiles

feature
  • When a visitor lands on a profile that's only showing PUBG API preview stats (the new long-tail SEO traffic), the banner now leads with a personalized "Is this you, <name>?" headline instead of a generic preview note
  • Adds a Google sign-in option next to Discord (matches the homepage funnel) so visitors can claim their profile with whichever account they already have
  • Sign-in events are tracked with from:player_preview + the viewed player name, so the SEO → registration conversion is now measurable

Faster profile loads

improvement
  • Cut a redundant ~1–2s /api/auth/session call that fired on every page (the session no longer refetches on window focus — your login state doesn't change between tab switches)
  • Profile pages now serve their server-rendered shell from a longer cache, so the first paint lands faster; live stats still refresh on every load

Arcade & event modes now tracked on your profile

feature
  • New "Arcade & Events" card on every profile breaks down your limited-time modes — AI Ally Duo, Team Deathmatch, Heist, Intense BR — with matches, kills, avg damage, and best game per mode. Each mode is scoped to its own event window (e.g. the AI Ally Duo event runs Jun 17 – Jul 1), so a finished event's stats never bleed into the next
  • Fixed a collection bug that was silently discarding event matches: anything played before the BR season's start was being thrown away, which killed AI Ally Duo data (the event runs on its own 2-week schedule, not the BR calendar). Arcade & event modes now collect regardless of the BR season boundary
  • These modes are tracked separately and don't count toward your BR season K/D or win rate — so a 40-kill Team Deathmatch won't distort your Battle Royale stats

New season no longer blanks out your profile

improvement
  • For the first 24h of a new season — before anyone has played enough for stats to collect — your profile now shows your preserved previous-season record by default, with a clear "Season 42 just started — showing your Season 41 record" banner, instead of an empty "stats on the way" screen
  • One click on the Season 42 · Live pill jumps to your live progress; the empty-season screen now carries the season switcher too, so you're never stranded with no way back
  • You'll see your new-season stats here as soon as you play your first matches in it and we sync them (every ~15 min)
  • Bonus: this also removes a slow live-API round-trip every profile load was doing at season start — profiles load fast again

Fixed wrong-season numbers right after the rollover

fix
  • Two profile caches (the preview cache and the season-stats cache) were keyed by player name only, so for up to 30 minutes after Season 42 went live a profile could show Season 41 matches and stat totals under a Season 42 header
  • Both caches are now scoped per-season, so a rollover can never serve one season's numbers on another season's view

Zone IQ + Season 42 auto-flip

Top Victims no longer shows a blank #1 entry

fix
  • Some PUBG kill events come back with an empty victim name (mostly unnamed bots in certain modes) — the Top Victims list was collapsing all of them into a single nameless aggregate that bubbled to #1 on heavy bot-killers. The query now filters empty names so your real top victims rank correctly

Zone IQ — how the gas is killing your record

feature
  • Every player profile now has a Zone IQ card: the % of your deaths that came from the blue zone, compared to the global top quartile (P75) across every operator with ≥10 recorded deaths
  • Verdict-adaptive copy and accent color — surgical (emerald), sharp (cyan), on-par (zinc), loose (amber), or camper (orange). Tells you in one glance whether you're letting the gas decide your fate
  • Why now: Season 42's new blue zone scales damage by time-in-zone instead of distance — camping late circles got materially worse. Zone IQ surfaces your personal exposure so you can see whether the new rules will hit your record harder, the moment S42 data starts landing
  • Pending state below the 10-death floor so a freshly-collected profile sees 'need N more deaths' instead of a blank tile

Zone IQ recalibrated to the top quartile

improvement
  • Switched the comparison statistic from the global median to the 75th percentile (top-quartile cutoff). In our actual data the median sits at 0% — most operators have zero zone deaths — so any player with even one gas-tick death was getting compared to 0% and landing in 'camper' by default. P75 is where the meaningful camper signal lives
  • Verdict ladder re-anchored: a literal zero-zone-death record is now hard-pinned to 'surgical' (it can never be demoted just because P75 happened to be small), and the camper/loose/par/sharp bands measure your distance from the top-quartile cutoff instead of an empty median
  • Card label updated from 'Global median' to 'Top quartile' and the pill now reads 'vs top quartile'. Falls back to pending if even P75 is 0% (data still warming up)

Season 42 labels auto-flip at T=0

improvement
  • The site relabels Season 41 → Season 42 automatically the moment PUBG's June 17 maintenance ends (08:30 UTC) — page titles, hero copy, leaderboard heading, profile labels and AI prompts all flip with no deploy needed
  • The 'Season 42 drops Wed June 17' announcement bar retires itself on T=0 and is replaced with a 'Season 42 is live — your Season 41 record stays preserved' callout linking straight to your profile

Belt-and-braces under the hood

improvement
  • If our DB ever blips, the compiled fallback also knows the new season — so operator-facing copy never freezes on a stale label even during a DB outage
  • Admin drift check still loud — if PUBG rolls early or late vs the published 08:30 UTC target, the collection-status panel surfaces it instead of silently mislabeling

Season 42 ready — and your Season 41 record stays

Switch seasons on any profile

feature
  • New season switch at the top of every player profile — pick a season and the whole page (hero stats, kill feed, weapon breakdown, squad synergy, cheater report) re-scopes to it
  • When Season 42 goes live, your full Season 41 record stays preserved and viewable — one click to revisit it, permanently

Built for the rollover

improvement
  • The pipeline now follows PUBG's live season automatically — the day Season 42 starts we begin collecting it with no manual switch, and season stats never freeze on the old season
  • Every operator gets an inbox heads-up the moment the new season goes live, with a reminder their previous-season stats are safe

Season 42 countdown

feature
  • New /season-42 page — a live flip-clock counting down to Season 42 going live (Wed June 17, ~08:30 UTC, after the Update #42.1 maintenance)

Snappier player landing

improvement
  • The /players page now defers its heavy background artwork so the page paints and is usable immediately instead of waiting on decorative images to download first

Nav cleanup & a Discord bot CTA

Discord bot, front-and-center

feature
  • New hero card on your dashboard — every PUBG.ARMY slash command (/stats, /recap, /vs, /cheaters, /clan, /status) at a glance with a one-click 'Add to your server' button
  • Card auto-dismisses once you invite the bot (or click the × to hide it manually) — won't keep nagging operators who already added it

Top menu shows every page again

fix
  • At typical desktop sizes (1280-1535px) three pages — Maps, Objects, Changelog — were hiding behind the hamburger. They're back inline now alongside Command Center, Player Profile, Leaderboard, Support, and Clan
  • Won the width by dropping the redundant Home link (the logo already goes home) and tightening padding; large displays still get the full 'Battlefield Intelligence' subtitle and right-cluster text labels

Discoverability, profiles, bot & polish

Trust & disclosure polish

fix
  • Explicit 'Independent fan-built site — not affiliated with KRAFTON Inc. or PUBG Studios' disclaimer now sits above the fold next to the sign-in buttons, and on the dashboard above the developer-API-key field — clarifies for visitors (and automated scanners) that PUBG.ARMY is a third-party stats site
  • Renamed the API-key entry to make it obvious it's a developer.pubg.com token, not a game password
  • Excluded /dashboard and /admin from search indexing entirely (they're login-gated anyway, no SEO value)

Discoverable everywhere (AI + Google)

improvement
  • New /llms.txt — points AI search crawlers (ChatGPT browse, Perplexity, Claude) at what's worth citing
  • Player profiles now ship Person + BreadcrumbList JSON-LD with real stats — eligible for Google rich snippets
  • Leaderboard now bakes the top-10 operators into the HTML as ItemList JSON-LD (was JS-only before)
  • Clan pages ship SportsTeam JSON-LD with members linked back to profiles
  • Match pages ship SportsEvent JSON-LD with winner + competitors
  • Rich OG share previews on leaderboard, clan, and match pages — Discord unfurls with branded cards
  • Site updates reach returning visitors within a minute — no hard-refresh

Profiles got smarter

feature
  • Achievement badges from your real archive: Chicken Dinner, Sharpshooter, Banhammer, 500 Club, Veteran, Long Shot and more — no fake gamification
  • New 'Damage per kill' chart — top 5 weapons that actually do the work
  • Profiles paint instantly — collected stats render right away, season/lifetime fill in a moment later instead of stalling on slow upstream calls
  • Every leaderboard row has a VS button to head-to-head against you in one tap

Discord bot leveled up

feature
  • /stats and /recap now reply with a visual player card, not just text
  • /help has a one-tap 'add me to your server' link — bring the bot to your own clan in seconds
  • /vs head-to-head links unfurl with a matchup card in Discord
  • Replay-proof signature checks, faster replies
  • Season-rollover-proof: stats + Cheater Reports follow the live PUBG season automatically

Cheater alerts in your inbox

feature
  • When a player you faced this season gets banned, we drop a note in your inbox — no need to refresh your profile
  • Justice tracked both ways — cheaters you eliminated AND the ones who killed you

Polish + plumbing

improvement
  • Sitewide UI polish: dim sub-labels lifted, 6-color stat palette, bigger tag pills, hover/focus/press states everywhere, one number/date format, prefers-reduced-motion respected, ambient orange toned down
  • Refreshed 404 page: tactical 'KIA' styling with floating PUBG wreckage drifting around the hero
  • Live visitor counter on /status — first-party only, no third-party analytics, browser ID hashed, DNT respected
  • Live 'N operators in the army' badge on your dashboard so you can watch the army grow alongside your stats
  • Admin panel buttons (refresh/edit/approve/nuke) got proper hover/focus/aria-label treatment — keyboard-accessible everywhere

Email login + bot & profile upgrades

Email login is live

feature
  • Sign in with just your email — passwordless magic link, no password ever stored, no third-party OAuth touched
  • Three equal-weight options on the homepage now: Discord, Google, Email
  • Registration form simplified — just your in-game name; we auto-detect your clan from the PUBG API
  • Live operator count on the homepage — watch the army grow in real time
  • Retired the launch-day apology banner — the auto-heal proved itself stable
  • Admin panel: new Overview cards at the top — operators, active 7d, matches, ban verdicts, action-queue at a glance
  • New /transparency page explaining how AI tools are used here — and exactly what data we collect, what we don't, and how it's protected
  • Discord bot is live — add it to your server via /support and use /stats, /recap, /cheaters, /status in chat

Any-clan bot, instant profiles & minimap fix

improvement
  • Discord bot: /clan now takes any clan tag (try /clan tag:YOURS) and /stats finds every tracked operator — not just one clan's leaderboard
  • Discord bot hardened — replay-proof signature checks and faster replies (debug scaffolding removed)
  • Player profiles render server-side now: your stats paint instantly instead of loading in after the page, and search engines see the real numbers
  • Fixed match minimaps — map backgrounds were silently broken in production; rebuilt as optimized WebP at a tenth of the size

Hero recap + ban-sweep fix

improvement
  • Homepage hero auto-plays a Season Recap demo (the cinematic stat reveal on every operator's profile)
  • Cheater Report data was silently stuck — fixed the cron ordering so ban verdicts actually accrue (30 opponents checked per cron run, every run, forever)

Launch day

Squads, rivals & receipts

feature
  • Squad Synergy on profiles — see who you actually win more with
  • Head-to-head VS pages — /vs/You/Rival settles the argument
  • Match report pages — every archived match is now a shareable link
  • Most Human leaderboard — lowest bot-kill %, bragging rights for purists
  • Weekly recap lands in your inbox every Sunday (active operators only)
  • Profiles now show previous in-game names

Cheater Report

feature
  • Your profile now shows deaths to players who were later banned by PUBG — and the cheaters you eliminated before the banhammer got them
  • Opponents from your archived matches are continuously re-checked against PUBG's ban list
  • Justice is a dish best served with receipts

Operator care: inbox, status & key sharing

feature
  • Your dashboard now has an Inbox — we'll message you there about your account and site news (look for the orange badge in the nav)
  • Public status page at /status — see the sync pipeline's health live, no login needed
  • Opt-in key donation: lend your idle PUBG API key capacity to help sync the whole army (Dashboard → API key, off by default)
  • Registered operators waiting on their first sync now see "your stats are on the way" instead of a confusing not-found page

Launch surge stability

fix
  • 40+ operators registered at once and briefly drained our PUBG API rate limit — collection now heals itself automatically whenever anyone visits the site
  • Profile lookups retry automatically when PUBG's API has a hiccup
  • Friendlier error messages — no more scary 'player not found' dead ends

Season Recap & share cards

feature
  • Animated Season Recap on every profile (the ▶ Recap button)
  • Downloadable share cards with your real stats
  • Profile stats now count up as the page loads

Trust & safety

feature
  • Verified badges for registered operators
  • Report-impersonation button on every profile — a human reviews every report
  • Feedback widget on every page (bug reports, ideas, questions)

Registration

improvement
  • Sign-ups are approved instantly — no waiting
  • Your clan is detected automatically from the PUBG API
  • Collection starts the moment you register

Spotted something broken? Use the feedback widget on any page — every report gets read.