Автоматическая роль в голосовом канале Discord: зачем она нужна и на что обратить внимание
Discord сам не умеет выдавать роль, пока человек находится в голосовом канале. Бот умеет. Зачем нужны голосовые роли, как их настроить и три ошибки, которые делают в начале.

Рано или поздно этот вопрос возникает почти на каждом крупном сервере: можно ли автоматически давать людям роль, пока они в голосовом канале? Сам Discord так не умеет. Роли и права каналов не знают состояния вроде «сейчас сидит в голосовом канале». Бот умеет, потому что видит, кто заходит в канал, переходит в другой или выходит.
В AlphaCloud этот модуль называется «Голосовые роли». Он появился из двух предложений на нашей доске идей, и сценарии за ними оказались разнообразнее, чем мы ожидали.
Зачем нужны голосовые роли
Кто говорит, тот наверху. Роль «В голосовом», которая отображается в списке участников отдельно, с первого взгляда показывает, где что-то происходит. Особенно на серверах, где днём тихо, это приводит в канал людей, которые иначе даже не заглянули бы.
Канал только для тех, кто в голосовом. В Discord, конечно, есть текстовый чат в каждом голосовом канале, но иногда нужен отдельный канал: для музыкальных команд, ссылок на текущий раунд или спойлеров к фильму, который все сейчас смотрят. Разреши просматривать канал только голосовой роли, и он будет появляться, когда люди заходят, и исчезать, когда они уходят.
Зоны со своей ролью. Роли для отдельного канала или целой категории разделяют зоны. Кто сидит в категории «Gaming», получает роль «Gaming» и видит подходящий текстовый канал с кодами лобби, а кто сидит в «Учебной комнате», видит канал с конспектами.
Кто в эфире, тот заметен. Отдельные роли для камеры, стрима или и того и другого показывают, кто сейчас стримит. На комьюнити-серверах с совместными просмотрами или игровыми вечерами это часто и есть причина вообще заглянуть.
Настройка
Техническая часть делается быстро:
- Создай роли в Discord, ниже самой высокой роли бота
- В панели в разделе Модерация включи модуль Голосовые роли
- Задай Роль в голосовом канале, а по необходимости ещё Роли для канала или категории и роли в разделе Камера и стрим
- Сохрани, зайди в голосовой канал и проверь, появилась ли роль
Кто уже сидит в голосовом канале в момент сохранения, получает свои роли в течение нескольких секунд. Все поля и лимиты есть в документации по Голосовым ролям.
Три ошибки в начале
Взять роль, которая уже есть. Бот полностью управляет заданными ролями: кто не находится в подходящем канале, теряет их. Если выбрать роль, которую ты выдаёшь и вручную или через другой модуль, она пропадёт у всех, кто в этот момент не в голосовом. Поэтому всегда используй для голосовых ролей отдельные роли.
Забыть про AFK-канал. Кто попадает в AFK-канал, технически находится в голосовом и получает роль. Это редко то, что нужно, особенно если роль стоит наверху списка участников. Добавь AFK-канал и такие зоны, как временные каналы, в Исключённые каналы и категории. Собственные правила для канала и роли для камеры и стрима там всё равно продолжают действовать.
Повесить права не туда. Голосовая роль должна открывать канал, а не раздавать права по всему серверу. Не давай ей дополнительных прав на уровне сервера, разреши только «Просматривать канал» в нужном канале. Тогда ничего не сломается, если кто-то сохранит роль на несколько секунд дольше, чем ожидалось.
Что происходит в фоне
Некоторые решения мы приняли осознанно, потому что в повседневной работе они имеют значение.
Истина в голосовом канале. Бот не запоминает, кто сидит в голосовом, а ориентируется на то, что сообщает Discord. Когда он перезапускается, например ради обновления, он один раз проходит по всем, кто сидит в голосовом или имеет одну из ролей, и приводит роли в соответствие с текущим состоянием. Обновление не должно оставлять кому-то роль, которой у него больше быть не должно.
Только одна роль для камеры и стрима одновременно. Кто стримит, а потом включает камеру, переходит с «Только стрим» на «Камера и стрим». Две роли одновременно лишь дважды показали бы в списке участников то, что уже говорит одна.
Выключенный микрофон не считается. Выключение микрофона или звука ничего не меняет в ролях. Иначе бот раздавал и забирал бы роли при каждом коротком отключении микрофона, а список участников постоянно прыгал бы.
Выключение не убирает за собой. Если ты выключишь модуль или уберёшь роль из настроек, участники, у которых она есть в этот момент, сохранят её. Сними её один раз вручную, быстрее всего через роль в настройках сервера Discord.
Free и Premium
Роль для любого голосового канала, до 50 исключений и три роли для камеры и стрима бесплатны. Правил для канала или категории без Premium доступно 3, с Premium 25. Большинству серверов хватает трёх: по одному на каждую зону, где действительно что-то происходит.
«Голосовые роли» ты найдёшь в панели в разделе Модерация. Если ты пользуешься временными голосовыми каналами, дальше стоит прочитать наше руководство по каналам join to create.
Другие статьи
Сервер сообщества Discord: что меняется и как его включить
Режим сообщества открывает каналы объявлений, Server Insights и другое, но также вводит более строгие правила безопасности. Что вы получаете, что нужно и нужен ли он вашему серверу.
ГайдыКак структурировать каналы и категории в Discord, чтобы ими пользовались
Слишком много каналов убивают молодой сервер. Как начать с малого, объединять каналы в категории и использовать права категорий, чтобы не задавать одно правило дважды.
ГайдыВременные голосовые каналы в Discord: как правильно настроить join to create
Десять постоянных голосовых каналов, девять из них пустые: join to create решает эту проблему. Четыре решения, которые стоит принять заранее, что владельцы могут делать со своим каналом и как это работает вместе с AFK и голосовыми ролями.