Scripting
261 lines · 12% of the archive
Lines under MAP SCRIPTING or WORKSHOP. Community map tooling and the entity scripting that runs inside a map, rather than the map geometry itself.
Across 24 updates, 2023-11-02 to 2026-08-24. Published updates only.
Every line, newest first
2026-08-24
- reworkAdded custom_hud_layout entity: custom_hud_layouts are the entry point for scripted maps to provide custom UI.
- reworkAdded custom_hud_layout entity: Panel, Label, Image, and Button panel types are supported.
- reworkAdded custom_hud_layout entity: Styling with css is supported.
- reworkAdded custom_hud_layout entity: Events and client side scripting are not supported.
- reworkAdded custom_hud_layout entity: Maintains state during tools mode reloads.
- reworkAdded cs_player_camera entity: Gives control of a player's view without moving their pawn.
- reworkAdded cs_player_camera entity: Can be configured to let the player look around from the scripted position.
- reworkAdded Instance.Delay
- reworkAdded Instance.OnBombPlantStart
- reworkAdded Instance.OnBombPlantAbort
- reworkAdded Instance.OnBombDefuseStart
- reworkAdded Instance.OnBombDefuseAbort
- reworkAdded Instance.OnCustomHudClicked
- reworkAdded Instance.IsDedicatedServer
- reworkAdded Entity.Move
- reworkAdded Entity.GetMoveType
- reworkAdded Entity.SetMoveType
- reworkAdded CSPlayerPawn.GetC4
- reworkAdded CSPlayerPawn.GetDefuseTarget
- reworkAdded CSPlayerPawn.IsBuyMenuOpen
- reworkAdded CSPlayerPawn.GetCamera
- reworkAdded C4.GetPlantStartTime
- reworkAdded C4.GetPlantFinishTime
- reworkAdded C4.AbortPlant
- reworkAdded CustomHudLayout.SetHasClass
- reworkAdded CustomHudLayout.SetHasClassForPlayer
- reworkAdded CustomHudLayout.SetDialogVariableString
- reworkAdded CustomHudLayout.SetDialogVariableStringForPlayer
- reworkAdded CustomHudLayout.SetInputCaptureEnabled
- reworkAdded CustomHudLayout.IsInputCaptureEnabled
- reworkAdded CSPlayerCamera.IsEnabled
- reworkAdded CSPlayerCamera.SetEnabled
- reworkAdded CSPlayerCamera.SetIsControllingAngles
- reworkAdded enum CSMoveType
- fixCorrected types for some events where parameters were maybe undefined.
- reworkErrors encountered during initial script run are now logged to the console.
- reworkUnhandled promise rejections are now logged to the console.
- reworkAdded the column number to errors caught during the CompileModule step of script loading.
- reworkDeprecated planter from Instance.OnBombPlant event
- reworkDeprecated defuser from Instance.OnBombDefuse event
2026-08-03
- reworkAdded Instance.TracePlayer
- reworkAdded Instance.OnWeaponPickup
- reworkAdded Instance.OnBombExplode
- reworkAdded Instance.SpawnGrenadeProjectile
- reworkAdded dropper to Instance.OnWeaponDrop event
- reworkAdded hitEntity to Instance.OnGrenadeBounce event
- reworkAdded normal to Instance.OnGrenadeBounce event
- reworkAdded CSGrenadeProjectileBase.GetGrenadeType
- reworkAdded CSGrenadeProjectileBase.GetThrower
- reworkAdded CSGrenadeProjectileBase.Detonate
- reworkAdded CSPlantedC4.IsBombsiteA
- reworkAdded CSPlantedC4.IsBombsiteB
- reworkAdded CSPlantedC4.GetPlanter
- reworkAdded CSPlantedC4.GetDefuser
- reworkAdded CSPlantedC4.IsActive
- reworkAdded CSPlantedC4.IsExploded
- reworkAdded CSPlantedC4.IsDefused
- reworkAdded CSPlantedC4.GetPlantTime
- reworkAdded CSPlantedC4.GetExplodeTime
- reworkAdded CSPlantedC4.GetDefuseStartTime
- reworkAdded CSPlantedC4.GetDefuseFinishTime
- reworkAdded CSPlayerPawn.HasDefuser
- reworkAdded CSPlayerPawn.SetHasDefuser
- reworkAdded CSGrenadeType enum
- fixFixed a bug where Instance.RegisterCheatCommand would not work on script reload.
- reworkDeprecated bounces from Instance.OnGrenadeBounce event.
2026-07-28
- fixFixed a bug where scripts would fail to load in tools mode until a manual recompile.
2026-07-08
- reworkUpdated "Custom Paint Job Extended" Added option to include a dedicated overlay mask texture
- reworkUpdated "Custom Paint Job Extended" Added option to set unique overlay UV randomization separate from albedo UV randomization
- reworkAdded Instance.QueueAfterThinks
- reworkAdded Instance.OnWeaponDrop
- reworkAdded CSWeaponBase.GetOriginalOwner
- fixFixed a crash when the name passed to Instance.RegisterCheatCommand collided with an existing command.
- reworkAdded file name and line number to errors caught during the CompileModule step of script loading.
- reworkRemoved support for deprecated vts assets.
2026-05-18
- reworkAdded Instance.RegisterCheatCommand
- reworkAdded Instance.GetAllPlayerControllers
- reworkAdded Instance.OnBeginRoundRestart
- reworkAdded Instance.SetRoundRemainingTime
- reworkAdded CSPlayerController.AddMoneySpendableNow
- reworkAdded CSPlayerController.GetMoneySpendableNow
- reworkAdded CSPlayerController.AddMoneyEarnedForNextRound
- reworkAdded CSPlayerController.GetMoneyEarnedForNextRound
- reworkAdded CSPlayerPawn.HasHelmet
- reworkAdded CSPlayerPawn.SetHasHelmet
- reworkAdded CSPlayerPawn.IsScoped
- reworkAdded CSWeaponBase.IsSilencerOn
- reworkChanged the activator for OnPlayerUse to always be the player
- reworkChanged the caller for OnPlayerUse to always be the used entity
- fixFixed the value of CSInputs.LOOK_AT_WEAPON
- fixFixed a potential crash in exception handling
2026-05-07
- fixFixed progressive refinement rendering Source Film Maker.
2026-03-04
- reworkAdded hitEntity to OnBulletImpact event data
- reworkAdded Entity.GetAbsAngularVelocity()
- reworkAdded Entity.GetLocalAngularVelocity()
- reworkAdded angularVelocity to Entity.Teleport()
- reworkAdded CSWeaponBase.GetClipAmmo()
- reworkAdded CSWeaponBase.SetClipAmmo()
- reworkAdded CSWeaponBase.GetReserveAmmo()
- reworkAdded CSWeaponBase.SetReserveAmmo()
- reworkAdded CSWeaponData.GetMaxClipAmmo()
- reworkAdded CSWeaponData.GetMaxReserveAmmo()
- fixFixed missing CSPlayerPawn.IsDucking()
- fixFixed missing CSPlayerPawn.IsDucked()
- fixFixed a bug where JUMP wouldn't trigger for WasInputJustPressed() and WasInputJustReleased() if the press didn't cross a tick boundary.
- fixFixed a bug where Entity methods GetEyePosition(), GetEyeAngles(), GetHealth(), GetMaxHealth(), and SetMaxHealth() would only work on CSPlayerPawns.
2026-02-25
- reworkAdded Instance.SetSaveData
- reworkAdded Instance.GetSaveData Workshop maps can write up to 1MB of save data.
- reworkAdded Instance.GetSaveData Workshop saves leverage Steam Cloud and persist across installs.
- reworkAdded Instance.GetSaveData Save data size limit can be configured with sv_workshop_map_save_data_max_filesize_mb.
- reworkAdded Instance.OnModifyPlayerDamage Called after all damage properties have been calculated, just before armor and health are modified
- reworkAdded Instance.OnModifyPlayerDamage Replaces Instance.OnBeforePlayerDamage
- reworkAdded Instance.OnModifyPlayerDamage Includes hitgroup in event data
- reworkAdded hitgroup to OnPlayerDamage event data
- reworkAdded CSDamageFlags.IGNORE_ARMOR
- reworkAdded CSPlayerPawn.IsInputPressed
- reworkAdded CSPlayerPawn.WasInputJustPressed
- reworkAdded CSPlayerPawn.WasInputJustReleased
- reworkAdded enum CSInputs
- fixFixed bug where CSDamageTypes was exported under the name CSDamageType
2026-01-21
- reworkFixed a bug where activator was sometimes incorrect for func_door outputs OnOpen, OnFullyOpen, OnClose, and OnFullyClosed Added BaseModelEntity.GetModelName
- reworkFixed a bug where activator was sometimes incorrect for func_door outputs OnOpen, OnFullyOpen, OnClose, and OnFullyClosed Added BaseModelEntity.GetModelScale
- reworkFixed a bug where activator was sometimes incorrect for func_door outputs OnOpen, OnFullyOpen, OnClose, and OnFullyClosed Added BaseModelEntity.GetColor
- reworkFixed a bug where activator was sometimes incorrect for func_door outputs OnOpen, OnFullyOpen, OnClose, and OnFullyClosed Added BaseModelEntity.IsGlowing
2025-10-14
- reworkcs_script enums can now be imported and behave the same as TypeScript enums. CSWeaponType.PISTOL == 1
- reworkcs_script enums can now be imported and behave the same as TypeScript enums. CSWeaponType\[1] == "PISTOL"
- reworkAdded enums CSRoundEndReason, CSHitGroup, CSLoadoutSlot, CSDamageTypes, CSDamageFlags and CSWeaponAttackType
- reworkAdded BOOSTS value to CSGearSlot. This is the gear slot for healthshots.
- reworkUpdated Instance.OnRoundEnd to now receive the reason
- reworkUpdated Instance.OnBeforePlayerDamage to now receive damageType and damageFlags and the result can now modify damageType and damageFlags
- reworkUpdated Instance.OnPlayerDamage to now receive damageType and damageFlags
- reworkUpdated Instance.OnKnifeAttack to now receive attackType
- reworkUpdated Instance.TraceLine, Instance.TraceSphere and Instance.TraceBox The trace config now accepts an array of ignore entities or just one
- reworkUpdated Instance.TraceLine, Instance.TraceSphere and Instance.TraceBox The trace config can specify to trace against hitboxes
- reworkUpdated Instance.TraceLine, Instance.TraceSphere and Instance.TraceBox The trace result will include hitGroup if tracing against hitboxes
- reworkUpdated Instance.BulletTrace result to include hitGroup
- reworkUpdated Entity.TakeDamage to accept damageType and damageFlags
- reworkAdded CSWeaponData.GetGearSlot()
2025-10-13
- reworkcs_script enums can now be imported and behave the same as TypeScript enums. CSWeaponType.PISTOL == 1
- reworkcs_script enums can now be imported and behave the same as TypeScript enums. CSWeaponType\[1] == "PISTOL"
- reworkAdded enums CSRoundEndReason, CSHitGroup, CSLoadoutSlot, CSDamageTypes, CSDamageFlags and CSWeaponAttackType
- reworkAdded BOOSTS value to CSGearSlot. This is the gear slot for healthshots.
- reworkUpdated Instance.OnRoundEnd to now receive the reason
- reworkUpdated Instance.OnBeforePlayerDamage to now receive damageType and damageFlags and the result can now modify damageType and damageFlags
- reworkUpdated Instance.OnPlayerDamage to now receive damageType and damageFlags
- reworkUpdated Instance.OnKnifeAttack to now receive attackType
- reworkUpdated Instance.TraceLine, Instance.TraceSphere and Instance.TraceBox The trace config now accepts an array of ignore entities or just one
- reworkUpdated Instance.TraceLine, Instance.TraceSphere and Instance.TraceBox The trace config can specify to trace against hitboxes
- reworkUpdated Instance.TraceLine, Instance.TraceSphere and Instance.TraceBox The trace result will include hitGroup if tracing against hitboxes
- reworkUpdated Instance.BulletTrace result to include hitGroup
- reworkUpdated Entity.TakeDamage to accept damageType and damageFlags
- reworkAdded CSWeaponData.GetGearSlot()
2025-10-03
- fixFixed Instance.OnPlayerPing not sending position.
2025-10-02
- fixFixed a bug where old callbacks could be invoked after a script reload.
- fixFixed a bug where new callbacks could be invoked multiple times after a script reload.
- fixFixed missing Instance.IsFreezePeriod.
- fixFixed Instance.OnGunReload and Instance.OnGunFire not working for XM1014, Nova, and Sawed-Off.Nova · Sawed-Off · XM1014
2025-10-01
- reworkUpdated general error handling for methods. An exception will be thrown when the method is invoked with an incorrect 'this' value. An error will be logged and a default value that matches the declared return type will be returned when the method is invoked with unsupported arguments.
- reworkImproved performance of handling Vector, QAngle, and Color values as arguments and return values.
- reworkWhen interpreting a Color argument, rgba values will be clamped to a maximum of 255.
- reworkAdded an overload for each of the following methods that accepts a single object holding all parameters. Deprecated the previous overload. Instance.DebugScreenText
- reworkAdded an overload for each of the following methods that accepts a single object holding all parameters. Deprecated the previous overload. Instance.DebugLine
- reworkAdded an overload for each of the following methods that accepts a single object holding all parameters. Deprecated the previous overload. Instance.DebugBox
- reworkAdded an overload for each of the following methods that accepts a single object holding all parameters. Deprecated the previous overload. Instance.DebugSphere
- reworkAdded an overload for each of the following methods that accepts a single object holding all parameters. Deprecated the previous overload. Instance.EntFireAtName
- reworkAdded an overload for each of the following methods that accepts a single object holding all parameters. Deprecated the previous overload. Instance.EntFireAtTarget
- reworkAdded an overload for each of the following methods that accepts a single object holding all parameters. Deprecated the previous overload. Entity.Teleport
- reworkChanged all callbacks to accept a single object holding all parameters.
- reworkAdded Instance.OnScriptReload
- reworkDeprecated Instance.OnReload and Instance.OnBeforeReload
- reworkAdded Instance.TraceLine
- reworkAdded Instance.TraceSphere
- reworkAdded Instance.TraceBox
- reworkAdded Instance.TraceBullet
- reworkDeprecated Instance.GetTraceHit
- reworkAdded Instance.OnPlayerReset
- reworkAdded Instance.OnBeforePlayerDamage
- reworkAdded Instance.OnPlayerDamage
- reworkAdded Instance.OnPlayerJump
- reworkAdded Instance.OnPlayerLand
- reworkAdded Instance.OnGunReload
- reworkAdded Instance.OnBulletImpact
- reworkAdded Instance.OnPlayerPing
- reworkAdded Instance.OnGrenadeBounce
- reworkAdded Instance.OnKnifeAttack
- reworkAdded Instance.IsFreezePeriod
- reworkAdded Entity.GetOwner
- reworkAdded Entity.SetOwner
- reworkAdded Entity.GetParent
- reworkAdded Entity.SetParent
- reworkAdded Entity.IsAlive
- reworkAdded Entity.IsWorld
- reworkAdded Entity.TakeDamage
- reworkAdded CSPlayerPawn.DropWeapon
- reworkAdded CSWeaponData.GetDamage
- reworkAdded CSWeaponData.GetRange
- reworkAdded CSWeaponData.GetRangeModifier
- reworkAdded CSWeaponData.GetPenetration
2025-09-24
- reworkUpdated tsconfig.json in the script_zoo, setting the target to "es2022" for more accurate type analysis.
- reworkChanged 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.
- fixFixed point_script entity to no longer potentially crash after an unsuccessful reload from an invalid script while running the game in tools mode.
- reworkChanged 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.
- reworkChanged methods expecting arguments of string type to now error instead of calling toString for arguments of the wrong type.
- reworkChanged Instance.Msg and Instance.DebugScreenText to accept any type for the text value.
- fixFixed a bug where RunScriptInput would crash the game when triggered with a null caller or activator.
- reworkRemoved 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.
- reworkAdded Instance.DebugLine
- reworkAdded Instance.DebugBox
- reworkAdded Instance.OnPlayerConnect
- reworkAdded Instance.OnPlayerActivate
- reworkAdded Instance.OnPlayerDisconnect
- reworkAdded Instance.OnRoundStart
- reworkAdded Instance.OnRoundEnd
- reworkAdded Instance.OnBombPlant
- reworkAdded Instance.OnBombDefuse
- reworkAdded Instance.OnPlayerKill
- reworkAdded Instance.OnPlayerChat
- reworkAdded Instance.OnGunFire
- reworkAdded Instance.OnGrenadeThrow
- reworkAdded an overload to Instance.EntFireAtName that allows setting caller and activator
- reworkAdded an overload to Instance.EntFireAtTarget that allows setting caller and activator
- reworkAdded normal vector to the result of Instance.GetTraceHit
- reworkAdded Entity.GetGroundEntity
- reworkAdded CSWeaponBase.GetOwner
- reworkAdded CSPlayerController.GetName
- reworkAdded CSObserverPawn.GetOriginalPlayerController
- reworkAdded CSPlayerPawn.GetOriginalPlayerController
- reworkAdded CSPlayerPawn.IsCrouching
- reworkAdded CSPlayerPawn.IsCrouched
- reworkAdded CSPlayerPawn.IsNoclipping
- reworkSee maps/editor/zoo/scripts/point_script.d.ts for comprehensive details on the API
- reworkAdded "train_zoo.vmap" with all de_train assets and examples for mapmakers.Train
2025-09-17
- reworkAdded javascript to the list of asset types.
- fixFixed type declaration for the newAngles parameter of Entity.Teleport.
- fixFixed a bug where GetTraceHit would crash when the config parameter was not specified.
2025-09-16
- reworkAdded cs_script, a JavaScript based scripting system for Counter-Strike maps.
- reworkAdded script_zoo.vmap to demonstrate cs_script usage and functionality.
2025-02-13
- reworkIncreased supported upload size for Counter-Strike 2 Steam Workshop Maps to 3 GB.
2024-10-02
- reworkAdded optional 3rd layer to environment blend shader
- reworkAdded biplanar mapping as an option for environment shaders
- reworkAdded optional wetness layer, paintable in Hammer on environment materials with the feature enabled
- reworkAdded color correction, roughness, and normal adjustments to foliage shader and static overlays
2024-05-01
- reworkAdded arms race game mode for workshop map submissions
2024-02-28
- fixFix lightmaps being capped at 4k resolution in CS2 Workshop Tools
- reworkUpdated sticker inspect to support wear in 0.1 increments to match sticker scraping
- contentAdded roughness texture to foil stickers in the Item Editor
- reworkUpdated help system for new sticker features
2023-12-18
- fixFixed inconsistent behavior with triggers when crouching in workshop maps
2023-11-16
- fixFixed custom sound events files in workshop maps
- reworkAdded some material settings for water refraction/caustics
- reworkWorkshop maps can now be tagged as supporting Wingman mode
- reworkLinux clients can now run workshop maps without requiring -insecure
- reworkAdded trigger_hostage_reset trigger and logic_eventlistener entities
- reworkAdded convars sv_walkable_normal and sv_standable_normal to allow community servers to tweak player movement on angled surfaces
- fixFixed health getting clipped when it exceeds 3 digits
2023-11-02
- reworkEnabled uploading CS2 maps to the workshop
- reworkCommunity Servers can host workshop maps
- reworkAdded paint metalness and roughness by color features to Solid Color, Hydrographic, and Spray-Paint finishes in the Item Editor
- contentAdded option to toggle "Automatic PBR Color Correction" to all sticker types in Item Editor
- reworkVarious Item Editor help system updates including "mat_fullbright 10" to test PBR
- reworkVarious updates to workshop tools