Key takeaways

  • Map scripts can now read the planted bomb's site, planter, defuser and timings.
  • Scripts can spawn a grenade projectile and detonate it, which is the missing piece for automated utility drills.
  • The same update fixed a case where grenades could be thrown through level geometry.
  • Valve published names only — no behaviour, arguments or restrictions are documented in the notes.

If you learn utility on a Workshop grenade map, or warm up on a community retake server, the limit on what those maps can do for you has never really been the map — it has been what the map's script was allowed to know. Valve moved that limit on 3 August. Map scripts can now read the planted bomb directly, and they can create and detonate grenades themselves.

Nothing in your Premier queue changed. What changed is the surface the people who build your practice maps are working against.

What the notes list#

The 3 August update has a MAP SCRIPTING section with roughly two dozen entries. Grouped by what they touch:

The planted bomb. CSPlantedC4.IsBombsiteA and IsBombsiteB; GetPlanter and GetDefuser; IsActive, IsExploded and IsDefused; GetPlantTime, GetExplodeTime, GetDefuseStartTime and GetDefuseFinishTime. Alongside them, CSPlayerPawn.HasDefuser and SetHasDefuser, and a new Instance.OnBombExplode event.

Grenades. Instance.SpawnGrenadeProjectile; CSGrenadeProjectileBase.GetGrenadeType, GetThrower and Detonate; a CSGrenadeType enum; and two new fields on the Instance.OnGrenadeBounce event, hitEntity and normal. The event's existing bounces field is deprecated.

Everything else. Instance.TracePlayer, Instance.OnWeaponPickup, and a dropper field added to Instance.OnWeaponDrop. A bug where Instance.RegisterCheatCommand would not work on script reload is fixed.

Separately, in the gameplay section of the same update: Valve fixed a case where grenades could be thrown through level geometry. The note says "a case", not all cases, and does not say which. If you use a lineup that threads a grenade through something it visually should not pass through, check it still lands.

Everything above is what Valve published. The rest of this is our reading of it.

The bomb half is the one that unlocks modes#

A retake or execute-drill map has to know a specific set of things to be any good: which site the bomb is on, who planted it, whether a defuse has started, and when that defuse would finish relative to when the bomb goes off. Those are exactly the values in the new list.

That is the difference between a map that spawns you into an approximation of a retake and one that runs the real state machine. A script can now hold a round until the plant lands on the site it wants to drill, hand you a kit or take one away with SetHasDefuser, and then grade the attempt against GetDefuseFinishTime and GetExplodeTime rather than against a stopwatch it is running separately and hoping stays in sync.

GetPlanter and GetDefuser matter more than they look. They turn bomb events into per-player events, which is what any scoring or coaching layer needs to attribute an outcome to the person who caused it.

Spawning and detonating grenades is the practice-map piece#

SpawnGrenadeProjectile lets a script put a grenade into the world without a player throwing it. Detonate lets it decide when that grenade goes off rather than waiting out the fuse. GetThrower and GetGrenadeType let it tell whose utility this is and what kind.

Together those are the ingredients for a drill that runs the other side of a lineup for you. Holding an angle while the smoke that would have been thrown by a teammate actually arrives is a different exercise from throwing that smoke yourself and looking at where it landed, and it has generally needed a second person. A map script that can spawn and time its own utility does not.

The OnGrenadeBounce change is the same idea in miniature. A bounce count told a script that a grenade hit two things. hitEntity and normal tell it what it hit and at what angle, which is the gap between logging a throw and being able to say anything useful about it.

Three updates in a row#

This is not a single drop. The 8 July update added Instance.QueueAfterThinks, Instance.OnWeaponDrop and CSWeaponBase.GetOriginalOwner, and put file names and line numbers on script compile errors. The 29 July update fixed scripts failing to load in tools mode until a manual recompile. The 3 August update adds the bomb and grenade functions and fixes cheat command registration across reloads.

Two of those three entries are repairs to the authoring loop rather than new features. That is usually what maintenance looks like on a system somebody intends to keep, and it is a more reliable signal than any one feature list.

What Valve has not said#

The notes are names, not documentation. There is no published description of what any of these functions return, what they take as arguments, or where they are permitted to run — SpawnGrenadeProjectile in particular raises the question of what contexts allow a script to conjure utility, and the update notes do not answer it.

Valve has also said nothing about official modes. Nothing in this update suggests any of it reaches Competitive or Premier; read it as authoring surface for Workshop content, because that is all the notes support.

And the deprecation is a real cost for someone. If a map you use relies on bounces from OnGrenadeBounce, it needs an update from its author to keep working the way it does now.

Sources

Topics

  • patch analysis
  • game modes
ShareBlueskyReddit

Found something wrong or out of date? Tell us — we correct errors in place and label material changes. Read our editorial standards.