Awesome Open Source
Awesome Open Source


Build status Discord Chat


The T team setup to execute onto a site with ~40 seconds left and the CT team is typically in a fairly standard setup. Grenades are automatically thrown for the T players and the rounds plays out the way counter-strike plays. The game goes through pistol rounds, forcebuy/lowbuy rounds, then standard gun rounds. Players can use the guns menu to select some preferences: whether they want to have an AWP, which M4 to use, and what site they prefer to play on the CT side.

When a T team wins a round, the players typically move to CT. The goal is the defend off the executes and stay on CT. However, because executes is typically best played 5v5 it's hard to get varied teams if this is strictly followed, so there is some auto-scrambling of teams every sm_executes_auto_scramble rounds.



Download the archive from the latest build and extract ALL the files to the game server. This includes both the executes.smx and csutils.smx plugin files needed.

Note: the csutils.smx plugin comes from the practicemode project, and is used to throw the execute grenades.


The file cfg/sourcemod/executes/executes.cfg will be autogenerated when the plugin is first run and you can tweak it if you wish.

You may also tweak the values in cfg/sourcemod/executes/executes_game.cfg, which is executed by the plugin each map start.

Some important cvars:

  • sm_executes_minplayers
  • sm_executes_maxplayers
  • sm_executes_ratio_constant
  • sm_executes_round_time
  • sm_executes_auto_scramble

Creating Executes and Spawns

The plugin now comes with some default spawn configs, but you are strongly recommended to create your own. The provides spawns are likely quite out of date (some grenades may not even work) and may reflect a poor variety of executes that don't represent the current meta.

!edit: launches the editor, opens the edit menu. You will use this a lot !setname: sets the name of the spawn/execute being edited !clearbuffers: clears any spawn/execute edit buffers

When working on a map, you should:

  1. Add CT spawns. Each has a notion of 'friendliness' to a site. For example, a B site spawn on de_cache should typically have a '5' friendliness to B and a '1' to A. A spawn in mid might have a '3' to each site. This must be accurate for the CT spawn algorithm to work.
  2. Add some basic T spawns. Add them in spots you don't throw nades from. Name them in a way you can identify where they are later, e.g. 'B main 1', 'B main 2', etc.
  3. Start adding the spawns for the smokes/mollies you want. To do this, stand in the spot, go to 'new spawn' in the menu, throw the greande, and save the spawn. The editor will remember the LAST grenade thrown and attach it to the next spawn made (unless you use !clearbuffs before then).
  4. Start adding executes. You will select a list of 'required' T spawns for the execute (typically these are your set smokes), and 'optional' ones. The execute is only eligible to be picked if all the required spawns can be chosen (so if there are 4 required spawns, there must be at least 4 T's).

Other notes:

  • All spawns have a 'awp friendliness' rating. Spots good for awpers should get a 5, spots very bad should get a 1. TODO: awp friendliness should be renamed something like 'range friendliness'.
  • I don't recommend using the special support for 'lurk' spawns. The feature was never finished.
  • You can set some flags on spawns for some extra flavor, e.g. CT spawns can be marked with a 'mag7' flag so sometimes a CT spawned there will get a mag7. There are several flags for T and CT spawns.
  • Only 1 player should be workiing on the editor at a time. It saves a single buffer for the spawn/execute being edited, not one per player. If multiple players are throwing nades, the buffer will keep getting overwritten.
  • Install practicemode for a better editing experience so you will have the .back command, which helps you make sure your nades landed before saving them.
  • The editor can be buggy. Saving the config & reloading them can help if your spawns aren't showing up on the 'add spawns' menu for the execute builder menu.
  • If you don't know how something works, look at the code.


Pull requests will be reviewed if they meet a few guidelines:

  • Follow the code style (2 spaces for indentation, 100 line column limits, same bracing style)
  • Add some useful feature or make the use of plugin better.
  • Don't make arbitrary gameplay changes - those should be left out. I am not interesting in debating gameplay decisions. The plugin has an API for a reason - leave your other gameplay choices in other plugins. If you need a new native/forward (and you very likely will) feel free to add it.

There is a significant amount of bad code and TODOs - 95% of this was written in a few days. Cleaning those problems up is appreciated.

Discord Chat

A Discord channel is available for general discussion.

Known issues and limitations

  • Only 1 set grenade can be thrown from a spawn. This makes certain executes hard (upper executes on nuke, for example), but you can try to compensate by adding the 'flash' flag to T spawns that would typically flash after throwing their smoke/molotov.
  • Molotovs don't spread correctly when automatically thrown: this is a csutils bug.
  • The sm_executes_enabled cvar doesn't work very well.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Csgo (1,303
Sourcepawn (1,252
Sourcemod (707
Counter Strike (504
Counter Strike Global Offensive (188