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.

Quick read

  • 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.

This update overhauls CS2’s crosshair rendering and editor, adds new customization options, tweaks tournament store and token behavior, and quietly rolls out new scripting examples and economy tuning ahead of future events.

Crosshair System Overhaul and New Styles

  • New crosshair renderer: The in-game crosshair has been migrated from a static image layout to a shader-driven system powered by csgo_crosshair.slang and a new CSSGO_CrosshairPreview panel. This should allow more flexible shapes, better scaling, and future extendability.
  • New crosshair style 9 (Static Quadrant): The settings menu now exposes cl_crosshairstyle up to 9, with “Static Quadrant” added to the style list and help text. Style 7 is renamed to “Dynamic Quadrant” for clarity in the UI.
  • Expanded gap and thickness ranges:
    • cl_crosshair_gap now accepts a much wider numeric range (-3840 to 3840), allowing extreme custom layouts that were previously clamped.
    • cl_crosshair_thickness max has been nudged from 31 to 32 to match the updated slider.
  • Classic vs modern controls: The crosshair settings differentiate between regular gap (XhairGap) and “classic” gap (XhairClassicGap) and split-distance sliders. This suggests classic-style crosshairs get their own tuned controls while keeping the newer dynamic styles clean.
  • Static Quad split ratio: A dedicated XhairStaticQuadSplitRatio slider is exposed for the new static quadrant style, letting players adjust quadrant sizes directly.
  • New debug convars (dev only): Several r_csgo_crosshair_* debug options were added to help developers visualize crosshair tiles and behavior; these are not standard gameplay options but may help in diagnosing or modding the system.

Crosshair Outline Color and UI Improvements

  • Outline color picker: The crosshair settings panel now includes an “Outline Color and Transparency” section with:
    • A clickable color swatch for outline color.
    • An alpha slider via new convars cl_crosshairoutline_r/g/b/a.
  • Outline behavior: The color picker appears only when cl_crosshair_drawoutline is non-zero. The outline dropdown now also triggers a style refresh so the UI reacts immediately to outline changes.
  • Updated sliders:
    • Split alpha sliders for classic dynamic crosshairs now have finer 0.01 steps, allowing more precise tuning of split fade-in/out behavior.
    • Maximums and labels in the crosshair section have been reorganized to better group related options.
  • Preview widget update: Everywhere the game used CSGOCrosshair in UI layouts has been swapped to CSGOCrosshairPreview, tying the editor and HUD more tightly into the new rendering path. Players should see crosshair previews that more faithfully match what appears in-game.

HUD Reticle Cleanup

  • Legacy HUD elements removed: The HUD reticle layout (hudreticle.xml) no longer includes:
    • The “friend” crosshair overlay.
    • The observer-specific crosshair graphic.
  • Why it matters: This suggests the game is consolidating how crosshairs are rendered for both players and observers. In practice the visual result may be similar, but it reduces duplicated art assets and CSS and likely routes everything through the new shader-based system.

Scope Dot and Ironsight Tweaks

  • Scope dot wording: cl_ironsight_dot_scale’s description now reads “Scope dot scale”. This better reflects its current role for scoped weapons rather than the older “ironsight” terminology.
  • New UI controls: The crosshair settings screen adds dedicated controls for:
    • Whether ironsights use the crosshair color (cl_ironsight_usecrosshaircolor).
    • Scope dot scale with a 0.1–2.0 range, with a new slider placement to make this option easier to find.

Grenade Crosshair Quality-of-Life Changes

  • Delay sliders clamped: All grenade crosshair delay convars now have explicit 0–5 second limits:
    • cl_grenadecrosshairdelay_decoy
    • cl_grenadecrosshairdelay_explosive
    • cl_grenadecrosshairdelay_fire
    • cl_grenadecrosshairdelay_flash
    • cl_grenadecrosshairdelay_smoke
  • Impact: These settings already existed but now have safer numeric bounds in the engine definition. Players who customize their grenade UI timings will have a more predictable range to work in.

Game Configuration and Toolchain Integration

  • Unified gameinfo: gameinfo.gi has been significantly expanded to bake in many engine and tools settings that were previously spread across internal layers:
    • Rendering pipeline defaults (DX11, MSAA defaults, HDR, bloom, tonemapping).
    • Resource compiler settings for maps, mesh encoding, world renderer, baked lighting, vis, and texture compilation.
    • Hammer editor configuration for CS2, including default entities, navmesh parameters, and Steam Audio integration.
    • Nav system, world renderer, physics, post-processing, and memory budget hints.
  • Branch-specific overrides: gameinfo_branchspecific.gi now:
    • Fixes the app IDs for client and tools (SteamAppId 730, Breakpad IDs).
    • Enables Panorama preprocessing (stripping comments/dev-only portions from UI resources on load).
    • Forces cl_usesocketsforloopback 0 by default on this branch.
  • Why it matters: Players won’t see direct gameplay changes from this, but creators and modders benefit from clearer, consolidated configuration. It also suggests Valve is stabilizing CS2’s mod/tool environment.

Economy and Tournament Store Adjustments

  • Cologne 2026 volatile prefab: A new cologne2026_sticker_capsule_prefab_volatile prefab has been introduced and wired into several Cologne 2026 sticker and highlights packs. Existing crates now reference this volatile prefab instead of adding their own volatile container attributes.
  • Economy behavior: The change consolidates volatility behavior into a single prefab layer and removes some duplicate attributes. This likely simplifies pricing/market behavior for these items while keeping the external item names the same.
  • Tournament sprays removed from crate: Certain Cologne 2026 capsule data no longer declares spraypaint tool behavior (spray type, slot, and graffiti inventory art) in the same place. This suggests the crates are being refocused toward stickers and highlights only rather than doubling as graffiti unlocks.
  • Active tournament toggled off: g_ActiveTournamentInfo.active is set to false in the event store script. Combined with multiple UI checks, this means:
    • The full-screen store will only show the “tournament” section when a tournament is marked active.
    • The Watch tab will only open the Major Hub popup when the currently selected tournament is active.
    • Main menu token reminder logic now uses _m_bRemindUsersToSpendMajorTokens instead of a one-time “checked” flag, though reminders are gated by the tournament active state and several other conditions.
  • Impact: For players, the Major Hub button and tournament store tiles will appear only when there is an active event. Token-spend reminders are likely disabled between events to avoid nagging players with leftover tokens.

Tools, Engine, and Anti-Cheat Protocol Cleanup

  • GC message removals: Several Game Coordinator protocol messages related to “InitSystem” and secure mode validation have been removed from cstrike15_gcmessages.proto and associated enums/headers. This suggests backend and client have dropped some legacy secure-mode negotiation path, likely in favor of the newer Trusted/secure launch mechanisms.
  • Convar additions/fixes:
    • New r_csgo_crosshair_* debug options for tile size and debug visuals.
    • Minor description tweaks (e.g., scope dot wording).
  • Texture and bitmap handling: Many engine-side tools (resource compiler, vconsole, Hammer, model editors, etc.) updated their bitmap and volume texture error messages. While invisible to players, this indicates ongoing maintenance of the content pipeline, particularly around advanced compression formats and volume textures.

PP-Bizon Material Touch-Up

  • Bizon composite material updated: The resource weapon_smg_bizon_composite_inputs.vmat_c has changed while keeping the same size, indicating a material or input tweak for the PP-Bizon.
  • Likely impact: This most likely refines the Bizon’s appearance (e.g., wear, tint, or detail maps) rather than changing stats or rarity.

Pet Companion Book Visual and Hint Updates

  • New PSD-based art: Multiple pet book images now point to higher-fidelity *_psd.vtex assets instead of older PNG variants (e.g., Just Hatched, Early Days, Park Life, A Little Older, Road Trip, Balloons). A new title image for a second “road trip” page has been added.
  • Layout tweaks: Styling updates in pet_book_page_styles.css adjust:
    • The positioning and size of the teen trip second title image.
    • Colors and text-shadow for the birthday page text, improving readability.
  • Localized hint improvements: English text entries now distinguish between two adolescent road trip hints:
    • One pointing to Dust II, Baggage, Inferno, or Train.
    • Another pointing to Mirage, Nuke, Cache, or Ancient.
  • Map scripting adjustments (Baggage): The ar_baggage.js script has minor cleanup in conveyor logic and timing comments, but the functional behavior—locking/unlocking buttons, indicator colors, and conveyor speeds—remains the same.

New Scripting Examples and Modding Hooks

Several new cs_script-based demo scripts were added under game/csgo_addons/cs_script_demo/panorama_stripped/maps/scripts/. These are shipped as examples rather than active gameplay content:

  • chess.js: A large example showcasing complex script logic and state machines, using Instance and PointTemplate. While the full content isn’t visible here, it appears designed as a comprehensive demonstration of advanced script structures.
  • trace.js: A tracing and debug-visualization script exposing a script_zoo_trace cheat command that can:
    • Trace lines, spheres, boxes, bullet paths, and player hulls from the local player’s view.
    • Draw debug spheres, boxes, and normals at hit locations.
  • grenadetraining.js: A training mini-game script that:
    • Sets up a series of grenade rounds and target boxes with increasing difficulty.
    • Tracks hits, rounds, and draws a trail of grenade movement using DebugLine.
    • Resets the player, ammo, and timer between runs.
  • mdlchange.js: Demonstrates changing a prop’s model at runtime, scaling it up/down, and toggling glow outlines via script inputs.
  • setup.js: Handles basic map setup:
    • Puts the first player on a team and spawns a bot.
    • Prevents bots from dying via damage flags.
    • Adds a “welcome” UI layout that can be shown/hidden per player and through a script_zoo_show_welcome command.
  • input.js: Shows how to inspect and display CS player input states using debug screen text.
  • hello.js: Minimal sample that prints “Hello cs_script!” to the console.

These examples strongly indicate Valve is formalizing and showcasing the CS2 scripting APIs for custom maps and mods. While they don’t affect official matchmaking, creators can study and adapt them for their own Workshop content.

Rendering and Shader Manifest Updates

  • Crosshair shader version bump: The crosshair shader’s Version is now 2, with expanded uniforms and texture inputs for:
    • Per-primitive bitmasks to efficiently select which crosshair elements affect each pixel.
    • A “friendly” icon texture and glyph atlas for more complex overlays or text-like markings.
  • Glove tint ID format change: The glove preview shader now uses a different output format code (67) for g_tTintId instead of the explicit I8. This may align the format with modern texture pipelines, especially for tint-mask assets.
  • New compiled shader entries: Both PC and Vulkan shader manifests add many shaders/vfx entries for CS:GO-specific materials (character, composite inputs, beach foam, cables, and more). This improves shader precompilation coverage and may reduce stutter when encountering these materials in-game.

Miscellaneous Engine and Build Changes

  • Joystick defaults: cl_joystick_enabled and panorama_joystick_enabled are explicitly set to 0 in the core config, reinforcing mouse/keyboard as the default on PC.
  • Replay convar locked: spec_replay_enable is constrained so its min and max are both 0, effectively disabling client-side replay toggling.
  • Build metadata: steam.inf shows a new client and server version, patch subversion, and source revision, confirming this as a fresh shipped build.

Overall Impact

This update is primarily about modernizing CS2’s crosshair and UI rendering pipeline, cleaning up legacy paths, and paving the way for richer customization—especially with new quadrant styles and full outline color control. At the same time, Valve is tightening the tournament UI around active events, tuning the Cologne 2026 economy data, and exposing a substantial set of scripting examples that hint at more powerful custom maps and training scenarios.

Players will mostly notice the expanded crosshair options and slightly cleaner HUD. Map makers and modders get the bigger benefits, with better-documented gameinfo, new Shader and ResourceCompiler defaults, and practical scripts demonstrating how to build interactive training tools and debug visualizations inside CS2.

Back to updates

Recent updates

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.

  • 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.
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
CS2 Update (Sep 30, 2026) | CS2News.gg