RE:NODE

Эксплуатация11 мин чтения

Discord для игрового сервера: каналы и роли

Как настроить Discord для игрового сервера: структура каналов, роли и переопределения прав, верификация против рейдов, боты и привязка ролей к игре.

0 прочтений

Discord игрового сервера требует меньше каналов, чем кажется, списка ролей, построенного вокруг прав, а не престижа, верификации, настроенной достаточно жёстко, чтобы отсекать одноразовые аккаунты, и одной-двух интеграций, которые связывают роли в Discord с тем, что люди могут делать в игре. На практике это пять-восемь каналов в трёх категориях, роли для участников, проверенных игроков, команды и ботов, уровень проверки Medium или High, включённый AutoMod и обязательная двухфакторная аутентификация для модераторов. Затем свяжите его с игрой - whitelist, который проверяет роль в Discord, мост для чата или статуса, webhook для перезапусков, - чтобы Discord был парадным входом, а не отдельным местом, куда люди забывают заглядывать.

Более широкий вопрос о том, почему Discord важен для удержания игроков, разобран в статье Как растить сообщество игрового сервера. Эта статья - о сборке: что нажать, что выдать и чего не включать.

Структура каналов, которая не выглядит заброшенной#

Тридцать пустых каналов читаются как мёртвый сервер. Начните с категорий, которые соответствуют тому, что люди действительно делают, и задайте для каждого канала понятное правило, кто может в нём писать. Права в Discord задаются на уровне категории и наследуются каналами внутри неё, пока вы не разорвёте синхронизацию, так что, упорядочивая категории, вы заодно упорядочиваете права.

КатегорияКаналКто пишетНазначение
Инфоstart-hereТолько командаОписание в одно предложение, адрес, правила, как получить роли
ИнфоannouncementsТолько командаПерезапуски, события, обновления. Небольшой поток
Инфоserver-statusБот или webhookОнлайн, офлайн, число игроков
СообществоchatУчастникиВсё подряд
СообществоscreenshotsУчастникиКанал, благодаря которому сервер ощущается живым
СообществоsupportУчастникиПроблемы, с закреплённым FAQ
Командаstaff-chatКомандаРешения, разногласия
Командаmod-logБотыБаны, кики, удалённые сообщения

Добавляйте каналы тогда, когда какой-то действительно перегружен, а не заранее. Отдельный канал под каждый игровой сервер имеет смысл, только когда у вас их больше одного. Голосовые каналы подчиняются тому же правилу: один общий голосовой канал и один для команды, а остальные - когда в них действительно кто-то сидит.

start-here делает больше всего работы и получает меньше всего внимания. Укажите адрес в виде, который удобно скопировать, версию, нужны ли моды, и три самых важных правила, а затем дайте ссылку на полный свод. Закройте канал, чтобы писать в нём могла только команда, и держите его достаточно коротким, чтобы прочитать без прокрутки.

Роли и модель прав#

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

  1. Общесерверные права @everyone.
  2. К ним добавляются общесерверные права каждой роли участника.
  3. Всё это переопределяется переопределениями категории или канала - сначала для @everyone, затем для каждой роли (если две роли противоречат друг другу, разрешение побеждает запрет), затем для конкретного участника.
  4. Administrator обходит всё это. Роль с Administrator видит и может всё, включая каналы, где ей запрещён доступ.

Практический вывод: начинайте с @everyone, у которого почти ничего нет, выдавайте права через роли и используйте переопределения каналов, чтобы запрещать или разрешать что-то в конкретном канале. Не давайте Administrator никому, кроме владельца и, если без этого никак, одного совладельца. Модераторы получают только те конкретные права, которые им нужны.

A role plan that scales
Owner            Administrator (one or two people)Admin            Manage Roles, Manage Channels, Ban, Kick, Timeout, View Audit LogModerator        Kick, Timeout, Manage Messages, View Audit LogSupport          Manage Messages in support only (channel override)Bots             only what each bot documents, nothing moreVerified Player  Send Messages, Connect to voice, Attach FilesMember           Read start-here and announcements only@everyone        View start-here only

Порядок ролей тоже важен. Участник может управлять только ролями ниже своей самой высокой роли, а бот может выдавать только роли ниже своей собственной. Когда бот для ролей по реакциям или бот верификации пишет, что ему не хватает прав, причина почти всегда в том, что его роль стоит ниже роли, которую он пытается выдать. Перетащите роль бота выше ролей, которыми он управляет, а роли команды держите выше бота.

Цвет и закрепление (отдельный показ роли в списке участников) - это косметика. Закрепите команду, чтобы люди могли найти, к кому обратиться; остальные роли не закрепляйте, иначе список участников превратится в стену из названий рангов.

Верификация: как не пустить одноразовые аккаунты#

Рейды, волны спама и обход банов держатся на аккаунтах, которым несколько секунд от роду. Встроенный уровень проверки в Discord - самая дешёвая защита; он задаётся в Server Settings, раздел Safety Setup.

УровеньЧто нужно, прежде чем новый участник сможет писать
NoneНичего
LowПодтверждённый email в аккаунте Discord
MediumLow плюс аккаунт зарегистрирован больше 5 минут назад
HighMedium плюс участник этого сервера больше 10 минут
HighestПодтверждённый номер телефона в аккаунте

Medium - правильное значение по умолчанию для большинства игровых серверов. High добавляет десятиминутное ожидание, которое останавливает большую часть спама «налетел и ушёл», ценой лёгкого раздражения у настоящих новичков. Highest эффективен, но отсекает заметную долю нормальных игроков, которые не станут привязывать телефон к Discord; включайте его во время активного рейда, а потом возвращайте обратно.

Поверх уровня проверки:

  • Проверка правил (доступна, когда сервер настроен как Community-сервер) заставляет новых участников принять правила, прежде чем они смогут писать. Это не мера безопасности - нажать «принять» может любой, - но она убирает отговорку «я не знал».
  • AutoMod содержит правила для спама, спама упоминаниями, часто помечаемых слов и ваших собственных списков ключевых слов, с действиями «заблокировать сообщение», «оповестить канал» или «отправить участника в тайм-аут». Включите правила для спама упоминаниями и спам-контента в первый же день. Если начнутся проблемы с самозванцами, добавьте правило по ключевым словам на адрес вашего сервера, опубликованный в чужом контексте.
  • Обязательная двухфакторная аутентификация для действий модераторов. Когда она включена, любой, у кого есть права модерации, должен включить 2FA в своём аккаунте Discord, чтобы ими пользоваться. Взломанный аккаунт модератора - обычный способ, которым сервер вычищают подчистую, так что неудобство того стоит. Прежде чем эту опцию можно будет включить, владелец должен сам включить 2FA.
  • Медленный режим на оживлённых каналах, на несколько секунд, не даёт одному человеку устроить флуд, но не мешает разговору.

Сторонние боты верификации, которые заставляют участников решать капчу или привязывать аккаунт, добавляют ещё один уровень защиты и ещё одну зависимость. Для больших публичных серверов, которые рейдят, они того стоят; для whitelist-сообщества из пятидесяти человек это в основном лишнее трение.

Онбординг: пусть люди сами выбирают, что видеть#

Community-серверы могут использовать Onboarding от Discord: новые участники отвечают на несколько вопросов, которые пишете вы («На каком сервере вы играете?», «Хотите получать упоминания о событиях?»), и каждый ответ выдаёт роли или открывает каналы. Он заменяет старое сообщение с ролями по реакциям и лучше всего помогает держать уведомления полезными.

Главное правило здесь - про упоминания. Каждое объявление с @everyone по рутинному поводу учит людей отключать уведомления сервера. Сделайте добровольные роли для того, что людям интересно, - события, перезапуски, конкретный игровой сервер - и упоминайте эти роли. @everyone оставьте для того, что касается каждого игрока: дата вайпа, взлом, переезд.

Запретите упоминания @everyone и @here всем, кроме команды. Участник, который может упомянуть несколько тысяч человек, рано или поздно это сделает - случайно или намеренно.

Связка Discord с игровым сервером#

Именно связь между ними превращает Discord из чата в парадный вход сообщества. Распространённые интеграции по тому, что они делают:

  • Whitelist по роли в Discord. Игра проверяет, есть ли у подключающегося игрока роль на вашем сервере Discord. На FiveM whitelist в txAdmin может требовать членства на сервере Discord или конкретных ролей; тогда процесс подачи заявок в Discord становится настоящими воротами. Настройка описана в статье Права Discord и whitelist для FiveM.
  • Права из ролей Discord. Та же идея, но на шаг дальше: роль в Discord становится игровой группой. Удобно для команды: если снять с человека роль в Discord, одновременно пропадут и его полномочия в игре.
  • Мосты для чата и консоли. Для Minecraft DiscordSRV связывает игровой чат с каналом Discord, может выводить консоль в служебный канал и связывать аккаунты, чтобы синхронизировать роли. Конфигурация - в статье про DiscordSRV.
  • Статус и оповещения. Webhook, который пишет, когда сервер останавливается и запускается, или бот, который редактирует одно сообщение со статусом и числом игроков. Оба варианта разобраны в статье Webhooks Discord для статуса сервера.
проверка, заявкароль выданавход разрешёнзапущен, остановленканал статусаНовый игрокзаходит в DiscordСервер Discordроли и каналыБот или фреймворкчитает ролиИгровой серверпроверка whitelistWebhookстатус и перезапуски
Discord как парадный вход на игровой сервер

Два предостережения. Мост консоли в Discord - это удалённая оболочка на ваш сервер для любого, кто может писать в этот канал: закройте его для всех, кроме владельца и админов, и помните, что модератор, который не должен иметь возможности выполнить stop, скорее всего, может. И каждому боту-мосту нужен токен, а токен - это пароль: храните его в переменных запуска сервера или в конфигурационном файле, но никогда в репозитории. Почему - объясняет статья Переменные окружения и секреты.

Если бот работает на вашем собственном хостинге, а не как публичный сервис, ему нужен процесс, который не падает. Обычное место для небольшого бота - тариф для приложений на Node.js или Python; о том, как держать его онлайн, рассказывает статья Хостинг Discord-бота 24/7.

Боты: меньше, чем кажется, и с узкими правами#

Большинству серверов нужно три вида ботов, и один известный универсальный бот часто закрывает два из них:

ЗадачаЧто делаетКакие права нужны
Модерация и логированиеПишет удаления, правки, входы и баны в mod-logView channels, Send Messages в канале логов, View Audit Log
РолиВыдаёт роли по реакциям, кнопкам или заявкамManage Roles и роль, стоящая выше тех, что он выдаёт
ТикетыОткрывает приватный канал на каждый запрос в поддержку или заявкуManage Channels в одной категории
Связь с игройСтатус, мост чата, whitelistТо, что указано в документации интеграции

Прежде чем приглашать бота, прочитайте список прав на экране приглашения и снимите галочки со всего, что ему не нужно. Многие публичные боты по умолчанию просят Administrator, потому что так проще их поддержке; большинство отлично работает и без него. Удаляйте ботов, которыми перестали пользоваться, - каждый из них это токен, который может утечь.

Собственный журнал аудита Discord (Server Settings, Audit Log) записывает изменения ролей, баны, кики, правки каналов и изменения прав, а также кто это сделал. Это первое место, куда стоит смотреть, когда что-то поменялось, а признаваться никто не хочет, и именно поэтому отдельные аккаунты с отдельными ролями для каждого члена команды важнее, чем кажется.

Служебные каналы, тикеты и бумажный след#

Решения по модерации должны быть записаны где-то в закрытом месте с поиском. Служебного канала для обсуждений, канала mod-log для автоматических записей и системы тикетов для всего, что касается конкретного игрока, хватает большинству сообществ. Тикеты лучше личных сообщений, потому что их может прочитать следующий модератор на смене и потому что игрок потом не сможет заявить, что кто-то из команды что-то пообещал ему в личке.

Связывайте игровые логи и записи в Discord: когда баните кого-то в игре, укажите в тикете пользователя Discord и игровой ID. Обход бана обычно ловят именно сопоставлением этих двух данных, а не каким-то хитрым инструментом. Лестница от предупреждения до бана и апелляции описаны в статье Правила сервера, модерация и команда; сбор доказательств - в статье Как бороться с читерами и вести бан-листы.

Членам команды, которые управляют самим игровым сервером, а не только Discord, нужен ещё и доступ к панели. На RE:NODE это субпользователи с гранулярными правами - только консоль, только файлы, без оплаты, - организованные в роли и команды, с ограниченным по времени доступом и журналом действий по каждому серверу. Держите роли в Discord и доступ к панели как два отдельных решения: многие хорошие модераторы Discord никогда не должны иметь возможности остановить сервер. Сторона панели описана в статье Субпользователи и минимальные права.

Защита самого Discord#

Чаще всего Discord игрового сообщества уничтожает не рейд. Его уничтожает один аккаунт из команды, захваченный через поддельный QR-код «подтвердите аккаунт», вредоносный файл от «разработчика игры», который просит что-то протестировать, или пароль, повторно использованный после утечки. Оказавшись внутри, злоумышленник использует права этого аккаунта, чтобы удалить каналы, забанить участников и разослать всем мошеннические ссылки.

  • У владельца и у каждого члена команды включена 2FA, а на уровне сервера требуется 2FA для модераторов.
  • Ни у кого, кроме владельца, нет Administrator.
  • Команде письменно сообщено, что никакая настоящая верификация не просит сканировать QR-код.
  • URL webhook-ов считаются паролями: любой, у кого он есть, может писать от его имени. Утёкший webhook пересоздайте.
  • Владение сервером не передаётся между делом. Никто не может отобрать владение у владельца - это единственная защита, которую вы получаете бесплатно.

Если худшее всё же случилось, журнал аудита покажет, что было сделано и кем. Discord не восстанавливает удалённые каналы, поэтому список структуры каналов и прав ролей, сохранённый где-то вне Discord, превращает восстановление в работу на один вечер, а не на неделю. Некоторые функции шаблонов сервера умеют копировать структуру, но не сообщения.

FAQ#

Какой уровень проверки выбрать для Discord игрового сервера?

Для большинства серверов - Medium: подтверждённый email и аккаунт старше пяти минут. Переходите на High, если волны спама продолжаются, и временно на Highest во время рейда. Highest требует номер телефона в аккаунте и отпугнёт часть настоящих игроков.

Как сделать канал, который видит только команда?

Запретите View Channel для @everyone в этом канале или его категории, затем разрешите View Channel для ролей команды. Не полагайтесь на Administrator, чтобы дать команде доступ; выдайте роль и переопределение, чтобы настройка продолжала работать, если вы позже уберёте Administrator.

Почему бот не может выдать роль?

Его собственная роль в списке ролей стоит ниже роли, которую он пытается выдать. Поднимите роль бота выше в Server Settings, раздел Roles, и убедитесь, что у неё есть Manage Roles. Боты никогда не могут выдавать роли выше своей.

Можно ли требовать, чтобы игроки были в моём Discord, для входа на игровой сервер?

Для некоторых игр - да. txAdmin в FiveM умеет делать whitelist по членству в Discord или по роли, Minecraft - через плагины для привязки аккаунтов, а многие другие игры - с помощью бота, который редактирует файл whitelist сервера. Лучше всего это работает, когда вступление в Discord - это и есть способ подать заявку.

Стоит ли выводить игровой чат в Discord?

Для небольшого тихого сервера это помогает сообществу казаться больше. На оживлённом сервере такой мост заваливает канал сообщениями, и люди его отключают. Выводите чат в отдельный канал, а не в общий, и никогда не давайте доступ к мосту консоли тому, кому не дали бы пароль от сервера.

Сколько ботов нужно Discord игрового сервера?

Обычно два-три: один для логов модерации и ролей, один для тикетов, если первый этого не умеет, и один для связи с игрой. Каждый лишний бот - это ещё один токен, который может утечь, и ещё один список прав, который нужно проверять.


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000