-
MatchZy 0.8.85
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 47sreleased this
2026-09-27 23:48:20 +02:00 | 39 commits to main since this release0.8.85
September 27, 2026
- New
matchzy_stats_include_bots(default false): bots on CT/T get player stats in the database, CSV and stats events. Bots have no SteamID, so each is recorded under a stable id of 90000000000000000 plus a hash of its name (one row per bot per map). Bots are still not tracked as match players, so the ready system, veto and pauses are unchanged. - Players vs bots matches: a team with
"players": "any"takes any human not on another roster, and a team with"bots": true(optional"bot_difficulty"0-3) is filled with bots up toplayers_per_teamand kept on its side through warmup, live, halftime, overtime and round restores. A bot match needs a fixed map list (the load is refused if it would veto), draws knife sides at random, and the bot side always counts as ready/unpaused and is ignored by autopause. Bot stats are recorded automatically;.warmupbotsis disabled in these matches. See the README. - A live round with only bots now logs that plainly (and names the convar) instead of the roster warning "Every connected player resolved to CsTeam.None".
- Removed
matchzy_coach_debugand its coach/spawn debug log lines. Coaches are now always killed at the end of freezetime. - Removed the
[rethrow perf]timing line that slow practice rethrows printed to the server console. - Practice: a normal throw now stores the grenade's launch velocity reliably, so
.rethrow/.rtno longer spawns nothing after a throw was recorded with zero velocity.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- New
-
MatchZy 0.8.84
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 53sreleased this
2026-09-26 14:15:39 +02:00 | 46 commits to main since this release0.8.84
September 26, 2026
- Fixed demo & backup rounds.
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
MatchZy 0.8.83
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 42sreleased this
2026-09-17 08:56:02 +02:00 | 49 commits to main since this release0.8.83
September 16, 2026
- Prepare managed rethrow entry points during background load warm-up to reduce first-use JIT work. Flash timings now separate entity creation from DispatchSpawn, and replayed projectiles receive the recorded item index on the managed creation path too.
- Reduced repeated native player reads during round damage initialization, death tracking, and practice marker visibility checks. Added slow arc-render timings and released HTTP response resources after remote event delivery.
- Practice rethrows resolve only the requested grenade factory instead of initializing all four on first use. Slow rethrows log signature-resolution, spawn, and setup timings to help diagnose gameplay stalls.
- Round backups now serialize match and team configuration on a background worker using independent snapshots, reducing game-thread work while retaining the existing restore format.
- Warm selected round-start methods and JSON serializer metadata in the background when the plugin loads, reducing first-use initialization work. Live testing is still required to determine whether this reduces the observed round-start stalls.
- Round start no longer walks the full entity list to set the scoreboard team names, no longer re-reads live.cfg on rounds 1 and 2 (the file is cached and re-read only when it changes on disk), and encodes the scoreboard part of the round backup off the game thread.
- Round start now logs a "[round_start perf]" line whenever its game-thread work exceeds 5 ms, naming the stages that went over.
Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
3 downloads
-
MatchZy 0.8.82
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 49sreleased this
2026-09-15 21:00:19 +02:00 | 53 commits to main since this release0.8.82
September 15, 2026
- Practice bot commands (.bot, .tbot, .ctbot, .crouchbot, .boost, .crouchboost) now correctly refuse to run on servers started with -nobots. The check read the command line through the .NET runtime, which inside CounterStrikeSharp does not return the server's real launch options, so the flag was never seen. With bots disabled the engine still creates a controller and pawn for each bot_add but gives it no player model, which is why .bot appeared to place an invisible bot that could still be shot and damaged. The flag is now read from the engine's own command line.
- .warmupbots now refuses to run on a server started with -nobots as well, instead of setting a bot quota the engine answers with invisible bot shells.
- .nobot used a different, broken -nobots check (it looked for a value on a flag that carries none), so it never matched either. It now uses the same check as the rest of the bot commands.
- The "bots are disabled" notice is now sent only to the player who ran the command, in that player's language, instead of being broadcast to everyone in the server's default language.
- Launch options are now read from the engine command line for every check that uses them, so -nohltv (used to skip CSTV and demo recording) is detected on servers where it previously went unnoticed.
- Fixed .map being ignored after a map change. The duplicate-command guard stored a timestamp from the previous map, and because server time restarts on every map load the next .map looked like a repeat and was dropped until the server had been running long enough. Changing map twice in a row works again.
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
MatchZy 0.8.81
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 2m52sreleased this
2026-09-11 12:49:17 +02:00 | 55 commits to main since this release0.8.81
September 5, 2026
Just gamedata update =)
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
3 downloads
-
Source code (ZIP)
-
MatchZy 0.8.80
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 49sreleased this
2026-09-04 12:24:54 +02:00 | 61 commits to main since this release0.8.80
September 4, 2026
- Fixed the plugin starting warmup on top of a practice session when it was loaded from a mode-switch script. A script such as
css_plugins load "MatchZy"; matchzy_autostart_mode 2; css_pracran css_prac correctly, but the plugin's own config.cfg exec (queued at load) landed after the script's lines and reset matchzy_autostart_mode to 1, so the delayed autostart then exec'd warmup.cfg over prac.cfg. The explicit mode commands now consume that map's autostart, so the delayed autostart no longer overrides a mode an admin already chose. - css_prac, css_match, css_scrim, css_exitprac and css_sleep now also write the chosen mode to matchzy_autostart_mode (2, 1, 1, 1, 0), so the mode survives a map change. Before, a map change always fell back to the value in config.cfg, which sent a practice server back to warmup when a mode-switch script reloaded the map to apply game_alias. css_dryrun is unchanged (no autostart mode maps to dryrun).
- Practice started by autostart on a fresh map (matchzy_autostart_mode 2, or the mode-switch flow above) now becomes a real practice round as soon as the first player connects. prac.cfg ran before anyone was in, so its mp_warmup_end did nothing and the engine started its own warmup on the first connect: the player sat through the server's mp_warmuptime countdown before practice settings (60 min round) took effect. The warmup is now ended right away. The built-in fallback practice (no prac.cfg) keeps its paused warmup and pins mp_warmuptime to 9999 so a short inherited value does not run a countdown.
- Bullet impacts (sv_showimpacts) are now on for every player when practice starts or a player joins practice; .impacts turns them off per player. Before, each client was sent sv_showimpacts 0 on connect and at practice start, so nobody saw impacts until .impacts, and coming from another mode (deathmatch) the client kept that mode's 0. The .impacts toggle also assumed the wrong starting state, so it could take two presses.
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
- Fixed the plugin starting warmup on top of a practice session when it was loaded from a mode-switch script. A script such as
-
MatchZy 0.8.79
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 49sreleased this
2026-09-02 23:35:36 +02:00 | 62 commits to main since this release0.8.79
September 2, 2026
- .mhelp now shows each admin the commands they can actually run. The chat summary is built from the same permission checks the commands use, grouped by category, so an admin with only the map/practice flag (SourceMod "g") sees .match, .scrim, .prac, .map and the like, while .start, .endmatch, .restore and other match-control commands are left out. The console copy lists every admin command with a check mark or a blank box and, for each command the player cannot use, the permission it needs (for example "needs: @css/config"), followed by a short flag legend.
- .mhelp is no longer restricted to admins holding @css/config. Any player who passes at least one admin command's permission check can open it; before, a map/practice-only admin was told they were not an admin and got no guide at all.
- The admin command list is now a single table in the plugin (Util/AdminCommandCatalog.cs) that records, per command, the exact permission key and flags its handler checks. Per-player command_overrides from admins.json are honored by the guide the same way the commands honor them. New admin commands must be added to this table to appear in .mhelp.
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
MatchZy 0.8.77
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 47sreleased this
2026-08-25 21:09:32 +02:00 | 63 commits to main since this release0.8.77
August 25, 2026
- MatchZy now also runs on stock upstream CounterStrikeSharp (roflmuffin), not only the forked build. On stock servers, css_scrim / css_match and demo recording no longer fail with a TypeLoadException: the CSTV enabled check reads the process command line instead of the fork-only CommandLine helper, and the coach auto-placement and grenade library label positioning detect the fork's Trace API at runtime and fall back cleanly when it is absent (coach uses a simple hover spot, labels keep their saved position).
- gamedata/matchzy.json now includes the CCSPlayer_WeaponServices_SelectItem vtable offset, so putting a restored grenade or weapon in hand (.last / .back / .ln) also works on stock CounterStrikeSharp, whose core gamedata does not carry that key.
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
MatchZy 0.8.76
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 44sreleased this
2026-08-17 15:44:33 +02:00 | 64 commits to main since this release0.8.76
August 17, 2026
- Practice .bot no longer refuses to spawn a bot when CSTV is disabled. The full-server guard that protects the CSTV bot from being displaced now only applies while a CSTV client is actually connected; with tv_enable 0 (common on listen servers, which can also report a wrong max player count) bots spawn normally again.
Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
3 downloads
-
MatchZy 0.8.75
StableAll checks were successfulBuild and Release / Build and Release (push) Successful in 42sreleased this
2026-08-15 00:12:17 +02:00 | 65 commits to main since this release0.8.75
August 15, 2026
- matchzy_kick_when_no_match_loaded works again. The kick was lost in an earlier fork revision, so the convar let anyone join: with it enabled, players who are not on the loaded match's roster (or anyone at all when no match is loaded) are now kicked on connect. Admins are exempt so they can join to manage the server.
- The css_whitelist player whitelist is enforced again: with whitelisting enabled, players whose SteamID is not in whitelist.cfg are kicked on connect. The check existed but was never called, so it did nothing.
- Fixed a server crash when a player who was not part of a set-up match joined a team or spectate: the plugin tried to move them to team "None" and respawn them there, which can take the server down.
Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
2 downloads