Coaching
A coach is part of a team but does not play. In this fork the coach stands at a viewing spot behind the team during freeze time (for the tactical talk), is invisible and cannot be damaged, and is killed at the very end of freeze time so they spectate the round. The coach has no money, never keeps the bomb, and their scoreboard line stays at 0. The coach belongs to the team, not the side: after halftime they follow their team to the other side.
Who can coach
Section titled “Who can coach”The rules depend on whether the match config gives the team a coaches list.
| Situation | Who can .coach the team |
|---|---|
| No match loaded (pug, scrim) | Anyone on that team’s side. |
Match config, team without coaches |
Players on that team’s players roster, while on the team’s side. With matchzy_coach_listed_only true: nobody. |
Match config, team with coaches |
Only the SteamIDs in that team’s coaches list. |
| Any case | Never the opposing team. Being an admin gives no exception. |
matchzy_coach_enabled false |
Nobody (also not listed coaches). |
.coachonly works for the team you are on..coachworks in warmup and during freeze time, not in the middle of a live round..uncoachgoes back to playing (not for a coach who is only in thecoacheslist).- Someone who is in no roster of a loaded match is moved to Spectator and cannot coach, admins included. To let an admin coach, put their SteamID in the team’s
playersorcoaches.
Coaches in the match config
Section titled “Coaches in the match config”List coaches per team, the same way as players (an object keyed by SteamID64, or an array of SteamID64s):
{ "matchid": 1001, "num_maps": 1, "maplist": ["de_inferno"], "map_sides": ["team1_ct"], "players_per_team": 5, "min_players_to_ready": 5, "team1": { "id": "100", "name": "Team A", "players": { "76561198000000001": "Player1", "76561198000000002": "Player2", "76561198000000003": "Player3", "76561198000000004": "Player4", "76561198000000005": "Player5", "76561198000000006": "Substitute1" }, "coaches": { "76561198000000009": "CoachA" } }, "team2": { "id": "200", "name": "Team B", "players": { "76561198000000011": "Player1", "76561198000000012": "Player2", "76561198000000013": "Player3", "76561198000000014": "Player4", "76561198000000015": "Player5" }, "coaches": ["76561198000000019"] }, "spectators": { "players": { "76561198000000099": "Caster" } }}What this does:
- CoachA picks Team A’s side in the team menu (the only side allowed for them) and becomes its coach automatically. Only CoachA can coach Team A; Team A’s players (including Substitute1) cannot
.coach. - The player with SteamID
...019is Team B’s coach (array form works the same). - Listed coaches may join even with
matchzy_kick_when_no_match_loaded, do not count towardplayers_per_teamor the ready check, and do not need to.ready. - Remove a team’s
coacheslist to let its rostered players coach instead.
What players notice
Section titled “What players notice”Nothing. The coach does not take a competitive spawn, so the five players always spawn on the normal spots. The coach has no teammate color, does not show up in the kill feed when removed at the end of freeze time, and never passes through the Spectator team.
Viewing spots
Section titled “Viewing spots”matchzy_coaching_mode |
Spot |
|---|---|
1 (default) |
Hand-tuned spot from spawns/coach/<map>.json when the map has one, otherwise computed. |
2 |
Always computed: behind the team with line of sight, validated against walls and floors, with an overhead camera as a last resort. |
Hand-tuned spots ship for ancient, ancient_night, anubis, cache, dust2, inferno, mirage, nuke, overpass, train and vertigo. Admins can tune a map in game:
.coachtestplaces you like a coach right now (run again to release)..showcoachspawnsshows both sides’ spots.- Stand where the coach should be, look the right way, and type
.savecoachspawn tor.savecoachspawn ct.