Code updateSep 25, 2026, 09:59 PM UTC

CS2 Update (Sep 25, 2026)

New CS2 patch adds a Major token reminder popup, refines pet book and popup behavior, overhauls chicken audio, and introduces infrastructure for better smoke lighting and weapon sound suppression.

Quick read

  • New Major shop balance popup reminds players to spend remaining event tokens and links directly to the Major hub.
  • Main menu popup handling has been refactored, improving cleanup of notification callbacks and avoiding stuck popups.
  • Pet book and vanity pet systems received UX updates, including date-based labels for retired pet books.
  • Official LATAM map annotations for de_train were updated, likely refining in-game guide markers.
  • Smoke grenade lighting received new engine support and a server command, with a scripted map now requesting smoke lighting recomputation after room-light changes.
  • Chicken audio was expanded with new hen, pullet, panic, flap, and scratch sounds, plus tuned volumes and pitches in both game and UI.
  • Weapon handling and reload sounds across several guns now use standardized suppression settings to better control overlapping foley noise.
  • New month-only economy date formats and protocol/metadata tweaks prepare the UI and tools for cleaner time-period displays and updated command categorization.

A new CS2 patch focuses on tournament shop visibility, pet/vitality quality-of-life tweaks, richer chicken audio, and some under-the-hood work for smoke lighting and sound suppression while keeping gameplay behavior effectively the same for most players.

Tournament Major Shop: Token Reminder Popup

  • New Major balance popup: A dedicated major_store_balance popup has been added to the UI, with new layout, script, and styling files specifically for this feature.
  • What it does: When conditions are met, the main menu can now surface a popup that:
    • Shows your remaining Major tokens ({d:balance}) with the familiar coin icon.
    • Uses the active event’s short name (e.g. a specific Major) and themed background/logo.
    • Offers a single prominent button to “Visit The Major Hub & Shop”.
  • Text updates: New English strings describe the popup:
    • Title: “You Have Tokens To Spend”
    • Description warns the event shop is “closing soon” and nudges you to spend remaining tokens.
    • A localized button label routes you to the Major hub.
  • Trigger logic: The main menu’s notification loop now includes _CheckMajorStoreBalance():
    • Runs only when you’re on the Home tab and not currently in a match.
    • Requires a valid connection and inventory.
    • Looks up the active tournament’s seasonal token entry and a redeemable_balance field.
    • Only fires if your balance is at least 99 tokens.
    • Respects an existing “has popup notification” flag so it doesn’t pile on top of other popups.
  • Why it matters: This strongly suggests players with a larger stash of unspent Major tokens will now get a one-time reminder before the shop goes away, reducing the risk of missing out on event rewards.

Main Menu & Notification Handling Improvements

  • Centralized popup closing: Several main menu flows that previously called UiToolkitAPI.CloseAllVisiblePopups() now route through a new helper _CloseAllVisiblePopups().
    • This helper both closes popups and cleans up any registered JS callbacks used for popup notifications.
    • It also resets _m_bHasPopupNotification, reducing the chance of “stuck” notification state.
  • Unified callback registration: A new _RegisterPopupNotificationCallback() utility wraps UiToolkitAPI.RegisterJSCallback and ensures callbacks are unregistered when the popup closes.
    • Used for rental-expire notifications, pet-event notifications, and the rank-up redemption store popup.
    • May reduce callback leaks and unexpected interactions when multiple popups are involved.
  • Rank-up store popup: The rank-up redemption store notification now uses the unified callback helper rather than manually managing the handle.
  • Generic popup cancel behavior: For simple popups created via ShowGenericPopupOneOption, if the user cancels, the code now explicitly fires UIPopupButtonClicked and invokes the supplied callback.
    • This means notification callbacks should run consistently whether you click the button or close the window.
  • Why it matters: Players should see fewer cases where popups feel “stuck” or where the UI acts like a notification is still active after being dismissed. Plugin-like UI behaviors that depend on those callbacks should also be more reliable.

Pet Book & Vanity Pet UX Tweaks

  • Live pet in main menu:
    • _HidePetEntities and _ShowPetEntities no longer send explicit nest enable/disable inputs to the vanity entity.
    • The pet’s upgrade level is still read and used, but whether lower-level pets can “walk around” is no longer controlled via that older toggle.
    • This suggests pet behavior in the main menu is being streamlined to rely on newer systems instead of entity input hacks.
  • Context menu pet book entries: The playercard pet book menu logic now:
    • Treats the “current book” label as always using the “Current Book” text (no pet name substitution).
    • For retired pet books, it unpacks each older pet item ID and attempts to build a more meaningful label:
      • Reads the pet’s display name (custom or default) and a deployment date attribute.
      • Uses InventoryAPI.LocalizeDateCoarsely with a month granularity to compute a coarse hatch date.
      • Fills in a new pet_book_menu_retired localized string that displays {s:hatch_date}.
    • Only adds an entry if it can produce a non-empty label, so corrupt or incomplete pet book files don’t clutter the menu.
  • Localization changes:
    • pet_book_menu_recent and pet_book_menu_numbered strings were replaced by a single pet_book_menu_retired key.
    • Tooltip text still describes pet books as “Books left by your past pets”.
  • Why it matters: Pet book entries for older pets now appear labeled by an approximate month/year rather than just “Book 1/2/3”. This should make it easier to recognize and revisit memories tied to specific time periods of your pet history.

Official Map Guide Update: de_train (LATAM)

  • Updated annotation resource: The packaged official map annotation data for de_train has a modified LATAM JSON (de_train_latam.json).
    • File size increased slightly, indicating a small content adjustment.
  • Likely impact: This most likely reflects minor updates to the official in-game map guide for players in the LATAM region, such as:
    • Tweaked grenade markers, callout positions, or explanatory text.
    • Small corrections or clarifications rather than large-scale layout changes.

Smoke Lighting: New Command and Projectile State

  • New server command: A sv_smoke_lighting_changed command has been added on the server side.
    • Description: “Recompute smoke volume LPV caches”. LPV (light propagation volume) refers to dynamic lighting data.
  • Rush 001 script integration: The rush_001 map script now:
    • Calls a new async helper NotifySmokeLightingChanged() after changing room lights in SetRoomLights.
    • That helper delays briefly and then sends Instance.ServerCommand("sv_smoke_lighting_changed").
    • This means that on this map, certain scripted lighting changes explicitly tell the engine to recompute smoke lighting.
  • Smoke projectile fields: Both client and server smoke grenade projectile classes gained a new uint8 m_nSmokeLightProbeRegen field.
    • While the exact use isn’t exposed, it strongly suggests more explicit tracking of when smoke volumes need their lighting probes regenerated.
  • Why it matters: Players may notice more consistent lighting inside and around smoke grenades, especially in maps or modes that change lighting dynamically. For creators and modders, this shows a path toward synchronizing environmental lighting changes with smoke rendering for more accurate visuals.

Audio: Chickens Get a Full Sound Pass

Ambient Chicken Audio Expansion

  • New chicken audio assets: Over 30 new chicken-related sound files have been added under sounds/ambient/common/animal, including:
    • chicken_idle_hen_01–06
    • chicken_idle_pullet_01–05
    • chicken_panic_hen_01–05
    • chicken_panic_pullet_01–03
    • chicken_flap_single_01–09
    • chicken_scratch_01–11
  • UI sound event definitions: game_sounds_ui.vsndevts now wires these into several events:
    • Idle events for pullets and hens now mix in the new hen and pullet specific idle sounds.
    • Panic events for hen and pullet variants use the new panic clips instead of older generic ones.
    • PhotoBooth variants (chickens in the UI/pet viewer) get matching hen/pullet audio with tuned volume and pitch.
    • New interactions: Several new events like Chicken.Flap.Single, Chicken.Scratch, and chick-specific PhotoBooth variants were introduced with distance curves, reverb, and mixgroup assignments.
  • Volume and pitch tuning: Numerous chicken-related events saw fine adjustments:
    • Lower volume for chick pecks and PhotoBooth pecks, making them less intrusive.
    • Slightly reduced pitch on some idle and PhotoBooth sounds to sound more natural.
    • Claw sounds for chicks reduced from 0.2 to 0.1 volume.
  • Why it matters: Whether in matches or in the pet/PhotoBooth UI, chickens now have more detailed and varied vocalizations and movement sounds. The changes aim for richer, less repetitive ambient sound that’s also less overwhelming in menus.

Weapon Foley Suppression Tuning

  • Suppression on weapon handling sounds: Many weapon-side handling and reload foley events in game_sounds_weapons.vsndevts now enable sound “suppression”:
    • Events for belt-fed LMGs (Negev, M249) like Coverup, Boxout, Boxin, Chain, Coverdown, and Pump gained:
      • suppression_enable = true
      • suppression_volume_multiplier = 0.07
      • suppression_falloff_multiplier = 0.2
    • Shotguns and rifles have similar settings on certain draw, pump, inspect, and ammo-add events (XM1014, Nova, Sawed-Off, MAG-7, SCAR-20, AK-47, MP5, etc.).
    • A SCAR-20 inspect event that previously had suppression disabled now has it enabled with the same parameters.
  • Likely behavior: Weapon foley should be slightly more controlled and less cluttered in intense situations, especially from the local player’s perspective and when multiple similar events overlap.
    • Gunshot balance should remain intact; this targets non-fire sounds like rattles, pumps, and inspect motions.

Economy & Date Formatting

  • New month-only date formats: csgo_english.txt now defines additional economy date formats:
    • Econ_DateFormat_MonthOnly and Econ_DateFormat_GMT_MonthOnly, plus their :f variants.
    • These format dates as “{monthlong} {year}” (with or without GMT).
  • Where it might show up: These formats are typically used in UI presentations of item or event time ranges, such as:
    • Period-based stats, operations, or series windows.
    • Pet or token-related timelines (for example, those pet book hatch dates that are localized “coarsely” by month).
  • Why it matters: Players should see cleaner, more readable month/year-only labels where precise day/time isn’t important.

Commands, ConVars, and Protocol Notes

  • Workshop flag removals: Many commands and convars had the workshop_whitelisted tag removed in internal listings, including:
    • Grenade and item limit cvars (ammo_grenade_limit_*, ammo_item_limit_healthshot).
    • Bot-related convars (bot_allow_*, bot_quota, bot_difficulty, etc.).
    • Commands like bot_add, bot_kick, callvote, give, god, noclip, say, say_team, map_workshop, restart, setpos, and more.
    • Annotation tools (annotation_load), voting, logging, and various debug/entity commands.
  • Impact for creators and plugins:
    • This is an internal categorization change; it does not by itself remove or add functionality.
    • However, it may affect how certain tools reason about which convars/commands are expected to be safe or available for Workshop scenarios.
    • Server operators and mod authors should keep an eye on future documentation if Workshop-related permissions are being rethought.
  • User message protocol tweak: The CCSUsrMsg_WeaponSound message dropped an optional bool stealth field from the schema.
    • The removal suggests that the “stealth” bit was either unused or folded into other sound-handling logic. No player-facing control for this existed, so impact should be minimal.

Overall Impact

This update is light on obvious gameplay changes but carries several quality-of-life and audio/visual polish improvements:

  • Major fans are less likely to forget about unspent tokens thanks to a new reminder popup.
  • Pet lovers get clearer, time-based labels for their retired pet books and slightly smoother main-menu pet behavior.
  • Chickens sound more varied and natural both in matches and in the UI.
  • Smoke visuals gain infrastructure for better alignment with dynamic lighting, with the first concrete use wired into a scripted map.
  • A broad layer of sound-tech tweaks and console metadata updates may set the stage for cleaner audio and clearer tooling in future patches.

Most players will experience this as a smoother main menu, richer ambient soundscape, and subtle graphical/audio consistency gains rather than direct gameplay shifts.

Back to updates

Recent updates

Official updateSep 25, 2026, 09:54 PM UTC

Counter-Strike 2 Update (Sep 25, 2026)

Various gap and clipping fixes, reload audio fixes, `sv_clantags_enabled` server option, and main menu egg placement changes.

  • Various gap fixes and clipping adjustments.
  • Fixed some cases where loud reloads would persist while trying to stealth reload.
  • Added `sv_clantags_enabled` option so custom servers can disable clan tags.
  • The eggs of background players in main menu lobbies now rest in nests.
View details
CS2@CounterStrike
Sep 24, 2026, 10:05 PM UTC
View details