Настройка администраторов CounterStrikeSharp в CS2

CounterStrikeSharp связывает SteamID игрока с разрешениями, которые проверяют плагины. Сам фреймворк предоставляет систему прав, но команды вроде кика или бана появляются только после установки плагина, который реализует эти действия.

Если MetaMod:Source и CounterStrikeSharp еще не установлены, сначала выполните инструкцию «Установка плагинов CS2: MetaMod и CounterStrikeSharp».

Где находятся файлы#

Основные файлы системы администраторов:

game/csgo/addons/counterstrikesharp/configs/admins.json
game/csgo/addons/counterstrikesharp/configs/admin_groups.json

Если присутствуют только файлы с окончанием .example, создайте копии без этого окончания. Не оставляйте admins.json пустым: минимальный корректный JSON для пустого списка имеет вид {}.

Добавление администратора по SteamID64#

В admins.json каждый администратор является отдельным свойством верхнего объекта. Актуальная схема CounterStrikeSharp использует поля identity, flags и при необходимости groups:

{
  "ServerAdmin": {
    "identity": "76561198808392634",
    "flags": ["@css/changemap", "@css/generic"]
  }
}

Замените пример в identity на 17-значный SteamID64 нужного аккаунта. Название ServerAdmin служит понятной подписью и не обязано совпадать с ником игрока.

Все индивидуальные разрешения должны начинаться с @. В официальной схеме CounterStrikeSharp используются, в частности:

  • @css/generic для базового административного доступа;
  • @css/kick, @css/ban и @css/unban для модерации;
  • @css/changemap для смены карты и важных игровых параметров;
  • @css/config для выполнения cfg-файлов;
  • @css/cvar для изменения большинства cvar;
  • @css/password для изменения пароля сервера;
  • @css/rcon для RCON-команд;
  • @css/cheats для изменения sv_cheats и чит-команд;
  • @css/root для всех прав без учета immunity.

Наличие флага не создает команду автоматически. Конкретный плагин должен использовать этот флаг, а его документация может требовать собственное разрешение, например @pluginname/admin.

Настройка групп#

Группа позволяет один раз описать права для нескольких администраторов. По текущей схеме CounterStrikeSharp запись в admin_groups.json выглядит так:

{
  "#css/simple-admin": {
    "flags": [
      "@css/generic",
      "@css/reservation",
      "@css/ban",
      "@css/slay"
    ]
  }
}

Имя группы обязательно начинается с #. Затем укажите ее в массиве groups администратора. Структура соответствует примеру из официальной документации:

{
  "erikj": {
    "identity": "76561198808392634",
    "flags": ["@mycustomplugin/admin"],
    "groups": ["#css/simple-admin"]
  }
}

Игрок наследует флаги каждой назначенной группы и сохраняет индивидуальные флаги из flags. Если отдельные права не нужны, допустим пустой массив "flags": [].

Применение и проверка#

CounterStrikeSharp загружает admins.json и admin_groups.json при инициализации. Штатных консольных команд css_admins_reload и css_groups_reload у фреймворка нет, поэтому после изменения обоих файлов перезапустите сервер через панель BazaHost. После загрузки проверьте данные:

css_groups_list
css_admins_list

Пустой список при заполненном файле обычно означает ошибку JSON, неверный путь или файл с оставшимся окончанием .example. Проверьте консоль при запуске: CounterStrikeSharp пишет путь к файлу и результат загрузки администраторов.

Принцип минимальных прав#

Выдавайте только те флаги, которые нужны для работы:

  • модератору достаточно прав конкретного плагина на чат, кик и бан;
  • организатору матча можно отдельно дать @css/changemap и @css/config;
  • @css/rcon, @css/cheats и @css/root оставьте владельцам, которым доверяете полный контроль;
  • удаляйте запись сразу после отзыва доступа к серверу;
  • храните актуальную копию JSON перед массовыми изменениями.

Для повседневной модерации лучше использовать ограниченные команды плагина, а полный RCON оставить владельцу. Настройка удаленной консоли описана в статье «Администрирование сервера CS2 через RCON».

Что дальше#

Нужен сервер Counter-Strike 2?

Хостинг Counter-Strike 2 на BazaHost: NVMe, Ryzen 9 и защита от DDoS. Тарифы от 449 ₽/мес.

Выбрать тариф