Skip to content

Stats and database

Database

SQLite works out of the box (matchzy.db in the plugin folder). For MySQL / MariaDB edit cfg/MatchZy/database.json:

{
  "DatabaseType": "MySQL",
  "MySqlHost": "127.0.0.1",
  "MySqlDatabase": "matchzy",
  "MySqlUsername": "matchzy",
  "MySqlPassword": "secret",
  "MySqlPort": 3306
}

Tables are created automatically:

Table Contents
matchzy_stats_matches One row per match: start and end time, winner, series type (BO3), team names and series score, server address.
matchzy_stats_maps One row per map: map name, start and end time, winner, score.
matchzy_stats_players One row per player per map: kills, deaths, assists, damage, multi kills, utility and flash stats, 1v1 / 1v2, entries, headshots, money. Updated every round.

A stopped match has an end time and an empty winner.

Set matchzy_stats_include_bots true to record bots as well (each bot gets a stable id from its name).

CSV export

After every map: csgo/MatchZy_Stats/<matchid>/match_data_map<N>_<matchid>.csv, the player table for that map.

Advanced stats

When the map ends, MatchZy also writes an HLTV-style scoreboard to csgo/MatchZy_Stats/<matchid>/<demo name>_stats.json (written when a demo was recorded). Per player:

Stat Meaning
rating Rating 2.0 style (simplified): KAST, kills, deaths, impact and ADR.
kast % of rounds with a kill, assist, survival or being traded.
adr, hs_percent Damage per round, headshot percentage.
opening_kills, opening_deaths First kill / first death of a round.
trade_kills Kills on an enemy within 5 seconds of them killing a teammate.
1v1, 1v2 Clutches as wins/attempts.
5k, 4k, 3k, multi_kills Multi-kill rounds.

Players are sorted by rating. The file also holds the map, date, round count, winner and team scores.

Damage report

After each round players get a chat summary of damage given and taken (matchzy_enable_damage_report).