Pterohost docs

CS2: установка Metamod и CounterStrikeSharp

Пошаговая инструкция по установке Metamod:Source и CounterStrikeSharp на сервер CS2: зависимости .NET, структура плагинов, проверка и обновление.

Кратко: Установи Metamod:Source (dev-билд), затем CounterStrikeSharp поверх него. Пропиши строку в gameinfo.gi, установи .NET 8 Runtime - и сервер готов к загрузке C#-плагинов.

CS2: установка Metamod и CounterStrikeSharp

CounterStrikeSharp (CSS) - это современный фреймворк для разработки плагинов к CS2, написанный на C#. В отличие от SourceMod, он использует нативный C#-интерфейс и даёт плагинам полный доступ к API игры. По состоянию на 2026 год большинство активно поддерживаемых CS2-плагинов - от систем рейтинга до кастомных режимов - выходят именно под CSS. В этой инструкции - полная пошаговая установка Metamod:Source и CounterStrikeSharp на выделенный сервер CS2 с разбором типичных ошибок.

Pterohost - игровой хостинг с NVMe-дисками, DDoS-защитой уровня L3/L4/L7 и поддержкой 24/7. Серверы CS2 поднимаются за 2 минуты. Промокод 4START даёт -20% на первый заказ. Заказать CS2 сервер

Что понадобится перед началом

Перед установкой убедись, что у тебя есть:

  • Работающий сервер CS2 (если ещё не настроен - читай инструкцию по созданию сервера CS2)
  • Доступ к файловой системе сервера через FTP/SFTP, панель управления (Pterodactyl) или SSH
  • На сервере установлен .NET 8 Runtime (обязательное требование CSS)
  • Базовые навыки работы с терминалом или файловым менеджером

Архитектура стека

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

СлойКомпонентЧто делает
1 - движокCS2 Dedicated ServerСам игровой сервер
2 - загрузчикMetamod:SourceВстраивается в движок и загружает расширения
3 - фреймворкCounterStrikeSharpПлагин поверх Metamod, загружает C#-плагины
4 - плагины.dll-файлыЛогика твоего сервера (рейтинг, режимы, и т.д.)

Metamod и CSS - это два разных слоя. Без Metamod CSS не запустится.

Шаг 1: Установка .NET 8 Runtime

CounterStrikeSharp требует .NET 8 на хост-машине. Если сервер на Linux (Ubuntu/Debian):

# Добавить репозиторий Microsoft
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

# Установить только Runtime (не SDK)
sudo apt-get update
sudo apt-get install -y dotnet-runtime-8.0

Для Ubuntu 24.04 Runtime уже есть в стандартных репозиториях:

sudo apt-get install -y dotnet-runtime-8.0

Проверка:

dotnet --list-runtimes
# Должно быть: Microsoft.NETCore.App 8.x.x [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

На Windows Server скачай установщик с https://dotnet.microsoft.com/download/dotnet/8.0 - раздел “Runtime”, тип “ASP.NET Core Runtime” или просто ”.NET Runtime”.

Если используешь Pterodactyl - установка .NET происходит внутри контейнера Docker. Egg для CS2 с поддержкой CSS обычно уже включает нужные зависимости. Уточни у хостинга.

Шаг 2: Установка Metamod:Source

CounterStrikeSharp требует Metamod:Source ветки dev (не stable). Стабильная ветка CS2 не поддерживает.

Скачивание

Перейди на официальный сайт: https://www.sourcemm.net/downloads.php?branch=dev

Нужна сборка для твоей платформы:

  • Linux: mmsource-X.X.X-gitXXXXXXX-linux.tar.gz
  • Windows: mmsource-X.X.X-gitXXXXXXX-windows.zip

По состоянию на июнь 2026 актуальна версия ветки 2.x.

Установка в файловую систему сервера

Структура файлов CS2 сервера:

cs2/
  game/
    csgo/
      gameinfo.gi     <- этот файл нужно будет изменить
      addons/         <- сюда распаковывается Metamod

Распакуй архив так, чтобы содержимое попало в game/csgo/. После распаковки структура должна выглядеть:

game/csgo/addons/
  metamod/
    bin/
      linux64/
        server.so
      win64/
        server.dll
  metamod.vdf

Через команды (Linux):

cd /home/cs2server/cs2/game/csgo
tar -xzf ~/mmsource-dev-linux.tar.gz .

Правка gameinfo.gi

Это обязательный шаг - без него Metamod не загрузится. Открой файл game/csgo/gameinfo.gi и найди блок SearchPaths:

SearchPaths
{
    Game    csgo
    Game    csgo/addons/metamod   // <- добавь эту строку
    ...
}

Строку Game csgo/addons/metamod нужно добавить сразу после строки Game csgo.

Через sed на Linux:

sed -i 's|Game\tcsgo$|Game\tcsgo\n\t\t\tGame\tcsgo/addons/metamod|' game/csgo/gameinfo.gi

Или отредактируй вручную любым текстовым редактором. Сохрани файл.

Проверка Metamod

Запусти сервер и в консоли выполни:

meta version

Ожидаемый вывод:

Metamod:Source version 2.x.x
   Build ID: xxxxxxx
   Loaded as: Valve Server Plugin
   Loaded: 1 plugin(s)

Если видишь эту строку - Metamod установлен корректно.

Шаг 3: Установка CounterStrikeSharp

Скачивание

Скачай последний релиз с официального репозитория: https://github.com/roflmuffin/CounterStrikeSharp/releases

Выбирай файл with-runtime - он включает нужные .NET-файлы. Если уверен, что .NET уже установлен, можно брать версию без runtime.

counterstrikesharp-build-XXX-linux-x64.zip          <- без .NET
counterstrikesharp-build-XXX-with-runtime-linux.zip <- рекомендуется

Структура файлов после распаковки

Распакуй архив в game/csgo/. Должна появиться такая структура:

game/csgo/addons/
  counterstrikesharp/
    api/
      CounterStrikeSharp.API.dll
    bin/
      linuxsteamrt64/
        counterstrikesharp.so
      win64/
        counterstrikesharp.dll
    configs/
      admins.json
      admingroups.json
      core.json
    logs/
    plugins/      <- папка для установки плагинов
    shared/
  counterstrikesharp.vdf

Файл counterstrikesharp.vdf в папке addons/ - это файл регистрации плагина для Metamod. Он должен лежать рядом с metamod.vdf.

Проверка загрузки CSS

Перезапусти сервер и выполни в консоли:

meta list

Вывод должен содержать строку CounterStrikeSharp:

Listing 1 plugin:
  [01] CounterStrikeSharp (v.XXX) by Roflmuffin

Также проверь файл логов: game/csgo/addons/counterstrikesharp/logs/CounterStrikeSharp_YYYYMMDD.txt. При успешной загрузке там будет:

[INFO] CounterStrikeSharp vXXX starting up...
[INFO] .NET runtime loaded successfully
[INFO] Plugin system initialized

Шаг 4: Установка плагинов CounterStrikeSharp

Где искать плагины

Основные источники C#-плагинов для CS2:

  • GitHub - поиск по тегу counterstrikesharp или cs2-plugin
  • cs2.top - каталог плагинов сообщества
  • forums.alliedmods.net - раздел CS2

Структура типичного плагина

Большинство плагинов имеют следующую структуру:

MyPlugin/
  MyPlugin.dll     <- основная сборка плагина
  MyPlugin.pdb     <- отладочные символы (опционально)
  lang/            <- файлы локализации (если есть)
    ru.json
    en.json

Установка плагина

Скопируй папку плагина целиком в:

game/csgo/addons/counterstrikesharp/plugins/

Итоговая структура:

plugins/
  MyPlugin/
    MyPlugin.dll
  AnotherPlugin/
    AnotherPlugin.dll

Важно: каждый плагин должен лежать в отдельной подпапке с тем же именем, что и .dll. CSS не загрузит плагин, если .dll лежит прямо в plugins/ без папки.

Популярные плагины для CS2 на CounterStrikeSharp

Для примера - наиболее распространённые категории плагинов:

КатегорияПримеры
Статистика / рейтингCS2Stats, SimpleRating, K4-System
Анти-чит дополненияNoFlash, BunnyHop limiter
УтилитыVotemap, Advertisement, ServerSleeper
Режимы игрыJailbreak, PracticeMod, Retake
АдминистрированиеSimpleAdmin, CS2-Admin

Ищи плагины по тегу counterstrikesharp на GitHub или в каталогах сообщества.

Горячая перезагрузка плагинов

CSS поддерживает перезагрузку плагинов без рестарта сервера. В консоли сервера:

# Перезагрузить конкретный плагин
css_plugins reload MyPlugin

# Загрузить новый плагин без рестарта
css_plugins load MyPlugin

# Выгрузить плагин
css_plugins unload MyPlugin

# Список загруженных плагинов
css_plugins list

Конфигурация плагинов

Большинство плагинов при первом запуске создают файл конфигурации в:

game/csgo/addons/counterstrikesharp/configs/plugins/MyPlugin/MyPlugin.json

Изменения в конфигах применяются при перезагрузке плагина командой css_plugins reload.

Шаг 5: Права и разрешения для администраторов

CounterStrikeSharp имеет собственную систему прав, полностью независимую от SourceMod. Если ты раньше работал с AdminManager в SourceMod - здесь принцип похожий, но синтаксис JSON-конфигов другой.

Файл admins.json

Находится в configs/admins.json. Пример конфигурации:

{
  "STEAM_1:0:12345678": {
    "@css/root": true
  },
  "76561198012345678": {
    "@css/ban": true,
    "@css/kick": true,
    "@css/changemap": true
  }
}

SteamID можно указывать в форматах STEAM_1:X:XXXXXXXX или SteamID64 (17 цифр).

Базовые флаги прав

ФлагЧто разрешает
@css/rootВсе права
@css/banБанить игроков
@css/kickКикать игроков
@css/changemapМенять карту
@css/cvarИзменять конвары
@css/cheatsВключать sv_cheats команды

Конкретные права зависят от установленных плагинов - плагины могут добавлять свои собственные флаги.

Шаг 6: Первый тест с тестовым плагином

Прежде чем ставить плагины из интернета, убедись, что CSS корректно запускает плагины. Простейший способ - использовать официальный пример из документации CSS.

Создай файл game/csgo/addons/counterstrikesharp/plugins/TestPlugin/TestPlugin.cs не нужно - достаточно скачать готовую скомпилированную демо-сборку из репозитория CSS:

# Пример: скачать официальный TestPlugin (если он есть в releases)
# Или взять любой минималистичный плагин с GitHub и проверить загрузку через:
css_plugins list

Если плагин появился в списке - установка работает полностью корректно и можно переходить к основным плагинам для сервера.

Обновление после апдейтов CS2

CS2 обновляется часто - после каждого крупного апдейта необходимо проверять совместимость. Команда CounterStrikeSharp обычно выпускает обновление в течение нескольких часов после патча CS2, поэтому следи за релизами на GitHub.

Что обновлять и когда

КомпонентКогда обновлять
Metamod:SourceПри ошибках загрузки, раз в 1-2 месяца
CounterStrikeSharpПосле каждого крупного обновления CS2
ПлагиныПо мере выхода обновлений от авторов

Процедура обновления CSS

  1. Останови сервер CS2
  2. Сделай бэкап папки addons/counterstrikesharp/configs/ и plugins/
  3. Скачай новый релиз с GitHub
  4. Замени содержимое addons/counterstrikesharp/api/ и addons/counterstrikesharp/bin/
  5. Не трогай папки configs/, plugins/, data/
  6. Запусти сервер, проверь meta list

Если плагин после обновления CSS падает с ошибкой вида MissingMethodException или BadImageFormatException - плагин скомпилирован под старую версию API и нужно ждать обновления от автора плагина.

Проверка версии после обновления

# В консоли сервера
meta list
css_version

# В логах
tail -n 50 game/csgo/addons/counterstrikesharp/logs/CounterStrikeSharp_*.txt

Частые ошибки и их решение

Metamod не загружается

Симптом: команда meta version не найдена или пустой вывод.

Решение:

  1. Проверь, что строка Game csgo/addons/metamod добавлена в gameinfo.gi
  2. Убедись, что файл addons/metamod.vdf существует
  3. Проверь версию Metamod - нужен dev-билд, не stable

CounterStrikeSharp не видно в meta list

Симптом: Metamod загружается, но CSS не отображается.

Решение:

  1. Проверь наличие файла addons/counterstrikesharp.vdf
  2. Убедись, что файл addons/counterstrikesharp/bin/linuxsteamrt64/counterstrikesharp.so существует (Linux)
  3. Проверь, что .NET 8 Runtime установлен: dotnet --list-runtimes

Ошибка “Unable to load shared library”

Симптом: В логах ошибка вида Unable to load shared library 'libdotnet.so'.

Решение: Используй сборку with-runtime вместо обычной, или установи .NET 8 вручную. На Ubuntu 22.04+ убедись, что пакет dotnet-runtime-8.0 установлен.

Плагин не загружается

Симптом: Плагин есть в папке, но css_plugins list его не показывает.

Решение:

  1. Проверь структуру: plugins/ИмяПлагина/ИмяПлагина.dll - папка и dll должны совпадать по имени
  2. Открой логи CSS за текущую дату - там будет точная ошибка
  3. Убедись, что плагин совместим с текущей версией CSS (смотри в README плагина)

Сервер крашится при загрузке

Симптом: CS2 сервер падает сразу после старта.

Решение:

  1. Запусти сервер без CSS - только с Metamod. Если стабильно, проблема в CSS
  2. Проверь версии: CSS должен быть собран под текущий билд CS2
  3. Временно удали все плагины из plugins/ и запускай с чистым CSS
  4. Добавляй плагины по одному для поиска проблемного

Связанные материалы

Если хочешь расширить возможности сервера - читай инструкцию по установке SourceMod на CS2: SourceMod и CounterStrikeSharp можно использовать одновременно через общий Metamod. Список полезных консольных команд CS2 сервера поможет в настройке и отладке. Если сервер ещё не поднят - начни с базовой инструкции по настройке CS2 сервера.

Заключение

Установка CounterStrikeSharp состоит из трёх последовательных шагов: .NET 8 Runtime, Metamod:Source (dev-билд) с правкой gameinfo.gi, и сам CSS с его структурой папок. После успешной настройки сервер становится платформой для сотен C#-плагинов - от кастомных режимов до систем статистики и анти-чита. Главное при обновлениях CS2 - следить за совместимостью версий CSS и своевременно обновлять фреймворк, сохраняя конфиги и плагины нетронутыми.

Pterohost - хостинг игровых серверов с поддержкой CounterStrikeSharp, автоматическими бэкапами и защитой от DDoS-атак. Запусти свой CS2 сервер с плагинами за пару минут. Промокод 4START - скидка -20% на первый заказ. Заказать CS2 сервер