CS2 Update (May 18, 2026)
Update adds a new boost inaccuracy control, expands cs_script APIs and example zoo tools, refines GC messaging, and refreshes environment shaders alongside a small version bump.
Quick read
- New `weapon_accuracy_stack_boost_limit` convar affects weapon spread for large player boosts.
- cs_script API gains new round, economy, weapon, and input helpers plus `RegisterCheatCommand`.
- Editor zoo example scripts switch from chat triggers to cheat console commands and centralize `sv_cheats` setup.
- GC messaging is expanded with a new `steammessages_gc` definition while legacy convar replication messages are removed.
- Environment shaders for terrain and blended surfaces are reworked on both PC and Vulkan, with manifests refreshed.
- Client and server versions are bumped to 2000827 with patch version 1.41.6.2.
This update adds new scripting tools for creators, tightens how boosts interact with weapon accuracy, and refreshes some behind‑the‑scenes systems and shaders, all wrapped in a small version bump.
Gameplay and ConVars
- New boost inaccuracy control: A new replicated convar
weapon_accuracy_stack_boost_limithas been added. Its description indicates that ladder‑style inaccuracy is applied to players boosted by a stack of this many (or more) players. This suggests boosts involving large stacks may now introduce extra weapon spread, especially relevant for teams relying on multi‑player boosts in set plays. - Bot testing helper: A
bot_hurtserver command is now registered alongside other cheat‑flagged bot commands. While details aren’t exposed here, it appears intended for offline or cheat‑enabled testing, likely to quickly damage or kill bots during practice or debugging.
Scripting and Workshop API Improvements
The cs_script/point_script API used by custom scripts and Workshop maps gets a notable expansion, plus some cleanup of experimental tags.
-
General API documentation tweaks:
- The scripting definition file now includes a dedicated feedback line pointing creators to
[email protected]with "cs_script Feedback" in the subject. - Several methods that were previously marked
@experimental(such asSetSaveData,GetSaveData,OnModifyPlayerDamage, and various input helpers) have had those warnings removed, which suggests Valve is growing more confident in their stability.
- The scripting definition file now includes a dedicated feedback line pointing creators to
-
New lifecycle and round‑flow hooks:
OnBeginRoundRestart(callback: () => void): void;is introduced as an experimental callback fired at the start of cleanup for a round restart. Creators can likely use this to reset custom state before a new round begins, improving reliability of complex round‑based scripts.
-
Player and round control helpers:
GetAllPlayerControllers(): CSPlayerController[]returns all player controllers, including disconnected ones. This should make it easier to iterate over all players in custom modes without guessing slots.GetRoundRemainingTime(): numberis complemented by a newSetRoundRemainingTime(time: number): void;, allowing scripts to adjust the round timer directly. This may enable custom training routines, minigames, or timed challenges without relying solely on server cvars.
-
Custom console commands for scripts:
RegisterCheatCommand(name: string, callback: (args: string) => void): void;registers a console command that runs a script callback, usable only whensv_cheatsis true. This gives creators a more controlled way to expose debug or tool commands without overloading chat or other hooks.
-
Weapon and player state access:
CSWeaponBasegainsIsSilencerOn(): boolean;, giving scripts an easy way to know if a weapon is currently silenced.CSPlayerPawnreceives extra helpers:HasHelmet()andSetHasHelmet(hasHelmet: boolean)to query and modify helmet status.IsScoped()to check if a player is scoped in.
CSPlayerControllergets money helpers:AddMoneySpendableNow(amount: number)/GetMoneySpendableNow()to adjust the current round’s spendable money.AddMoneyEarnedForNextRound(amount: number)/GetMoneyEarnedForNextRound()to affect the next round’s loss‑bonus style money.
These additions should make it easier to build custom economies, practice tools, and mode‑specific mechanics (like enforced armor, free scopes, or scripted loadouts).
-
Input helpers considered stable:
IsInputPressed,WasInputJustPressed, andWasInputJustReleasedonCSPlayerPawnno longer carry experimental warnings. That points to Valve treating input state queries as part of the stable scripting surface, helpful for movement tutors, key‑bind visualizers, or custom ability systems.
Changes to the Editor Zoo Example Scripts
The built‑in editor/zoo map scripts used as examples and test content have been updated to align with the new scripting capabilities and cheat‑command flow.
-
Chat commands replaced with cheat commands:
- The old chat‑based trace tools (e.g.
!traceline,!tracesphere,!tracebox,!tracebullet) have been replaced with a cheat console command:script_zoo_trace <type>wheretypecan beline,sphere,box, orbullet.- The script now uses
Instance.GetAllPlayerControllers()[0].GetPlayerPawn()to pick a pawn to trace from, and prints a usage hint if the argument is invalid.
- The
!showinputchat command has similarly been switched to a cheat console command:script_zoo_showinputtoggles input display for the first player controller.
These changes demonstrate how
RegisterCheatCommandis intended to be used and keep development tooling behindsv_cheatsinstead of normal chat input. - The old chat‑based trace tools (e.g.
-
Centralized cheat enabling in zoo setup:
sv_cheats 1is no longer set directly insidegrenadetraining.js. Instead, it’s executed once fromsetup.jsviaInstance.ServerCommand("sv_cheats 1");along with existing warmup commands.- This suggests Valve wants example content to show a clearer pattern: one central setup script that configures the server environment (cheats, warmup) and separate scripts for specific tools or demos.
-
Compiled resources updated:
- The corresponding packaged versions of these scripts (
*.vjs_c) in the main game content were also refreshed, so players loading the shippededitor/zoomap get the new behavior without any manual setup.
- The corresponding packaged versions of these scripts (
Creators who study the zoo map to learn scripting should now see a more up‑to‑date and cheat‑aware approach to console tools.
Observer and Camera Services
- Observer camera post‑processing:
- The observer camera services schema now tracks
m_hPrevPostProcessingVolume, a handle to a previous post‑processing volume. - While the exact behavior isn’t shown here, this likely supports smoother visual transitions when observers move between areas with different post‑processing settings (for example, changing color grading or exposure between indoor and outdoor zones).
- The observer camera services schema now tracks
Networking, GC, and Tooling Back‑End
A substantial new steammessages_gc.proto definition has been added, and several game binaries picked up matching string references.
-
New GC/Steam message definitions:
- The new proto file defines a wide set of messages covering:
- Web API keys and HTTP requests/responses (
CMsgWebAPIKey,CMsgHttpRequest,CMsgWebAPIRequest,CMsgHttpResponse). - Account and license queries (
CMsgAMFindAccounts,CMsgAMGetLicenses,CMsgAMGetUserGameStats, etc.). - Memcached‑style caching (
CGCMsgMemCachedGet,CGCMsgMemCachedSet,CGCMsgMemCachedDelete, and stats). - System stats, SQL stats, IP location lookups, purchase trust, and VAC status changes.
- Routing rules for client and Web API messages (
CMsgGCRoutingInfo,CMsgGCMsgMasterSetWebAPIRouting,CMsgGCMsgMasterSetClientMsgRouting). - Email templates and sending, guest passes, suspicious activity notifications, and partner microtransactions.
- Web API keys and HTTP requests/responses (
These look like shared infrastructure messages used by the game coordinator, matchmaking, item backend, and developer tools rather than direct in‑match features.
- The new proto file defines a wide set of messages covering:
-
String updates across server, client, matchmaking, and item editor:
- The
server_strings,client_strings,matchmaking_strings, andcs2_item_editor_stringsfiles now reference many of the new GC messages and routing structures. - At the same time, references to
CMsgConVarValueandCMsgReplicateConVarshave been removed and their message definitions were dropped frombase_gcmessages.proto.
For server operators and tool authors, this means that any integrations that depended on the old GC‑level convar replication messages may no longer see those messages and should not rely on them going forward.
- The
-
Convar replication GC messages removed:
- The
CMsgConVarValueandCMsgReplicateConVarsmessages have been deleted from the shared GC messages proto. This strongly suggests convars are no longer exposed or synchronized through that particular GC channel. - Regular in‑engine convar behavior (via server/client networking and existing tools) is unaffected by this change, but backend or third‑party tooling built around GC‑side convar replication may need to adjust.
- The
Rendering and Shader Adjustments
Two large environment shader files were updated along with associated Vulkan and PC shader manifests.
-
Environment and blend shaders updated:
csgo_environment.slangandcsgo_environment_blend.slanghave been significantly refactored, including how they sample height maps, color textures, and combine multiple layers.- New code paths compute weighting factors like
_6616from_19651 / vec2(_19651.x + _19651.y), and use more explicit per‑layer coordinate handling. - Height/roughness/tint handling appears to be more explicit (
fwidthon height map values, clamp/saturate on roughness and tint), which may affect how blended surfaces (such as terrain or ground materials) look at grazing angles or across LOD transitions.
-
Shader manifest churn without net path changes:
- Both
shaders_vulkan_dir.txtandshaders_pc_dir.txtshow removals and re‑adds of the same environment and static overlay shader paths for PC and Vulkan. - Because the paths added and removed match, this looks like a rebuild or version refresh of the shader binaries rather than new shader entries.
- Both
In practice, players may notice subtle differences in how ground, blended surfaces, or environment details render under certain lighting or viewing angles, especially on Vulkan, but the update does not clearly indicate a specific visual feature toggle.
Build and Version Bump
-
New client and server version:
ClientVersionandServerVersionare now2000827, withPatchVersionupdated to1.41.6.2.- Internal build and source revision numbers have also advanced, marking this as a distinct update for matchmaking compatibility.
-
Content manifest refresh:
- The main
pak01_dir.txtmanifest has been rotated, re‑listing localizedresource/csgo_*.txtfiles, theeditor/zooscript binaries, and various map icon screenshots (including forde_cache). - The fact that these paths are removed and then re‑added identically suggests a packaging or ordering refresh rather than new assets.
- The main
Players should ensure client and server builds match this new version to avoid mismatch errors when connecting to community servers.
Overall Impact
- Competitive players may see changes in how extreme multi‑player boosts interact with weapon inaccuracy due to the new
weapon_accuracy_stack_boost_limitbehavior. - Creators and Workshop authors gain richer scripting hooks for round flow, economy manipulation, weapon and armor state, and debug commands, with example scripts in the editor zoo updated to demonstrate cheat‑gated console commands.
- Observers may benefit from smoother visual transitions thanks to enhanced post‑processing volume tracking.
- Backend and tooling improvements, especially around GC messaging and convar replication, should make infrastructure more robust, though some legacy GC‑based integrations may need to be re‑evaluated.
- Rendering tweaks to environment shaders may subtly alter how some blended surfaces and terrain look, particularly on Vulkan, as shader code for sampling and blending is refined.
