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_crosshairstylenow 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_gapis now clamped between 0 and 128 (was -3840 to 3840). This prevents extreme negative gaps that pulled bars through the center.cl_crosshair_thicknessmaximum 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:
FriendCrosshairusingreticlefriend.vsvgwith a faint orange additive overlay.CrosshairObserverusingreticleobserver.vsvgfor 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.
- The HUD reticle layout now includes:
-
Crosshair shader simplified and focused:
- The
csgo_crosshairshader 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.
- The
-
New reticle assets:
- Added UI textures in
panorama/images/hud/reticle/:reticlecircleandreticlepipvariants (with matching_png.vtexversions).reticlefriend.vsvgandreticleobserver.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.
- Added UI textures in
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/_smokeno 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_ticklabelsandcl_grenadecrosshair_tickscalingremain, 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.jsandhudwinpanel_background_map.jshave 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.jshas 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.xmlhas been restructured to explicitly include:- Friend crosshair image.
- Main
CSGOCrosshairpanel. - 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, andhuddeathpanel.jsmostly 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_volatileprefab has been removed. - Affected crates now reference
cologne2026_sticker_capsule_prefabdirectly 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_allcrate_sticker_pack_cologne2026_championcrate_sticker_pack_cologne2026_rankingscrate_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.
- The special
-
New spray capability on a Cologne capsule:
- The
cologne2026_signature_capsule_prefabgains atoolblock:"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.
- The
-
Internal Cologne volatility definitions simplified:
- Removed several lines referencing:
cologne2026_sticker_capsule_prefab_volatileand combinations likevolatile_pricing_stickercap1with extravolatile_pricing_fixedtags.
- Pricing/volatility logic appears to be consolidated, likely to reduce confusion in the backend and tools.
- Removed several lines referencing:
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_chas 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.
- Files like
-
Pet book and photo assets cleaned:
- Pet-book images were renamed from PSD-style names to
_pngvariants, and matching.vtexresources updated. - Text hints for adolescent pet "road trip" pages were consolidated into a single
pet_book_hint_adolescent_road_tripreference instead of two stage-specific variants. - This simplifies the pet progression UI while keeping the same general hint content.
- Pet-book images were renamed from PSD-style names to
-
Crosshair settings UI strings adjusted:
- Removed
GameUI_CrosshairOutlineColorandGameUI_StaticQuadSplitRatiolabels from English localization. - Crosshair-related sliders in the settings menu will now be a bit less cluttered, matching the convar simplifications.
- Removed
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.protonow defines:CMsgGCCStrike15_v2_GC2ClientRefuseSecureModeCMsgGCCStrike15_v2_GC2ClientRequestValidationCMsgGCCStrike15_v2_GC2ClientInitSystemCMsgGCCStrike15_v2_GC2ClientInitSystem_Response- And an enum
EInitSystemResultdescribing 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_ttexture 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.
- Many tools (resource compiler, VRAD3, Hammer, asset preview, etc.) have synchronized error messages around
-
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.txtandshaders_pc_dir.txtdropped a long list of legacy VFX shaders and.inidefinitions (e.g.,cables,csgo_beachfoam,csgo_character,csgo_composite_generic). - New entries include only a focused subset like
csgo_crosshair,csgo_customglove_preview, andcsgo_textile_layervariants. - 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.
- Both
-
Custom glove preview format fixed:
- In the glove preview shader, the
g_tTintIdtexture now uses output formatI8instead of a numeric code. - This is a minor technical fix that should keep glove tint previews working as expected in tools and item inspection.
- In the glove preview shader, the
-
Weapon base schema field removed:
- A field
m_flAttackHoldStartTimehas 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.
- A field
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.ginow declares:LayeredOnMod csgo_imported
- Search paths add:
Game csgo_imported,Game csgo_coreand theirModequivalents.
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.giinstead.” - 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_coreconfigurations. - 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.
