CS2: CounterStrikeSharp и плагины — как поставить на сервер
Что такое Metamod:Source и CounterStrikeSharp, в каком порядке их ставить в папку game/csgo, как проверить через meta list и где лежат плагины на сервере CS2.
Содержание 18
- Коротко
- Что такое стек плагинов
- Шаги
- Админы и проверка плагинов
- Пример: что должно быть в папке после установки
- Пример: вывод meta list
- Частые ошибки
- Как выбрать плагин
- Обновление плагинов без поломок
- Безопасность сервера с плагинами
- Пример: набор для первого сервера
- Как поставить плагины в панели EGN
- Пример: проверка плагина на тестовом сервере
- Итог
- Вопросы и ответы
- Нужен ли Metamod, если плагины на CounterStrikeSharp?
- Можно ли ставить плагины на сервер в панели без SFTP?
- Почему после обновления CS2 плагины перестали работать?
Стандартный сервер CS2 умеет очень мало. Если нужны свои команды, экономика, статистика или режим, который не встроен в игру, в экосистеме CS2 используют CounterStrikeSharp — фреймворк плагинов на C#. Он работает поверх Metamod:Source, который загружается в сам движок сервера. Установка двух слоёв — не сложная, но порядок важен: перепутайте его, и плагины не загрузятся вовсе.
Коротко
Для плагинов CS2 нужны два слоя: Metamod:Source 2.x (сборка 1467 или новее) и CounterStrikeSharp в варианте «With Runtime». Скопируйте их папки addons в game/csgo, добавьте строку Game csgo/addons/metamod в gameinfo.gi, перезапустите сервер и выполните meta list. Плагины кладутся в папку counterstrikesharp/plugins.
Что такое стек плагинов
Стек выглядит так: движок CS2 загружает Metamod:Source, Metamod загружает CounterStrikeSharp, а CounterStrikeSharp запускает плагины из своей папки. Если нижний слой не работает, верхние не загрузятся, поэтому проверять имеет смысл снизу вверх.
Каждый слой выполняет свою роль:
- Metamod:Source — загрузчик плагинов для движка Source. Для CS2 нужна версия 2.x, в официальной документации указана сборка 1467 или новее с поддержкой KHook.
- CounterStrikeSharp — среда для плагинов на C#, которой нужен собственный runtime. Поэтому берите вариант «With Runtime», в котором .NET уже включён.
- plugins/ — ваши плагины. Обычно каждый плагин — отдельная папка с .dll внутри
counterstrikesharp/plugins.
Шаги
-
Скачайте компоненты. Возьмите Metamod:Source 2.x Dev Build сборки 1467 и новее и CounterStrikeSharp «With Runtime» со страниц их разработчиков. Не берите случайные архивы с форумов: вредоносные сборки под видом плагинов встречаются.
-
Сделайте бэкап. Перед установкой создайте бэкап сервера в разделе «Бэкапы». Это займёт минуту и спасёт, если что-то пойдёт не так.
-
Скопируйте Metamod. Откройте раздел «Файлы» или подключитесь по SFTP и скопируйте папку
addonsиз архива Metamod вgame/csgo/. После копирования внутри должны появитьсяaddons/metamodи файлыmetamod.vdfиmetamod_x64.vdf. -
Подключите Metamod в gameinfo.gi. Откройте
game/csgo/gameinfo.giи добавьте строкуGame csgo/addons/metamodсразу под строкойGame_LowViolence csgo_lv. Без этой строки движок не подхватит Metamod. -
Скопируйте CounterStrikeSharp. Скопируйте папку
addonsиз архива CounterStrikeSharp вgame/csgo/. Вaddons/counterstrikesharp/появятся папкиapi,bin,dotnet,pluginsиgamedata. -
Перезапустите сервер и проверьте. Нажмите перезапуск, откройте «Консоль» и выполните
meta list. В выводе должен появиться один плагин — CounterStrikeSharp. Если его нет, смотрите раздел «Частые ошибки». -
Положите первый плагин. Скопируйте папку плагина в
addons/counterstrikesharp/plugins/и перезапустите сервер. Проверьте, что плагин появился в логах при старте.
После перезапуска откройте «Консоль» панели и читайте журнал старта сверху вниз: сначала загрузка Metamod, затем CounterStrikeSharp, затем ваши плагины. Если на каком-то слое появилась ошибка, выше по стеку ничего работать не будет.
Админы и проверка плагинов
Когда стек работает, понадобятся две вещи. Первая — список загруженных плагинов: в консоли сервера выполните css_plugins list, и вы увидите каждый плагин с состоянием и версией (команда фигурирует в руководствах по CounterStrikeSharp; в официальной инструкции по установке её нет, поэтому главным признаком успеха остаётся meta list). Вторая — админы. Они описываются в файле addons/counterstrikesharp/configs/admins.json: на каждого админа запись с именем, полем identity (SteamID) и массивом flags с правами вроде @css/generic или @css/root. Файл читается при инициализации CounterStrikeSharp, то есть после правки перезапустите сервер. Флаг @css/root включает все права и игнорирует иммунитет, выдавайте его только тем, кому доверяете сервер целиком.
Пример: что должно быть в папке после установки
game/csgo/
addons/
metamod/ # Metamod:Source
metamod.vdf
metamod_x64.vdf
counterstrikesharp/
api/
bin/
dotnet/
gamedata/
plugins/ # ваши плагиныЕсли какой-то из этих каталогов отсутствует, значит, архив распакован не полностью или в неверное место. Перераспакуйте архив в отдельную папку и скопируйте только addons, без лишней вложенности.
Пример: вывод meta list
Команда meta list показывает загруженные плагины Metamod. Правильный вывод для CounterStrikeSharp выглядит примерно так: один плагин с именем CounterStrikeSharp и номером версии в скобках. Номер версии в документации указан как пример, он не обязан совпадать с вашим. Главное — что плагин в списке есть.
Частые ошибки
Ниже частые симптомы и их причины.
| Симптом | Причина | Решение |
|---|---|---|
| meta list пустой или не показывает CounterStrikeSharp | Нет строки в gameinfo.gi или сервер не перезапущен | Добавьте строку Game csgo/addons/metamod и перезапустите |
| На Linux (в том числе на своём VPS) не запускается CounterStrikeSharp | Не хватает библиотек ICU | Установите пакет libicu, icu-libs или libicu-dev — название зависит от дистрибутива. На серверах EGN образ готовит панель; если сервер не стартует, спросите поддержку |
| Плагин лежит в plugins, но не работает | Ошибка в .dll или несовместимость с версией CS2 | Посмотрите лог при старте, обновите плагин |
| Сервер не стартует после обновления CS2 | Обновление затронуло gameinfo.gi | Проверьте строку в gameinfo.gi и поставьте её обратно |
Обновления CS2 могут вернуть файлы в исходное состояниеИгра обновляется через SteamCMD, и при обновлении часть файлов в
game/csgoможет перезаписаться. После каждого обновления проверяйтеgameinfo.giи выполняйтеmeta list. Если строки нет, добавьте её заново.
Как выбрать плагин
Плагинов для CS2 много, и не все из них поддерживаются. Прежде чем ставить, проверьте четыре вещи.
- Совместимость с CounterStrikeSharp. Плагин должен быть написан под CounterStrikeSharp, а не под старые SourceMod или Metamod-плагины. Это разные экосистемы, и файлы из одной не запускаются в другой.
- Версия CS2. После крупных обновлений игры старые плагины могут перестать работать. Берите плагины, у которых обновление выходило после последнего патча CS2 или которые явно написаны под текущую версию.
- Источник. Скачивайте плагины со страниц разработчиков или из открытых репозиториев с историей изменений. Сборки с сайтов-агрегаторов иногда содержат чужой код.
- Зависимости. Некоторые плагины требуют других плагинов. Если в описании есть строка «требует», поставьте зависимость первой.
Практичный подход: ставить по одному плагину, проверять его работу в игре и только потом добавлять следующий. Если сервер не стартует, сразу видно, что добавили последним.
Обновление плагинов без поломок
Плагины обновляются чаще, чем сама игра, поэтому у них свой жизненный цикл. Чтобы обновление не сломало сервер, действуйте по простой схеме:
- Посмотрите список изменений плагина. Если в нём нет упоминания вашей версии CS2, подождите или проверьте на тестовом сервере.
- Сделайте бэкап сервера в «Бэкапах» перед обновлением.
- Замените папку плагина целиком, а не отдельные файлы, чтобы не смешать версии.
- Перезапустите сервер и проверьте
meta listи лог старта. - Зайдите на сервер и проверьте функцию, которую плагин отвечает.
Если что-то пошло не так, восстановите бэкап. Не пытайтесь чинить на ходу: откат занимает минуту, а поиск причины в смешанных версиях — часы.
Безопасность сервера с плагинами
Плагин — это код, который работает на вашем сервере с полным доступом к игре. Поэтому относитесь к нему как к программе, которую запускаете на собственной машине. Правила простые: не ставьте плагины, в которых нет исходников или понятного описания, не давайте им доступ к файлам панели, которые не нужны, и не храните в конфигах пароли админов в открытом виде, если есть альтернатива.
Отдельно напомним про доступ к панели. Если плагин использует RCON или внешние сервисы, пароль RCON должен быть длинным и уникальным. Подробнее о защите сервера — в статье про DDoS и читеров.
Пример: набор для первого сервера
Для первого сервера с плагинами разумен минимальный набор: Metamod:Source, CounterStrikeSharp и один плагин, который понятен вам по функциям. Не берите сразу десять плагинов для статистики, экономики и карт: каждый из них добавляет свои конфиги и зависимости, и через неделю вы не сможете понять, что за что отвечает. Начните с одного, поставьте второй через сутки после проверки первого и так далее.
Как поставить плагины в панели EGN
В панели для CS2 нет установщика плагинов CounterStrikeSharp: раздел «Моды» для CS2 работает с мастерской Steam (карты и контент), а не с плагинами Metamod. Поэтому плагины ставятся файлами: через раздел «Файлы» или SFTP. Порядок действий тот же, что описан выше. Для загрузки больших архивов удобнее SFTP, а для одного-двух файлов хватит «Файлов».
Учтите, что CS2 занимает много места на диске. Для установки стека и нескольких плагинов нужен запас, поэтому проверьте, что на тарифе есть свободные гигабайты. Подробнее о диске и тарифах — в статье про создание сервера и GSLT.
Пример: проверка плагина на тестовом сервере
Поставьте один простой плагин, например тот, который пишет сообщение при подключении игрока. Перезапустите сервер и проверьте три вещи: появилась ли строка плагина в консоли при старте, отображается ли он в meta list и срабатывает ли событие при входе на сервер. Если все три пункта выполнены, стек работает, и можно ставить остальные плагины по одному. Ставить десяток плагинов сразу не стоит: если сервер упадёт, непонятно, какой из них виноват.
Итог
CounterStrikeSharp ставится в три шага: Metamod, строка в gameinfo.gi и CounterStrikeSharp, после чего проверка через meta list. Плагины кладутся в counterstrikesharp/plugins, а ставить их лучше по одному. Когда стек работает, переходите к правилам и режимам: в статье про server.cfg и режимы разобрано, как задать правила игры.
Вопросы и ответы
Нужен ли Metamod, если плагины на CounterStrikeSharp?
Да. CounterStrikeSharp загружается через Metamod:Source, без него он не запустится.
Можно ли ставить плагины на сервер в панели без SFTP?
Да, через раздел «Файлы». SFTP удобнее для больших архивов и массовых копий.
Почему после обновления CS2 плагины перестали работать?
Чаще всего слетела строка в gameinfo.gi или обновление сменило версию игры, с которой плагин несовместим. Проверьте строку и лог при старте.
Сервер под Counter-Strike 2 за пару минут — egnetwork.ru: https://egnetwork.ru/
Читать далее
Вся рубрика →CS2: как защитить сервер от DDoS и читеров
Признаки атаки и читов, что включить в «Запуске» (VAC, RCON), какие порты оставить открытыми, как ограничить слоты и что сделать, если сервер уже атакуют или на нём играют читеры.
CS2: тикрейт, FPS и сеть сервера — что реально влияет
Почему тикрейт CS2 фиксирован на 64 с sub-tick и нет параметра -tickrate, какие сетевые настройки стоит проверить, как читать телеметрию (замену net_graph) и что делать, если игроки жалуются на лаги.
Сеть в панели EGN: дополнительные порты для плагинов и модов
Как раздел «Сеть» выдаёт порты для голосового чата, карты и Bedrock-игроков, что значат статусы «Нет своего порта» и «Нужен перезапуск» и когда докупить порт.