TeaHost
Counter-Strike 2cs2matchzyматчи5 мин. чтения

Установка MatchZy для матчей на сервере CS2

Установка MatchZy на сервер CS2: зависимости, папки плагина, конфиги live и warmup, загрузка матча из JSON, команды игроков и запись демо

Кратко

MatchZy — плагин CounterStrikeSharp для матчей CS2: поставьте Metamod и CounterStrikeSharp, распакуйте плагин в addons/counterstrikesharp/plugins/MatchZy/, а конфиги live.cfg, warmup.cfg и knife.cfg — в game/csgo/cfg/MatchZy/. Игроки управляют матчем командами .ready, .pause, .tech и .stop, турнирный матч загружается из JSON через matchzy_loadmatch; для записи демо нужен tv_enable 1.

Играть матч 5×5 на паблик-конфиге больно: разминка не кончается, ножевой раунд делается руками, смена сторон — через mp_restartgame, а если кто-то отвалился, пауза ставится криками в голосовом. Установка MatchZy закрывает всё это одним плагином: готовность команд, ножевой, выбор стороны, паузы, техтаймауты, автозапись демо и бэкапы раундов. Разберём порядок установки, структуру конфигов и как запустить первый матч.

Что требуется до установки

MatchZy — плагин под CounterStrikeSharp, а тот работает поверх Metamod. Значит, минимум:

  1. Рабочий дедик CS2 с обновлённой сборкой.
  2. Metamod: Source актуальной ветки.
  3. CounterStrikeSharp с рантаймом .NET.
  4. GSLT-токен, если сервер должен быть виден публично.

Проверка перед тем, как что-то распаковывать:

код
meta list
css_plugins list

Если css_plugins list пустой или ругается — сначала чините фреймворк, MatchZy тут ни при чём.

Скачивание правильной сборки

Плагин и его релизы лежат в репозитории MatchZy на GitHub, там же ссылка на документацию. На странице релизов выкладывается несколько архивов. Нужен тот, который собран под вашу ветку CounterStrikeSharp — версии фреймворка меняются часто, и плагин, собранный под старый API, просто не загрузится с ошибкой о недостающем типе.

Ориентир простой: смотрите на дату релиза MatchZy и дату релиза установленного CounterStrikeSharp. Если между ними прошёл мажорный апдейт CS2 — берите свежие оба.

Установка MatchZy: куда распаковывать файлы

Плагин кладётся в стандартную папку плагинов:

код
game/csgo/addons/counterstrikesharp/plugins/MatchZy/

Внутри должен оказаться MatchZy.dll и сопутствующие файлы. Частая ошибка — распаковать так, что получается plugins/MatchZy/MatchZy/MatchZy.dll. Лишний уровень вложенности, и загрузчик плагин не увидит.

Вторая половина установки — конфиги матчевых режимов:

код
game/csgo/cfg/MatchZy/

Туда попадают live.cfg, warmup.cfg, knife.cfg, prac.cfg и dry.cfg. Это обычные CS2-конфиги, плагин просто выполняет их в нужный момент. Если папки нет — MatchZy отработает на дефолтах, но переопределить ничего не получится.

Загружать файлы удобнее архивом через файловый менеджер панели или по SFTP — распаковка десятков мелких файлов по одному занимает вечность.

Первый запуск

Перезапустите сервер и проверьте загрузку:

код
css_plugins list

В списке должен появиться MatchZy с версией. После этого зайдите на сервер: если плагин жив, сервер сам встанет в режим разминки и в чате появятся подсказки о командах готовности.

Конфиги режимов: что править

warmup.cfg — состояние до матча. Здесь имеет смысл разрешить бесконечные патроны и бесплатную покупку:

код
mp_warmup_pausetimer 1
sv_infinite_ammo 2
mp_buy_anywhere 1

live.cfg — собственно матч. Тут живут настройки MR12 или MR15, овертайм и деньги:

код
mp_maxrounds 24
mp_overtime_enable 1
mp_overtime_maxrounds 6
mp_overtime_startmoney 10000
mp_startmoney 800
mp_roundtime_defuse 1.92
mp_freezetime 15
mp_halftime 1

knife.cfg — ножевой раунд: убираются деньги и покупка, чтобы никто не докупился.

Подробнее по самим переменным раундов — в статье про настройку разминки и раундов. Общие параметры сервера, не связанные с матчем, лучше держать в server.cfg, чтобы конфиги не конфликтовали.

Команды игроков

Их запоминают за один вечер, потому что все начинаются с точки:

КомандаЧто делает
.ready / .unreadyГотовность команды
.stopЗапрос на восстановление предыдущего раунда — обе команды должны согласиться
.pauseТактическая пауза
.techТехническая пауза, когда у кого-то вылетела игра
.unpauseСнятие паузы, тоже по согласию сторон
.stay / .switchВыбор стороны после победы в ножевом
.scoreТекущий счёт

Отдельно есть режим тренировки: .prac включает набор для отработки раскидок, .spawn, .bot, .noflash и прочее. Для полноценного практис-сервера этого достаточно — тема разобрана в блоге в статье про турнирный сервер на MatchZy.

Загрузка матча из JSON

Ручной .ready хорош для пикапа. Для турнира матч описывается файлом: команды, составы по SteamID64, число карт, режим MR.

Файл кладётся в game/csgo/MatchZy/ и загружается командой:

код
matchzy_loadmatch match1.json

Внутри — структура с matchid, num_maps, maplist, блоками team1 и team2 со списком SteamID64 и опциями вроде skip_veto. Есть и вариант с загрузкой по ссылке — matchzy_loadmatch_url, когда конфиг отдаёт ваш сайт или бот.

Практический момент: если в составах указаны конкретные SteamID и включён вайтлист, посторонний на сервер не зайдёт вообще. Для турнира это плюс, для тестового матча — источник недоумения, почему друг «не может подключиться».

Демо и бэкапы раундов

MatchZy пишет демо каждой карты автоматически — но только если на сервере включён tv_enable 1, без GOTV запись не начнётся. Путь настраивается переменной пути к демо, по умолчанию файлы падают в корень игры. Их полезно сразу выносить в отдельную папку, иначе через месяц турниров вы утонете в .dem.

Отдельно от демо плагин делает бэкап каждого раунда. Именно за счёт этого работает .stop: сервер откатывается на состояние начала раунда, включая деньги и счёт. Файлы бэкапов накапливаются так же быстро, как демо, — чистите их по расписанию.

Если параллельно нужен полноценный обзор игры для зрителей, поднимите GOTV: MatchZy с ним уживается без конфликтов.

Что чаще всего ломается

  • Плагин не в списке. Лишний уровень папки или несовместимая сборка под текущий CounterStrikeSharp.
  • Матч не стартует после .ready. Не набралось нужное число игроков в командах — MatchZy ждёт заполнения по своим правилам, а не «когда все нажали».
  • Конфиги не применяются. Папка cfg/MatchZy/ названа иначе или файлы лежат уровнем выше.
  • После патча CS2 всё падает. Обновляйте связку Metamod → CounterStrikeSharp → MatchZy целиком, порядок действий — в статье про обновление сервера CS2.
  • Боты мешают матчу. Выключите их насовсем: bot_quota 0, подробности в статье про ботов.

Коротко

Установка MatchZy сводится к трём шагам: поднять Metamod и CounterStrikeSharp, распаковать плагин в plugins/MatchZy/, положить конфиги в cfg/MatchZy/. Дальше матч запускается либо командами .ready, либо загрузкой JSON через matchzy_loadmatch.

Для матча 5×5 с судьями хватает 2 ГБ памяти на ванильном сервере (до 12 игроков), с MatchZy и другими плагинами CounterStrikeSharp закладывайте примерно в 1,5 раза больше — тарифы под CS2 здесь.