Events
A script reacts by defining global functions (callbacks) or by adding handlers with events.on. When both exist for the same event, both run.
Callbacks
| Callback | When |
|---|---|
on_frame() | Every overlay frame. The only place drawing works. |
on_tick() | 64 times a second, at most 4 times per frame. Good for logic that should not depend on FPS. |
on_menu() | Every frame while the script's tab is open. menu.* widgets work only here. |
on_unload() | Right before the script is turned off, reloaded or deleted. |
on_notepad_save(id, text) | The user pressed Save in a notepad this script opened. |
on_kill(e) | You killed someone. |
on_death(e) | You died. |
on_round_start() | A new round began. |
on_round_end(e) | The round ended. |
function on_tick()
end
function on_frame()
end
function on_unload()
db.set("last_seen", globals.time())
endevents.on
events.on(name, handler) adds a handler; you can add many to one event, from different parts of your script. events.off(name) removes them all.
events.on("player_hurt", function(e)
if e.enemy then print(e.name .. " -" .. e.damage) end
end)
events.on("bomb_planted", function(e)
notify.push("Bomb on " .. e.site)
end)Events
kill
You got a kill. Also calls on_kill(e).
| Field | Type | Meaning |
|---|---|---|
victim | string | Name of the player you killed, or empty when not seen. |
weapon | string | Your weapon: AK, AWP, M4A1S, DEAGLE, KNIFE, HE, … |
headshot | boolean | |
knife | boolean | A knife kill. |
round_kills | integer | Your kills this round, this one included. |
death
You died. Also calls on_death(e). The table is empty.
round_start
A round began. Also calls on_round_start() (no argument). The table is empty.
round_end
A round ended. Also calls on_round_end(e).
| Field | Type | Meaning |
|---|---|---|
won | boolean | Your team won. |
winner | integer | 2 = T won, 3 = CT won, other values for a draw. |
player_hurt
Any player lost health since the last frame.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
damage | integer | Health lost. |
health | integer | Health left. |
enemy | boolean | |
is_local | boolean | It was you. |
player_death
A player's health reached 0. Same fields as player_hurt.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
damage | integer | |
health | integer | Always 0. |
enemy | boolean | |
is_local | boolean |
bomb_planted
The bomb was planted.
| Field | Type | Meaning |
|---|---|---|
site | string | A, B or empty. |
bomb_defused
The bomb was defused. The table is empty.
bomb_exploded
The bomb exploded. The table is empty.
spectator_join
Someone started watching you.
| Field | Type | Meaning |
|---|---|---|
name | string |
spectator_leave
Someone stopped watching you.
| Field | Type | Meaning |
|---|---|---|
name | string |
shot_fired
Any player fired.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
enemy | boolean | |
is_local | boolean | |
shots | integer | Shots in the current spray. |
weapon | string |
flashed
A player got flashed.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
enemy | boolean | |
is_local | boolean | |
duration | number | Seconds. |
spotted
A player became spotted by you.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
enemy | boolean |
unspotted
A player is no longer spotted by you.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
enemy | boolean |
bomb_defusing
Someone started defusing.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
enemy | boolean |
purchase
A player spent money.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
name | string | |
enemy | boolean | |
is_local | boolean | |
spent | integer | |
money | integer | Money left. |
sound
A game sound was heard (needs Sound ESP on).
| Field | Type | Meaning |
|---|---|---|
type | string | footstep, shot, jump, reload, scope, land. |
slot | integer | -1 when unknown. |
enemy | boolean | |
pos | vector |
footstep
Only footsteps from sound. Same fields.
| Field | Type | Meaning |
|---|---|---|
slot | integer | |
enemy | boolean | |
pos | vector |
weapon_switch
You changed weapons.
| Field | Type | Meaning |
|---|---|---|
from | string | |
to | string |
jump
You left the ground.
| Field | Type | Meaning |
|---|---|---|
speed | number | Upward speed. |
land
You landed.
| Field | Type | Meaning |
|---|---|---|
speed | number | Fall speed. |
scope
You scoped in.
| Field | Type | Meaning |
|---|---|---|
weapon | string |
unscope
You scoped out.
| Field | Type | Meaning |
|---|---|---|
weapon | string |
reload
You started reloading.
| Field | Type | Meaning |
|---|---|---|
weapon | string |
reload_end
Your reload finished or was cancelled.
| Field | Type | Meaning |
|---|---|---|
weapon | string |
zone_enter
You walked into one of this script's world.zones. Only that script gets it.
| Field | Type | Meaning |
|---|---|---|
id | integer | |
name | string |
zone_leave
You walked out of one of this script's zones.
| Field | Type | Meaning |
|---|---|---|
id | integer | |
name | string |
Timing
- Events run once a frame, before
on_tickandon_frame. - Kills, deaths and rounds are checked 10 times a second while you are in a match, so they can arrive up to 0.1 s late.
player_hurtandplayer_deathcome from health changes between frames: two hits in one frame show as one event with the sum.- The kill
victimis the player whose death was seen within 1.5 s; otherwise it is empty. on_tickruns 64 times a second on average, but at most 4 times in one frame. At low FPS some ticks are dropped.