CS2 Update (Jul 9, 2026)
CS2’s latest build focuses on engine, tooling, and debug improvements: new options for bomb damage and shootable grenades, expanded nav and audio beatpattern tools, GPU culling and shadow tweaks, plus internal schema cleanups and map pool config changes.
Quick read
- New convars and commands add bomb damage visualization tools and an optional rule for shot-detonated dropped grenades (`mp_shoot_dropped_grenades`).
- Navigation and bot pathing receive new debug helpers and smoothing tweaks, including `nav_edit_draw_navlinks` and `nav_smooth_push_from_walls` changes.
- Rendering and shadows gain expanded GPU culling and meshlet visualization options, and sparse shadow tree rendering is enabled by default in dev config.
- Audio systems move from legacy sequencers to a Beat Pattern framework, with new `snd_beatpattern_*` commands and detailed SOS debugging flags.
- Matchmaking and veto map lists are refreshed internally to include maps like Cache, Boulder, Fachwerk, Shelter, Debris, and Eldorado in various pools.
- Extensive schema and metadata refactors across client, server, Pulse, physics, audio, and tools improve engine introspection and future feature flexibility.
This update is mostly about under‑the‑hood engine work, but it quietly adds a few new gameplay and debugging hooks for bomb damage, grenades, navigation, sound, and rendering that mappers, modders, server operators, and tool users may want to know about.
Gameplay and Server-Side Changes
- Shootable dropped grenades (
mp_shoot_dropped_grenades): A new replicated, release convar controls whether dropped grenades will detonate when shot. This is a server rule (also visible on clients) and may allow custom servers or future modes to experiment with more reactive grenade behavior. Official matchmaking behavior is unchanged unless Valve enables it there. - Bomb damage tooling (
cs2_bomb_damage_showdebugwindow,bake_bomb_damage_render_visualization,cl_bake_bomb_damage_debug): New development-only/cheat options target bomb damage visualization. These suggest Valve is iterating on the way bomb damage is calculated and previewed, potentially to support more accurate or creator-facing bomb-radius tools. - Replant bomb command (
replant_bomb): A new cheat command on the game DLL allows replanting the bomb. This is primarily useful for debugging, replaying situations, or internal tools rather than normal gameplay. - Steam auth correctness flag (
sv_steamauth_correct): A new release convar is described simply as “Correct behavior”, paired with the existingsv_steamauth_enforce. This indicates work on the way servers enforce or validate Steam sessions; community server operators may see subtle behavior changes around connection/auth edge cases if this gets used.
Navigation and Bot Pathing Tools
- New nav test helpers (
nav_test_search_on_path_setgoal): A new cheat-only convar helps test tactical “on path” searches withSetGoal, flipping between alternate searches. This is aimed at bot/nav mesh authors and Valve’s own nav tuning. - Nav edit visualization (
nav_edit_draw_navlinks): While innav_editmode, a new option can draw nav links. This should make it easier for nav editors and mappers to understand and debug complex connections between nav areas (jump links, transitions, etc.). - Nav smoothing tweaks:
nav_smooth_push_from_wallsnow defaults to12instead of-1, which likely adjusts how path smoothing pushes agents away from walls. This may subtly change bot movement around corners once used in production.- Several nav generation and test variables had limits or options updated (for example
nav_gen_opt_to_quads_weld_limit_startnow allows0), which will mainly affect people generating or refining nav meshes.
- Path cost definitions cleaned up: Internal schema/types for
CNavPathCost,CNavFlags, and related gravity/attribute enums were moved or refactored. These control how AI and bots evaluate ladders, flying/swimming, and transitions. The behavior in live matches should remain the same, but it sets the stage for more flexible navigation behaviors later.
Rendering, Shadows, and Performance Controls
- Sparse shadow tree now enabled by default (
sparseshadowtree_enable_rendering true): SST rendering, which handles static geometry in cascaded shadow maps, is now on by default in development configuration. This suggests Valve is pushing further into performance- and quality-improving shadow code paths. - Cascaded shadow map tuning (
csm_*convars): Many cascaded shadow map debug and override cvars gained explicitclientdllflags and had defaults clarified:csm_sst_shadow_focus_region_thin_compensationincreased from500to1500.- A number of CSM overrides were reclassified as client-only cheats, making their scope clearer and limiting accidental server-side exposure. These changes are primarily for graphics developers and QA, but they may influence how Valve tunes sun shadows going forward.
- Meshlet and GPU culling visualization:
- New visualization mode:
sc_visualize_sceneobjects_meshletswith values fromESceneObjectMeshletVisualization(none/meshlet/culled) lets developers see meshlet-level culling. - New controls for mesh pipeline experiments:
sc_mesh_gpu_occlusion_culling,sc_mesh_gpu_volume_culling,sc_mesh_mesh_shaders,sc_mesh_shadows_batch_across_materials, andsc_mesh_use_pmb. These are development-only and off by default, but they show ongoing work on GPU-driven rendering and mesh shaders.
- New visualization mode:
- UI and server parallelism (
r_ui_update_parallel_with_server): A new defensive flag allows updating UI in parallel with server work. This may be part of ongoing efforts to hide hitches and improve responsiveness, especially on busy servers. - GPU debug freezing (
r_gpu_debug_draw_freeze): Lets developers freeze GPU debug drawing. Purely a diagnostics feature, but it indicates deeper GPU debugging support in internal tools. - Removed legacy performance toggles: Several low-level render cvars such as
r_force_zprepass,r_zprepass_normals,r_texture_stream_resolution_bias, and some debug render-target viewers were removed. This simplifies the render config surface and suggests those code paths have been hardened to a default behavior.
Cloth Simulation and Interpolation
- Cloth rotation interpolation options (
cloth_interp_rot,sv_cloth_interp_rot): New client and server development-only flags allow toggling rotational interpolation for cloth. These are meant for debugging and tuning, but they also confirm active work on cloth stability and visual fidelity (for example sleeves, flags, or other cloth-attached props).
Networking, Deltas, and Command Queues
- User command delta encoding (
sv_cq_delta_encode_svc_usercmds,sv_cq_validate_encoded_svc_usercmds,cl_svc_usercmds_delta_validate):- Servers now have a switch to delta-encode user commands (
svc_UserCmds) and an extremely expensive validation mode that sends both delta and full commands for cross-checking. - On clients,
cl_svc_usercmds_delta_validatecan cooperate with the server for validation. This is deep netcode plumbing and won’t change gameplay directly, but it indicates Valve is strengthening correctness and performance around player command transmission.
- Servers now have a switch to delta-encode user commands (
- Steam auth adjustments (
sv_steamauth_correct): As noted above, this new flag likely refines behavior around Steam session enforcement in combination withsv_steamauth_enforce. It may reduce edge-case mismatches or incorrect kicks in future updates. - Entity delta/offset debug cleanup: Several dev-only convars around entity packing and networkvar validation were removed (
sv_enable_delta_packing,sv_log_change_offsets,sv_max_change_offsets,sv_ents_write_alarm,sv_pack_entities_verbose_*,sv_recipients_check,sv_networkvar_validate). That suggests Valve has stabilized these systems to the point where those heavy-handed runtime diagnostics are no longer needed.
Tools for Mappers, Modders, and Technical Debugging
Hammer, ResourceCompiler, and Tooling
- Open map Pulse graphs in tools (
open_current_map_pulse_in_tool): A new editor-only command opens the Pulse logic graph used in the current map. Pulse is Valve’s visual logic/scripting system; this makes it easier for level designers and scripters to jump directly from an in-game map to its logic asset in the editor. - Logic entity inspection (
logic_entity_analyzer_debug): New cheat/debug convar for logic entities. This is likely used to visualize or log entity I/O and state changes, useful for debugging complex map scripts. - Detail props and subassets: Tool-side schema for
CDetailPropModelandCSubassetTypeInfonow expose properties likem_bWorldSpaceOrientation,m_bAllowDefinitions, andm_bAllowReferences. For creators, this means more granular control over how detail props orient in world space and how subassets are resolved during authoring. - Pulse system schema refactor: A large set of Pulse-related classes and enums (
CPulseCell_*,PulseCursorExecResult_t,PulseDurationStringFormat_t, etc.) were reorganized between runtime (pulse_runtime_lib), authoring (pulse_system,pulsedoc_lib), and compiler (resourcecompiler) libraries. This doesn’t directly change gameplay, but it’s a big cleanup that should make Pulse-based gameplay and tools more robust.
Scene, Animation, and Audio Authoring
- Animation data and look-at chains:
- New/updated animlib and animdoclib types for chain look-at nodes, root motion overrides, and compressed float channels (
CNmFloatChannelData,CNmFloatChannelSet_t,ChannelSettings_t) were shuffled between runtime and tools. - Editor descriptions like “Add an additional local space offset to the end effector to use for aiming the lookat” moved from runtime strings more fully into tooling docs. This split suggests Valve continues to separate runtime and editor concerns, keeping game binaries leaner while expanding capabilities in authoring tools.
- New/updated animlib and animdoclib types for chain look-at nodes, root motion overrides, and compressed float channels (
- Scene system meshlets: The new
ESceneObjectMeshletVisualizationenum and visualization cvar let tool users and QA see which meshlets are rendered or culled. This is important for optimizing complex models and map geo. - Audio graph and sounddoc library expansion:
- A full suite of
sounddoc_libnode descriptors was added/reshuffled (convolution reverbs, filters, dynamics, vocoders, etc.). - Low-level commands for impulse-response processing (
CMD_BLEND_VSNDS_TO_IMPULSERESPONSE,CMD_IMPULSERESPONSE_DELAY, etc.) were consolidated. These are for sound designers building complex mixing graphs and reverbs; the practical in-game effect is more flexible audio spaces and mix behavior.
- A full suite of
- Voice container controls and random panning: New or refined voice container schemas like
CVoiceContainerLoopTriggerWithRandomPanner,CVoiceContainerVsndRadioButton,CVoiceContainerVsndTrigger, andCRandomPannerControlsprovide structured ways to randomize panning and volume. This allows more varied and less repetitive sounds (for example environment loops, radio lines, or mechanical ticks) without additional runtime cost.
Workshop and Cloud Utilities
- Workshop cloud management (
workshop_clear_cloud_save,workshop_dump_cloud_contents): Two new dev-only commands let you:- Clear a workshop save from Steam Cloud by published file ID or clear the non-workshop addon save.
- Print out the current cloud contents. These are meant for Valve’s QA and advanced modders debugging cloud sync issues.
Audio Systems and Beat Patterns
The update replaces older “sequencer” terminology in audio with a newer Beat Pattern system and adds tools around it.
- New beatpattern commands:
snd_beatpattern_flush– reload all beat pattern data.snd_beatpattern_print_activetracks/snd_beatpattern_print_patterns– list active tracks and known patterns.snd_beatpattern_set_track_bpm/snd_beatpattern_set_track_transpose– adjust tempo and transposition for specific tracks.snd_beatpattern_stop_all_tracks/snd__beatpattern_stop_track– stop one or all tracks. These mirror and replace an oldersnd_sequencer_*family of commands, which were removed.
- New visualization cvars for beat patterns:
snd_beatpattern_show_bpm,snd_beatpattern_show_events,snd_beatpattern_show_quantize_queue,snd_beatpattern_use_lookaheadhelp debug how beat patterns schedule and fire audio events.snd_sos_beatpattern_show_operator_updatesreveals operator changes in the SOS (Source sound system) layer.
- SOS debugging enhancements:
snd_sos_print_frametimeprints per-frame timing.snd_sos_tools_detailed_debuggingis a dev-only archived flag to turn on more verbose debugging.
All of these are aimed squarely at sound designers, but they should help keep music, round start/end stingers, and in-world rhythmic effects tightly synced and easier to tune.
Close Captioning and UI
- New caption chatter control (
cc_force_combine_chatter): A development-only caption cvar appears to focus on Combine chatter. While CS2 doesn’t use Combine NPCs, this may be shared tech or a leftover label; practically, it’s a caption/debug tool. - Removed older caption maintenance commands: Commands like
cc_findsound,cc_flush,cc_random, andcc_showblockswere removed from the public command list. These were always dev-focused and their removal suggests a cleanup of caption tooling. - On-screen convar display (
display_convars_onscreen_in_big_text): A new replicated cheat lets you list convar names to display them in large text on-screen. This is handy for capture, QA, and content creators who want to show current settings in videos. - HUD decals and hit feedback (
r_decal_hit_confirmation): A new replicated convar hints at experimentation with hit-confirmation decals. It’s development-only for now, but it shows Valve is exploring additional visual feedback channels. - Player name debugging (
cl_playerslot_in_names): When enabled, the client will prepend a controller player slot index to names. This is mainly useful for local multi-controller setups and debugging.
Physics, Materials, and World Rendering
- Physics compound/hull schemas refreshed: Classes like
RnCompound_t,RnCompoundDesc_t,FeBoneMergeLink_t, andCastSphereSATParams_twere refactored or moved. This is internal physics representation work that likely improves authoring, collision previews, or performance. - World emissive streams removed from some tools: Several tools no longer expose
AggregateVertexEmissiveStreamOnDiskData_tand related emissive buffer fields in their string tables. That suggests the handling of vertex emissive data has been refactored, possibly to a more unified or streamlined path. - Local exposure post-processing cleaned up:
PostProcessingLocalExposureParameters_tandCLocalExposureLayermoved more firmly into tool-side schemas.- Runtime string references were pruned, and resourcecompiler/materialsystem now share clear structs for local exposure. This keeps the runtime lean while still letting post-processing artists customize local exposure layers.
Micro-Changes in Commands and Dev Flags
A large number of small adjustments improve consistency and reduce noise for developers and power users:
- Prediction and debug text:
cl_predictioncopy_describenow explicitly referencesPredictionMap_tinstead of a genericdatamap_t, clarifying the data structure it inspects.debugoverlay_circle_vertslets devs adjust circle resolution for debug overlays.
- Timedemo flags moved to release:
timedemo_startandtimedemo_endare now marked as release-level commands instead of purely defensive/dev. Players benchmarking performance may find these more officially supported in profiling workflows. - Mic recording tools:
start_rec_mic,stop_rec_mic, andstop_rec_mic_allwere added as linked dev commands to record voice to WAV. These are aimed at QA and audio debugging, but content creators may benefit when using internal or workshop tools.
- Workshop cloud maintenance commands: As mentioned, cloud save management is more explicit.
- Voice mute management commands removed: Several dev-only commands (
voice_mute,voice_unmute,voice_show_mute,voice_reset_mutelist) were dropped from the generic command listing, likely folded into the in-game UI or kept for internal builds only.
Map Pool and Matchmaking Configuration
The update slightly reshuffles internal map list cvars that the matchmaking system uses to define playlists. These cvars encode map pools with hashed suffixes (for example player_competitive_maplist_8_10_0_A062AC6A):
- 2v2 competitive list: Now includes references to
mg_de_debrisandmg_de_eldoradoalongside existing Inferno, Nuke, Vertigo, Poseidon, and Overpass entries. - 5v5 competitive-like list:
- The 8–10 player list loses
mg_de_wardenandmg_de_stronghold, and gainsmg_de_boulder,mg_de_fachwerk, andmg_cs_shelterwhile keeping classics like Dust2, Train, Ancient, Inferno, Nuke, Vertigo, Mirage, Overpass, Office, Italy, Cache, and Anubis.
- The 8–10 player list loses
- Map veto pick sequence (
sv_mapvetopickvote_maps): Now includesde_cachein place ofde_overpassin the default veto set, making the set:de_cache, de_anubis, de_inferno, de_mirage, de_dust2, de_nuke, de_ancient.
These cvars are not direct playlist announcements, but they show which maps Valve is preparing or using for internal testing and veto flows. Official mode rotations may or may not change to match these immediately.
Engine and Schema Cleanups
The bulk of the file changes are schema and metadata updates across every major engine subsystem:
- Client/server API schemas updated:
client.kv3andserver.kv3metadata list a wide array of new or refined APIs (for players, weapons, grenades, map preview cameras, environment lighting, etc.).- Many classes that were previously implicit are now clearly enumerated with
*_APIsuffixes, making it easier for tooling and introspection systems to query the engine.
- New field types (
FIELD_NETWORK_QUANTIZED_VECTORWS,FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_VECTORWS): Field-type enums were adjusted and some deprecated entries removed. This aligns schema metadata with how the network actually serializes world-space vectors. - Pulse observables and blackboards: Across multiple binaries, new strings like
m_DependentObservableVars,m_DependentObservableBlackboardReferences, andm_EvaluateConnectionappear, while older “Asynchronous / Fire and Forget” descriptive strings disappear. This indicates the Pulse runtime/debug text was reorganized to favor more structured, data-driven descriptions.
These changes are invisible to players but important for stability and for third-party tooling that inspects or reverse-engineers engine data.
Overall Impact
This update is not a big balance patch; instead it tightens the engine and toolchain around CS2 while quietly enabling new experiments:
- Server operators get a toggle for shootable dropped grenades and a clearer view of bomb damage tools, hinting at more flexible or creator-friendly gameplay scenarios.
- Mappers and nav editors see more debugging options for nav links and search modes, plus cleaner entity and logic inspection.
- Audio teams gain a consolidated Beat Pattern system with better tooling, setting the stage for tighter music and rhythmic effects.
- Rendering and shadow systems continue to evolve toward GPU-driven culling and meshlets, with new debug toggles and a more opinionated default for sparse shadow trees.
For most players, the update will feel like a quiet maintenance step. For creators, server admins, and technical modders, it’s another sign that Valve is steadily investing in the underlying systems that power CS2’s visuals, audio, and gameplay scripting.
