TeaHost
Rustrustмодерациябанадминистрирование4 мин. чтения

Как забанить игрока в Rust — баны, кики и мьюты

Как забанить игрока в Rust по SteamID и нику, выдать кик или мьют, где хранится bans.cfg и чем плагины удобнее ванильных команд бана

Кратко

Надёжнее всего банить в Rust командой banid по SteamID64 с причиной: ban по нику работает только для игрока онлайн и обходится сменой ника. Баны хранятся в cfg/bans.cfg, проверяются командой banlistex, снимаются unban; mute и unmute глушат чат бессрочно. Временные баны, муты и историю действий дают плагины Oxide.

Рано или поздно на сервер приходит человек, которому там быть не должно. Как забанить игрока в Rust — вопрос на пять секунд, если под рукой есть SteamID и доступ к консоли, и вопрос на полчаса, если человек уже вышел, ник у него сменился, а вы не знаете, где сервер хранит бан-лист. Ниже — рабочий набор команд и то, что стоит знать про их поведение.

Кик: когда бан избыточен

Кик просто выкидывает игрока с сервера, вернуться он может сразу же:

код
kick "Nickname" "Причина"

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

Выкинуть всех сразу — например, перед незапланированным рестартом:

код
kickall "Технические работы, вернёмся через 10 минут"

Как забанить игрока в Rust по нику и по SteamID

Ванильный Rust умеет и то и другое:

код
ban "Nickname" "Причина"
banid 76561198000000000 "Nickname" "Причина"

ban работает только по игроку, которого сервер видит прямо сейчас, — он берёт SteamID из активного соединения. banid работает всегда, даже если человек последний раз заходил месяц назад. На практике почти всегда используется banid: SteamID не меняется, ник меняется за секунду.

Где взять SteamID вышедшего игрока: в логах консоли (строки подключения содержат и ник, и ID), в player.identities.*.db, либо через плагины статистики. Если игрок ещё онлайн, проще всего вывести список:

код
players
status

Разбан:

код
unban 76561198000000000

Посмотреть текущий бан-лист:

код
banlist
banlistex

banlistex показывает расширенную версию — с причинами и SteamID, её и стоит использовать.

Где хранятся баны

Ванильные баны пишутся в файл:

код
server/ИмяИдентити/cfg/bans.cfg

Это обычный текстовый файл со строками banid .... Его можно править вручную при остановленном сервере, можно перенести целиком на новый сервер — так удобно переезжать, не теряя накопленный бан-лист. Рядом лежит users.cfg — там ownerid и moderatorid, то есть админка.

Оба файла должны попадать в бэкапы; про то, что ещё стоит сохранять, написано в заметке о настройке бэкапов сервера Rust.

Важный нюанс: если сервер запущен, а вы отредактировали bans.cfg через файловый менеджер, изменения затрёт при следующем сохранении. Правьте либо командами, либо на остановленном сервере.

Если серверов несколько, общий бан-лист можно вынести на свой веб-сервер: Rust умеет проверять игроков по внешнему API через конвар server.bansServerEndpoint. Формат запросов описан в вики Facepunch о централизованных банах.

Мьюты

Заглушить игрока в чате и голосовом:

код
mute 76561198000000000
unmute 76561198000000000

Ванильный мьют бессрочный и живёт до ручного снятия. Временных мьютов «на час» в базовой игре нет — для этого ставят плагин, чаще всего BetterChatMute, который добавляет /mute Ник 1h причина и сам снимает ограничение по таймеру. Он же умеет глобальный мьют всего чата — иногда нужен, когда на сервере разгорелся конфликт, а модератор один.

Плагины: почему на живом сервере ими удобнее

Ванильные команды нормально работают, пока вы админ-одиночка. Как только появляется команда модераторов, всплывают проблемы: нет истории, нет сроков, нет привязки к доказательствам.

Что обычно ставят на Oxide:

  • PlayerAdministration — админ-меню по команде /padm с поиском игрока, баном, киком, мьютом и просмотром инвентаря. Модератору не нужна консоль вообще
  • Discord-интеграции — баны дублируются сообщением в канал, видно, кто и за что выдал
  • Плагины временных банов — ванильный banid бессрочный, а «бан на 3 дня» руками потом никто не снимет

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

Читеры и глобальные баны

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

Практика, которая экономит нервы:

  1. Не банить по одному репорту в чате. Смотрите демку или логи урона
  2. При бане писать причину в формате «дата + что было», через месяц вы не вспомните
  3. Хранить скриншоты и записи отдельно — апелляции приходят и через полгода
  4. Не разбаниваться «по просьбе», если правило нарушено дважды

Про то, какие инструменты помогают отлавливать читеров до жалоб, есть отдельный материал — защита от читеров на Rust-сервере.

Частые вопросы

Почему забаненный игрок зашёл снова?

Скорее всего, бан ушёл по нику через ban, и человек просто сменил ник, или зашёл со второго аккаунта. Первое лечится banid по SteamID, второе — только связкой с VPN/IP-фильтрацией на уровне плагинов, полностью проблему альтов ванильный сервер не решает.

Слетают ли баны после вайпа?

Вайп карты сам по себе баны не трогает — они в cfg/bans.cfg, а не в сейве. А вот если при вайпе почистили всю папку идентити целиком, вместе с ней уехал и бан-лист. Порядок безопасной очистки описан в заметке про вайп сервера.

Можно ли банить прямо из игры?

Да, если у вас есть админка: F1-консоль принимает те же команды. Модераторам обычно ставят админ-меню, чтобы не давать доступ к серверной консоли целиком.

Коротко

Рабочий минимум: banid по SteamID с внятной причиной, kick для мелочей, mute при бессрочной блокировке чата, banlistex для проверки. Как только модераторов становится больше одного — ставьте админ-плагин с историей действий, иначе через месяц никто не вспомнит, за что забанен половина списка. Нужен сервер, где панель и файловый доступ уже настроены, — тарифы под Rust здесь.