Code updateSep 30, 2026, 11:12 PM UTC

CS2 Update (Sep 30, 2026)

CS2 refines its crosshair and grenade HUD, cleans up Rush 001 and Panorama UI, restructures Cologne 2026 containers, and adds new backend security and rendering plumbing.

Quick read

  • Crosshair styles, limits, and shaders were overhauled, adding friend/observer overlays and simplifying configuration.
  • Grenade throw helper settings gained a new tick spacing control while keeping labeled, scaled tick marks.
  • Cologne 2026 containers were restructured to use consistent volatile attributes and a signature capsule was wired into spraypaint logic.
  • Rush 001’s mode script and multiple HUD/Demo UI components were cleaned up without changing core gameplay behavior.
  • New Game Coordinator messages and schemas were added to better manage secure/trusted mode initialization and validation.
  • Rendering and toolchain updates slimmed shader manifests, unified texture handling, and tweaked PP-Bizon material visuals.

Counter-Strike 2 is getting a substantial HUD and UI refresh focused on the crosshair, grenade-throw helpers, and end-of-round visuals, alongside under-the-hood security protocol work and a set of economy tweaks around upcoming Cologne 2026 containers.

Crosshair Overhaul and New Visual Elements

This update makes several concrete changes to how crosshairs are defined and rendered, and adds new visual layers for observers and team awareness.

  • Crosshair style lineup tightened:

    • cl_crosshairstyle now ranges from 0–8 instead of 0–9.
    • The description for style 7 has been renamed from "Dynamic Quadrant" to "Dynamic Quad".
    • Style 9 (previously "Static Quadrant") has been removed from the selectable range.
    • The in-game text now explicitly states that styles 0, 1, and 7 track weapon inaccuracy, clarifying which options behave dynamically with recoil/spread.
  • Crosshair configuration limits adjusted:

    • cl_crosshair_gap is now clamped between 0 and 128 (was -3840 to 3840). This prevents extreme negative gaps that pulled bars through the center.
    • cl_crosshair_thickness maximum reduced slightly, to 31 (was 32).
    • The dedicated outline color/alpha controls have been removed from the public convar list and from the English UI strings, so custom outline coloring appears to be simplified or consolidated into the main crosshair color section.
  • Friend and observer crosshair layers added:

    • The HUD reticle layout now includes:
      • FriendCrosshair using reticlefriend.vsvg with a faint orange additive overlay.
      • CrosshairObserver using reticleobserver.vsvg for spectator mode.
    • New style classes:
      • .crosshair__friend – lightly opaque orange, additive blend, centered.
      • .crosshair__observer – centered, using a screen blend.
    • This suggests you will now see clearer markings for teammates in your crosshair and a distinct, clean reticle when observing, improving readability in spectating and coaching scenarios.
  • Crosshair shader simplified and focused:

    • The csgo_crosshair shader has been heavily cleaned up and versioned fresh.
    • It now:
      • Works from a smaller, fixed-size parameter buffer (16 elements instead of 64).
      • Drops paths related to friendly icons and glyph atlases, and no longer samples crosshair icons from textures.
      • Focuses on parametric drawing of line and quadrant shapes, blending one primary and one secondary color layer based on per-element alpha.
    • This points to a leaner, more predictable crosshair pipeline, which may reduce subtle rendering artifacts and improve consistency across resolutions and platforms.
  • New reticle assets:

    • Added UI textures in panorama/images/hud/reticle/:
      • reticlecircle and reticlepip variants (with matching _png.vtex versions).
      • reticlefriend.vsvg and reticleobserver.vsvg (used by the new HUD elements).
    • These assets support the new friend/observer overlays and may also be used for future crosshair previews or UI widgets.

Grenade Crosshair and Throw Helper Tweaks

The grenade throw helper system continues to be iterated on, with a new tuning control and some cleaner bounds.

  • New tick spacing control:

    • cl_grenadecrosshair_tickinterval 10 (min 1, max 45, developmentonly) has been added.
    • This adjusts the spacing between ticks on the grenade throw crosshair.
    • While currently flagged as development-only, it shows that valve is actively tuning how readable and granular the throw helper ticks are; this may surface later as a user-facing setting or simply lead to better defaults.
  • Delay convars loosened:

    • cl_grenadecrosshairdelay_decoy / _explosive / _fire / _flash / _smoke no longer have explicit min/max metadata in the convar dump.
    • They still default to 2 seconds and remain archived per-user.
    • In practice players shouldn’t notice a visible change, but it suggests the delays are being managed a bit more flexibly under the hood.
  • Label and scaling controls unchanged but emphasized:

    • cl_grenadecrosshair_ticklabels and cl_grenadecrosshair_tickscaling remain, indicating Valve is still committed to the labelled, distance-scaled throw UI rather than rolling it back.

HUD, Demo, and End-of-Round UI Polish

Several combat and viewing HUD components have been cleaned up, with a focus on reliability and clarity rather than new features.

  • Round Win Panel and MVP map panel polish:

    • hudwinpanel.js and hudwinpanel_background_map.js have been refactored:
      • Debug logging and verbose comments have been stripped, which should slightly reduce console noise.
      • MVP reason handling is kept intact but the cases are simplified.
      • The round probability graph and per-event markers are unchanged functionally, but the code’s timing and sound sequencing are a bit more straightforward.
    • The MVP background map logic still selects animations based on MVP reason (ace, bomb plant, defuse, burn damage, etc.), but the paths are now cleaner and easier to maintain.
  • Demo controller HUD refinements:

    • huddemocontroller.js has been de-noised:
      • Removed debug messages and internal comments.
      • Keeps the same observer modes, timeline event labels, and highlight controls.
      • Round markers now get set up with less cluttered math and fewer hacks.
    • The behavior of TrueView, X-Ray, interval labeling, and highlights remains, but lower internal complexity should make the demo UI more robust over time.
  • Reticle HUD layout updated:

    • hudreticle.xml has been restructured to explicitly include:
      • Friend crosshair image.
      • Main CSGOCrosshair panel.
      • Observer crosshair image.
    • This layout makes it clear which layers can be manipulated independently for player vs. spectator experiences.
  • Minor combat HUD and instructions cleanup:

    • hudinstructor.js, hudmissions.js, hudteamcounter.js, and huddeathpanel.js mostly had debugging output and comment-only lines removed.
    • Functionally, weapon tips, mission progress, post-round damage reports, and death-panel flair behavior should be unchanged from a player perspective, but more stable internally.

Rush 001 Script: Behavior Intact, Comments Stripped

The script driving the Rush 001 tug-of-war mode (maps/scripts/rush_001.js) was fully edited, but the changes are commentary-only:

  • Large numbers of descriptive comments and inline explanations have been removed or replaced with whitespace.
  • All key behavior appears intact:
    • Room sequences, base vs. mid rooms, and the decider “convoy” room logic.
    • Antenna movement, glow, and team-colored side lights tied to room control.
    • Round progression, match reset on round counter rollback, and end-of-match winner calculation.
    • Fog presets per room and beacon sounds for button presses, countdowns, and timeouts.

This is effectively a script clean-up pass: Rush 001 should play the same, but with less editor-facing commentary inside the file.

Economy and Cologne 2026 Container Changes

Tournament-related economy data has been updated, particularly around Cologne 2026 sticker and highlight packs, with one notable functional addition.

  • Volatile prefab consolidated:

    • The special cologne2026_sticker_capsule_prefab_volatile prefab has been removed.
    • Affected crates now reference cologne2026_sticker_capsule_prefab directly and set their volatile behavior via an explicit "volatile container" attribute.
    • Attribute "volatile container" "2" has been added to multiple Cologne 2026 packs:
      • crate_sticker_pack_cologne2026_all
      • crate_sticker_pack_cologne2026_champion
      • crate_sticker_pack_cologne2026_rankings
      • crate_highlights_pack_cologne2026_1–6
    • This suggests the same volatility behavior is preserved, but expressed consistently in attributes instead of prefabs. For players and traders, the effective container behavior is likely meant to stay the same.
  • New spray capability on a Cologne capsule:

    • The cologne2026_signature_capsule_prefab gains a tool block:
      • "type" "spraypaint"
      • It also sets "item_slot2" "spray", "item_sub_position2" "spray0", and "inv_graphic_art" "graffiti".
    • This strongly indicates that one of the Cologne 2026 signature capsules doubles as a spray/graffiti tool in inventory terms.
    • How this is surfaced to players (e.g., extra inventory view, separate spray item, or combined behavior) will depend on UI usage, but the data now hooks the capsule into the spray systems.
  • Internal Cologne volatility definitions simplified:

    • Removed several lines referencing:
      • cologne2026_sticker_capsule_prefab_volatile and combinations like volatile_pricing_stickercap1 with extra volatile_pricing_fixed tags.
    • Pricing/volatility logic appears to be consolidated, likely to reduce confusion in the backend and tools.

Skins, float ranges, or drop rates are not directly changed in the exposed item definitions here; this is structural and capability-level work.

Visual and Model Touch-Up: PP-Bizon Material

A small but concrete asset change touches the PP-Bizon:

  • weapon_smg_bizon_composite_inputs.vmat_c has been updated (CRC change, same size).
  • This is the composite inputs material for the Bizon model.

Players may see subtle tweaks in lighting, roughness, or tint on Bizon skins that use this composite, but no gameplay stats are affected. It appears to be a visual maintenance update, not a redesign.

UI, Main Menu, and Pet Book Asset Housekeeping

A large portion of the patch is dedicated to simplifying and de-noising the Panorama UI backing scripts.

  • Main menu and watch UI:

    • Files like mainmenu_play.js, mainmenu.js, mainmenu_watch*.js, and various context menu scripts have had logging, temporary hacks, and legacy comments removed.
    • Some tournament blog/major-tile gating hacks referencing past events were pruned or clarified.
    • These changes are about maintainability and keeping outdated event-specific code from cluttering the menu, not adding new play or watch features.
  • Pet book and photo assets cleaned:

    • Pet-book images were renamed from PSD-style names to _png variants, and matching .vtex resources updated.
    • Text hints for adolescent pet "road trip" pages were consolidated into a single pet_book_hint_adolescent_road_trip reference instead of two stage-specific variants.
    • This simplifies the pet progression UI while keeping the same general hint content.
  • Crosshair settings UI strings adjusted:

    • Removed GameUI_CrosshairOutlineColor and GameUI_StaticQuadSplitRatio labels from English localization.
    • Crosshair-related sliders in the settings menu will now be a bit less cluttered, matching the convar simplifications.

Toolchain and Engine Internals: Security & Texture Handling

A broad set of internal binaries and schemas have been updated. While these don’t directly expose new gameplay, they matter for stability, anti-cheat, and content creation.

  • New GC <-> client security messages:

    • cstrike15_gcmessages.proto now defines:
      • CMsgGCCStrike15_v2_GC2ClientRefuseSecureMode
      • CMsgGCCStrike15_v2_GC2ClientRequestValidation
      • CMsgGCCStrike15_v2_GC2ClientInitSystem
      • CMsgGCCStrike15_v2_GC2ClientInitSystem_Response
      • And an enum EInitSystemResult describing various success/failure reasons.
    • These are wired into both client and server string tables and schemas.
    • Taken together, this appears to strengthen how the game coordinates secure/trusted mode with the Game Coordinator, including the ability to:
      • Report blocked modules/files.
      • Ask the client to initialize or validate a system package.
      • Decide whether to show “trusted/not trusted” UI or even kick the user.
    • For players, this may eventually surface as clearer messaging when secure/trusted mode cannot be enabled, and could tighten integrations with anti-cheat or validation layers.
  • Texture pipeline consistency:

    • Many tools (resource compiler, VRAD3, Hammer, asset preview, etc.) have synchronized error messages around FloatBitMap_t texture loading and atlas conversions.
    • Several deprecated texture formats and debug shape generators (hexagonal/octagonal cylinder helpers) have been removed from tool string tables.
    • This points to a cleanup and unification of how textures are read, validated, and compressed, which benefits Workshop creators and internal map/asset builds.
  • Rendering backend small improvements:

    • Vulkan renderer strings now expose more detailed messages when buffer or texture allocation fails or when retrieving allocation info fails.
    • DirectX 11 renderer adds types for color format objects and slightly adjusts an internal fence debug line.
    • These changes make diagnosing GPU memory issues and color format handling easier for developers and tool users.
  • Shader manifests pruned:

    • Both shaders_vulkan_dir.txt and shaders_pc_dir.txt dropped a long list of legacy VFX shaders and .ini definitions (e.g., cables, csgo_beachfoam, csgo_character, csgo_composite_generic).
    • New entries include only a focused subset like csgo_crosshair, csgo_customglove_preview, and csgo_textile_layer variants.
    • This suggests the shipping shader set has been trimmed to what's actually used in CS2, reducing clutter and potentially improving build sizes and consistency.
  • Custom glove preview format fixed:

    • In the glove preview shader, the g_tTintId texture now uses output format I8 instead of a numeric code.
    • This is a minor technical fix that should keep glove tint previews working as expected in tools and item inspection.
  • Weapon base schema field removed:

    • A field m_flAttackHoldStartTime has been removed from both client and server weapon base schemas.
    • This appears to be an unused timing field; its removal is schema cleanup rather than a direct firing behavior change.

GameInfo and Tooling Structure Adjustments

The core gameinfo.gi setup has been reorganized to separate shared engine/tool configuration from the CS2 mod layer.

  • Layered mod structure:

    • csgo/gameinfo.gi now declares:
      • LayeredOnMod csgo_imported
    • Search paths add:
      • Game csgo_imported, Game csgo_core and their Mod equivalents.
    • csgo_lv/gameinfo.gi (low-violence variant) has matching additions.
    • This acknowledges that CS2 is layered on top of core and imported content rather than keeping everything in one monolithic config, likely easing internal maintenance and future branching.
  • Tool and renderer options moved out of csgo/gameinfo.gi:

    • Many engine and tool configuration blocks (MaterialSystem2, SceneSystem, RenderSystem, NavSystem, ModelDoc, Hammer tooling, etc.) have been removed from this file.
    • Comments explicitly say: “Do not edit this file directly – edit csgo_core/gameinfo.gi instead.”
    • For Workshop mappers and tool users, the behavior should stay the same, but future documentation may point more clearly at core configs rather than the CS2 top layer.

Overall Impact

This update is largely about refinement and consolidation:

  • Players will notice:

    • A cleaner, more constrained crosshair system with a clarified set of styles and saner limits on gap/thickness.
    • New friend and observer crosshair overlays that should make spectating and ally awareness clearer.
    • Slight UI text updates in crosshair settings and pet book, plus continued reliability polish in demo and end-of-round panels.
  • Economy watchers and traders will see:

    • Cologne 2026 containers and highlight packs now uniformly tagged as volatile containers via attributes, not specialized prefabs.
    • A Cologne signature capsule wired into the spray/graffiti system, hinting at additional utility or inventory presentation for that item.
  • Creators and integrators get:

    • More consistent texture behavior across tools.
    • A slimmer, more focused shader set.
    • Clearer separation between CS2’s top-level mod and its shared csgo_core configurations.
    • New Game Coordinator messages around secure/trusted mode validation, which may eventually tie into richer client status reporting.

The net result is a CS2 client that behaves the same on the surface in most areas, but with a noticeably sharper crosshair experience and a cleaner, more maintainable foundation for future UI and security work.

Back to updates

Recent updates

Code updateSep 30, 2026, 11:56 PM UTC

CS2 Update (Sep 30, 2026)

CS2’s latest update overhauls the crosshair renderer and editor, adds new styles and outline color control, refines tournament store behavior and Cologne 2026 item data, and ships new scripting examples for custom maps.

  • Crosshair rendering has been overhauled with a new shader-based system, a Static Quadrant style, wider gap/thickness ranges, and an outline color picker.
  • HUD reticle and crosshair UI were cleaned up, removing legacy friend/observer art and routing previews through the new `CSGOCrosshairPreview` path.
  • Cologne 2026 item data now uses a dedicated volatile prefab and removes some spraypaint behavior, while tournament UI only exposes Major content when events are active.
  • Game configuration in `gameinfo.gi` and branch-specific overrides have been consolidated, improving clarity for tools, Hammer, and modding workflows.
  • New `cs_script` demo maps showcase advanced scripting for traces, grenade training, prop manipulation, input debugging, and UI interaction.
  • Rendering manifests and shaders were updated across PC and Vulkan, including crosshair shader v2 and glove tint format tweaks, pointing to ongoing graphics pipeline refinement.
View details
CS2@CounterStrike
Sep 30, 2026, 11:01 PM UTC
View details
Code updateSep 30, 2026, 10:50 PM UTC

CS2 Update (Sep 30, 2026)

Rush 001 gets a deeply documented script overhaul, crosshair customization gains a new quadrant style and outline colors, Vulkan shaders are expanded, and Cologne 2026 capsule data is restructured for volatile pricing and tools integration.

  • Rush 001’s game script, tower logic, fog, sounds, and UI have been heavily refactored and documented without changing the core tug-of-war rules.
  • Crosshair customization expands with a new Static Quadrant style, much wider gap and thickness ranges, and separate outline color and opacity controls in both convars and UI.
  • Reticle-specific HUD art for friend/observer overlays was removed, consolidating around the main configurable crosshair and associated shaders.
  • Cologne 2026 sticker and highlights packs now route through a new volatile capsule prefab, centralizing volatile container behavior and removing legacy spray fields.
  • A large set of CS2-specific Vulkan shaders and resource compiler defaults were added or updated, standardizing character, weapon, glove, decal, and UI rendering for both players and creators.
  • gameinfo.gi was expanded to merge CS2’s engine, render, tools, nav, and audio settings into a single configuration, making Hammer and resource compilation more predictable.
View details