
In this article
Counter-Strike 2 map creators now have more direct ways to react to hostage rescues and check whether resources have finished loading. Valve’s 22 October update adds a CSHostage object, hostage-event callbacks and an Instance.Precache interface, alongside changes to the scripting API’s organisation.
The official announcement was published late on 22 October UTC — already 23 October in Stockholm. The changes concern Workshop scripting and tools; the notes do not announce a new competitive hostage map.
Hostage behaviour becomes easier to track
The new CSHostage methods expose whether a hostage is being picked up, carried or has been rescued. Scripts can also get the rescuer and the start and finish times of a pickup. CSPlayerPawn.GetHostage provides a corresponding way to access the player’s hostage.
Valve has added callbacks for pickup start, pickup abort, pickup, drop, rescue and kill. For a custom scenario, these are different moments: beginning to pick up a hostage is not the same as successfully carrying one, and dropping one is not a completed rescue.
The practical value is more precise event handling. A creator can build logic around the action that actually happened instead of treating every interaction as a successful extraction.
Precaching has separate server and client checks
Instance.Precache returns a CSPrecache object. Its new methods include separate loading and loaded checks for the server and client, an IsLoadedForAll check and Release.
That distinction matters in a networked custom map: a server having a resource ready is not the same state as everyone having it ready. The new checks give map logic a way to distinguish those conditions. Valve’s announcement lists the interfaces, rather than publishing a universal loading-time improvement.
Console and round logic have new homes
The update introduces top-level Console and GameRules exports. Console receives configuration-variable getters and SetConvar; Valve says Console.SetConvar executes synchronously and is not restricted by sv_cheats.
Instance.Msg is renamed to Console.Log. Client commands, server commands and cheat-command registration also move to Console. GameRules gains warmup controls, team-score access and round termination, while several existing round-state and team-money methods move there from Instance.
Moved and renamed methods remain available in their original locations, but are deprecated. Existing map scripts therefore do not need to be described as automatically broken by the reorganisation. New work can use the new locations, with older scripts checked against the updated API before changing their calls.
Two boolean fixes and broader radar support
Valve also fixed CSRadarPoint.IsVisibleToTeam and CSObservablePoint.IsObservableForTeam returning numbers instead of booleans. Creators comparing those results should account for the corrected return type.
The radar_element can now appear in every game mode, rather than only Rush. Logged warnings gain JavaScript call stacks and details about invalid argument values, and argument numbering now starts at zero. Those changes give creators more useful information when tracing a failing script.
