CS2: CounterStrikeSharp и плагины — как поставить на сервер

Что такое Metamod:Source и CounterStrikeSharp, в каком порядке их ставить в папку game/csgo, как проверить через meta list и где лежат плагины на сервере CS2.

Команда EGN 9 мин чтения
CS2: CounterStrikeSharp и плагины — как поставить на сервер
Содержание 18
  1. Коротко
  2. Что такое стек плагинов
  3. Шаги
  4. Админы и проверка плагинов
  5. Пример: что должно быть в папке после установки
  6. Пример: вывод meta list
  7. Частые ошибки
  8. Как выбрать плагин
  9. Обновление плагинов без поломок
  10. Безопасность сервера с плагинами
  11. Пример: набор для первого сервера
  12. Как поставить плагины в панели EGN
  13. Пример: проверка плагина на тестовом сервере
  14. Итог
  15. Вопросы и ответы
  16. Нужен ли Metamod, если плагины на CounterStrikeSharp?
  17. Можно ли ставить плагины на сервер в панели без SFTP?
  18. Почему после обновления 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, CounterStrikeSharp и плагины
Схема стека: Metamod, CounterStrikeSharp и плагины

Каждый слой выполняет свою роль:

  • Metamod:Source — загрузчик плагинов для движка Source. Для CS2 нужна версия 2.x, в официальной документации указана сборка 1467 или новее с поддержкой KHook.
  • CounterStrikeSharp — среда для плагинов на C#, которой нужен собственный runtime. Поэтому берите вариант «With Runtime», в котором .NET уже включён.
  • plugins/ — ваши плагины. Обычно каждый плагин — отдельная папка с .dll внутри counterstrikesharp/plugins.

Шаги

  1. Скачайте компоненты. Возьмите Metamod:Source 2.x Dev Build сборки 1467 и новее и CounterStrikeSharp «With Runtime» со страниц их разработчиков. Не берите случайные архивы с форумов: вредоносные сборки под видом плагинов встречаются.

  2. Сделайте бэкап. Перед установкой создайте бэкап сервера в разделе «Бэкапы». Это займёт минуту и спасёт, если что-то пойдёт не так.

  3. Скопируйте Metamod. Откройте раздел «Файлы» или подключитесь по SFTP и скопируйте папку addons из архива Metamod в game/csgo/. После копирования внутри должны появиться addons/metamod и файлы metamod.vdf и metamod_x64.vdf.

  4. Подключите Metamod в gameinfo.gi. Откройте game/csgo/gameinfo.gi и добавьте строку Game csgo/addons/metamod сразу под строкой Game_LowViolence csgo_lv. Без этой строки движок не подхватит Metamod.

  5. Скопируйте CounterStrikeSharp. Скопируйте папку addons из архива CounterStrikeSharp в game/csgo/. В addons/counterstrikesharp/ появятся папки api, bin, dotnet, plugins и gamedata.

  6. Перезапустите сервер и проверьте. Нажмите перезапуск, откройте «Консоль» и выполните meta list. В выводе должен появиться один плагин — CounterStrikeSharp. Если его нет, смотрите раздел «Частые ошибки».

  7. Положите первый плагин. Скопируйте папку плагина в 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 или которые явно написаны под текущую версию.
  • Источник. Скачивайте плагины со страниц разработчиков или из открытых репозиториев с историей изменений. Сборки с сайтов-агрегаторов иногда содержат чужой код.
  • Зависимости. Некоторые плагины требуют других плагинов. Если в описании есть строка «требует», поставьте зависимость первой.

Практичный подход: ставить по одному плагину, проверять его работу в игре и только потом добавлять следующий. Если сервер не стартует, сразу видно, что добавили последним.

Обновление плагинов без поломок

Плагины обновляются чаще, чем сама игра, поэтому у них свой жизненный цикл. Чтобы обновление не сломало сервер, действуйте по простой схеме:

  1. Посмотрите список изменений плагина. Если в нём нет упоминания вашей версии CS2, подождите или проверьте на тестовом сервере.
  2. Сделайте бэкап сервера в «Бэкапах» перед обновлением.
  3. Замените папку плагина целиком, а не отдельные файлы, чтобы не смешать версии.
  4. Перезапустите сервер и проверьте meta list и лог старта.
  5. Зайдите на сервер и проверьте функцию, которую плагин отвечает.

Если что-то пошло не так, восстановите бэкап. Не пытайтесь чинить на ходу: откат занимает минуту, а поиск причины в смешанных версиях — часы.

Безопасность сервера с плагинами

Плагин — это код, который работает на вашем сервере с полным доступом к игре. Поэтому относитесь к нему как к программе, которую запускаете на собственной машине. Правила простые: не ставьте плагины, в которых нет исходников или понятного описания, не давайте им доступ к файлам панели, которые не нужны, и не храните в конфигах пароли админов в открытом виде, если есть альтернатива.

Отдельно напомним про доступ к панели. Если плагин использует 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/

Читать далее

Вся рубрика →