Several underlying map scripts’ bugs were tormenting developers for quite a while, but not anymore. The latest update from Valve has ironed out a whole list of stilt errors for map developers of CS2.
This update follows another major one from Valve, where they have ironed out several minor issues that were persistent with the game, including but not limited to the sudden decrease in velocity when low while walking up ramps. Issues like this may not seem significant at first glance; however, they can cause serious concern in competitive situations, given that pro players like to squeeze every bit of the game mechanics.
Regular updates are ironing out issues left, right, and centre, leaving nothing but praise for the developers. Map developers are the backbone of Counter-Strike, and one would assume that since map scripting bugs don’t affect the playerbase, Valve would keep those in the backseat; however, said assumptions couldn’t be further from the truth.
CS2 September 25 Patch Notes
Here are the official patch notes:
[ MAP SCRIPTING ]
- Updated tsconfig.json in the script_zoo, setting the target to “es2022” for more accurate type analysis.
- Changed point_script entity to no longer remove itself on a failed script load during spawn. Instead it will remain in an inactive state and listen for script changes if the game is running in tools mode.
- Fixed point_script entity to no longer potentially crash after an unsuccessful reload from an invalid script while running the game in tools mode.
- Changed point_script entity to hold onto the memory value returned by an Instance.OnBeforeReload callback until the next successful reload instead of forgetting it if the reload is unsuccessful.
- Changed methods expecting arguments of string type to now error instead of calling toString for arguments of the wrong type.
- Changed Instance.Msg and Instance.DebugScreenText to accept any type for the text value.
- Fixed a bug where RunScriptInput would crash the game when triggered with a null caller or activator.
- Removed Instance.OnGameEvent in favor of per-event registration methods. This gives us tools for stronger API stability and creates a consistent API for events that are not gameevents.
- Added Instance.DebugLine
- Added Instance.DebugBox
- Added Instance.OnPlayerConnect
- Added Instance.OnPlayerActivate
- Added Instance.OnPlayerDisconnect
- Added Instance.OnRoundStart
- Added Instance.OnRoundEnd
- Added Instance.OnBombPlant
- Added Instance.OnBombDefuse
- Added Instance.OnPlayerKill
- Added Instance.OnPlayerChat
- Added Instance.OnGunFire
- Added Instance.OnGrenadeThrow
- Added an overload to Instance.EntFireAtName that allows setting caller and activator
- Added an overload to Instance.EntFireAtTarget that allows setting caller and activator
- Added normal vector to the result of Instance.GetTraceHit
- Added Entity.GetGroundEntity
- Added CSWeaponBase.GetOwner
- Added CSPlayerController.GetName
- Added CSObserverPawn.GetOriginalPlayerController
- Added CSPlayerPawn.GetOriginalPlayerController
- Added CSPlayerPawn.IsCrouching
- Added CSPlayerPawn.IsCrouched
- Added CSPlayerPawn.IsNoclipping
- See maps/editor/zoo/scripts/point_script.d.ts for comprehensive details on the API
- Added “train_zoo.vmap” with all de_train assets and examples for mapmakers.

