Events¶
Every event is sent as an HTTP POST with a JSON body to matchzy_remote_log_url. The event field names the event. See the Live events guide for setup.
= not sent by upstream MatchZy.
Common fields¶
event: event name.matchid: on match events.map_number: 0-based map index in the series.round_number: on round and live events.- Veto events use
team="team1"/"team2". Live events use sides"CT"/"T".
Player stats objects (team1.players[].stats on round_end and map_result) carry kills, deaths, assists, damage, utility damage, enemies flashed, headshot kills, rounds played, multi kills (2k-5k), 1v1 / 1v2 wins, score and MVPs. Advanced stats (KAST, rating, opening duels, trades) are written to the stats JSON file, not to events.
Match flow¶
| Event | When | Fields |
|---|---|---|
series_start |
A match config was loaded | matchid, num_maps, team1{id,name}, team2{id,name} |
map_vetoed |
A team bans a map | matchid, team, map_name |
map_picked |
A team picks a map | matchid, team, map_name, map_number |
side_picked |
A side is chosen for a picked map | matchid, team, map_name, map_number, side |
going_live |
The map goes live | matchid, map_number |
round_start |
Every round start once the match has started | matchid, map_number, round_number |
freezetime_end |
Freeze time ends | round_number, ct_alive, t_alive, players[] (name, steamid, team, hp, armor, has_helmet, has_defuser, money) |
round_end |
A live round ends | round_number, reason, winner{side,team}, team1, team2 (scores and player stats) |
map_result |
The map ends | map_number, winner, team1, team2, demo_filename |
series_end |
The series ends | winner, team1_series_score, team2_series_score, time_until_restore |
match_cancelled |
A running match is stopped, surrendered or restarted | reason (ended_early, surrendered, restarted), demo_filename, team1, team2, team1_score, team2_score |
match_paused |
Any pause starts | round_number, pause_type (pause, tech, admin, auto), team_name, max_duration |
match_unpaused |
Any pause ends | round_number |
demo_upload_ended |
A demo upload finished | map_number, filename, success |
Live scorebot ¶
| Event | When | Fields |
|---|---|---|
player_death |
A player dies | attacker_name, attacker_steamid, attacker_team, victim_name, victim_steamid, victim_team, assister_name, assister_steamid, weapon, headshot, penetrated, noscope, thrusmoke, attackerblind, is_suicide, ct_alive, t_alive |
player_hurt |
A player takes damage (live) | attacker_name, attacker_steamid, victim_name, victim_steamid, victim_team, hp_remaining, armor_remaining, damage_health, damage_armor, weapon, hitgroup |
bomb_planted |
Bomb planted | player_name, player_steamid, site (A/B), ct_alive, t_alive |
bomb_defused |
Bomb defused | same as bomb_planted |
bomb_exploded |
Bomb exploded | site, ct_alive, t_alive |
bomb_pickup, bomb_dropped |
Bomb picked up / dropped | player_name, player_steamid |
grenade_thrown |
Grenade thrown | player_name, player_steamid, player_team, grenade (smoke, flash, he, molotov, incendiary, decoy) |
grenade_detonated |
Grenade detonated | player_name, player_steamid, player_team, grenade, x, y, z |
player_blinded |
A player is flashed | attacker_*, victim_*, duration (seconds), team_flash |
All live events also carry matchid, map_number and round_number.
Example¶
{
"event": "player_death",
"matchid": 1042,
"map_number": 0,
"round_number": 7,
"attacker_name": "alpha1",
"attacker_steamid": "76561198000000001",
"attacker_team": "CT",
"victim_name": "bravo3",
"victim_steamid": "76561198000000013",
"victim_team": "T",
"assister_name": null,
"assister_steamid": null,
"weapon": "ak47",
"headshot": true,
"penetrated": false,
"noscope": false,
"thrusmoke": false,
"attackerblind": false,
"is_suicide": false,
"ct_alive": 5,
"t_alive": 3
}