Руководство
Автоматическая выдача ролей за уровень в Discord: как спланировать лестницу
Привязать роли к уровням можно за пять минут, а жалеть об этом пять месяцев. Этот разбор проходит по решениям, которые нужно принять заранее: насколько низко стоит первая ступень, что ступень вообще должна говорить и какие права никогда нельзя на неё вешать.
Без прав администратора. Настройка в веб-панели.
Почему это ломается
Большинство переносит лестницу с чужого сервера: ступень 5, 10, 20, 50, 100. Выглядит аккуратно и всё равно не подходит, потому что у вас те же числа стоят другого. Разрыв растёт квадратично: с нуля до уровня 10 это 4675 очков опыта, до уровня 20 уже 23 850. При значениях по умолчанию (тридцать очков за засчитанное сообщение) человек оказывается на уровне 10 примерно после 160 сообщений, а на уровень 20 ему нужно около 800. Уровня 50 на обычном сервере не достигает никто, а роль, до которой никто не доходит, служит не наградой, а украшением. Под этим лежит настоящая беда: кто строит лестницу на глаз, рано или поздно вешает права на число, которое раздаёт счётчик. Замечаешь это, когда они у кого-то уже есть.
Что решить заранее
Прежде чем появится первая награда, ответь письменно на три вопроса. Первый: что у вас говорит уровневая роль? Либо это значок (цвет, место в списке участников, имя, которое приятно носить), либо ключ, открывающий канал. Оба варианта сразу возможны, но только если решаешь это ты, а не случай. Второй: сколько ступеней ты можешь объяснить одной фразой каждую? Выпиши для каждой запланированной ступени, что она разрешает; то, что осталось без фразы, вычёркивай сразу, иначе выйдет роль, за которой потом никто не следит. Третий: накопление или замена? При накоплении человек за месяцы соберёт пять ярлыков, при замене виден ровно один. Ответ зависит от того, должны ли старые роли ещё нести права. И одно движение идёт раньше всего: посмотри, на каком месте стоит бот в вашем списке ролей; всё, что он должен раздавать, обязано числиться ниже.
Шаг за шагом
- Сначала посчитай, сколько времени вашим нужно на первую ступень: при значениях по умолчанию 1150 очков для уровня 5 это около сорока засчитанных сообщений или добрых три часа в голосовом.
- Перенеси лестницу на бумагу: по строке на ступень, в ней число, роль и та единственная фраза, что она разрешает.
- Проверь порядок вашего списка ролей, прежде чем сохранишь первую награду в панели: бот выше, раздаваемые роли ниже.
- Создавай ступени снизу вверх и заодно определись с режимом, потому что более поздняя смена сработает только при следующем повышении.
- Дай человеку без особых прав добраться до первой ступени, а потом сравни то, что ему показали, с тем, что действительно стоит в его списке ролей.
Ошибки, которые делают почти все
Самая дорогая ошибка это уровневая роль с правами модерации. В Discord права складываются по всем ролям: получивший роль может удалять или выставлять людей за дверь, а выдал её счётчик, который никого не знает. Второе касается одиннадцатой ступени. Без Premium бот оставляет десять самых низких и сортирует для этого по возрастанию, так что вылетает твоя высшая ступень, как раз та, к которой все идут. Третье касается иерархии: если роль бота лежит ниже роли-награды, повышение всё равно проходит, но роль не доходит, и нигде об этом не сообщается. Четвёртое касается поздней вставки: втиснешь ступень между двумя существующими, и задним числом её никто не получит, раздача пойдёт только со следующим повышением. Пятое касается каналов: пока ботовая песочница и канал для счёта идут в зачёт, твой рейтинг меряет выносливость, а не участие.
Частые вопросы
Настолько низко, чтобы её взяли в первый же вечер. Уровень 5 при значениях по умолчанию стоит 1150 очков, то есть около сорока засчитанных сообщений, и новичок наберёт их в живом канале. Если поставить первую награду на уровень 20, это уже почти 800, и к тому моменту никто не заметил, что вообще есть что получать.
Нет, по двум причинам. Первая очевидна: активность ничего не подтверждает, и от количества сообщений человек не становится рассудительнее. Вторая заложена в устройстве: роли-награды обязаны стоять ниже роли бота, а роли модерации должны стоять выше тех, кого они модерируют. При первой же уборке иерархии это сталкивается. Дай уровневым ролям лучше цвет, собственный канал или право на чужие эмодзи.
Новая лестница действует со следующего повышения, а не сразу. Тот, кто уже на уровне 30 и давно прошёл твою свежевставленную ступень 25, роль задним числом не получит, а получит её только на уровне 31. На лестнице, которая наверху и так редеет, это может занять недели. Поэтому планируй изменения одним заходом, а не по частям.
При выходе Discord снимает все роли, а очки остаются, пока ты не включил сброс при выходе. Награды бот раздаёт только при повышении, так что вернувшийся стоит со старым уровнем и без значка. Выдай роль один раз вручную, и всё снова сойдётся. После бана иначе: там очки по умолчанию удаляются.
Насколько низко должна стоять первая ступень?
Настолько низко, чтобы её взяли в первый же вечер. Уровень 5 при значениях по умолчанию стоит 1150 очков, то есть около сорока засчитанных сообщений, и новичок наберёт их в живом канале. Если поставить первую награду на уровень 20, это уже почти 800, и к тому моменту никто не заметил, что вообще есть что получать.
Может ли уровневая роль нести права модерации?
Нет, по двум причинам. Первая очевидна: активность ничего не подтверждает, и от количества сообщений человек не становится рассудительнее. Вторая заложена в устройстве: роли-награды обязаны стоять ниже роли бота, а роли модерации должны стоять выше тех, кого они модерируют. При первой же уборке иерархии это сталкивается. Дай уровневым ролям лучше цвет, собственный канал или право на чужие эмодзи.
Что будет, если я изменю лестницу позже?
Новая лестница действует со следующего повышения, а не сразу. Тот, кто уже на уровне 30 и давно прошёл твою свежевставленную ступень 25, роль задним числом не получит, а получит её только на уровне 31. На лестнице, которая наверху и так редеет, это может занять недели. Поэтому планируй изменения одним заходом, а не по частям.
Человек уходил и вернулся. Почему у него нет ролей?
При выходе Discord снимает все роли, а очки остаются, пока ты не включил сброс при выходе. Награды бот раздаёт только при повышении, так что вернувшийся стоит со старым уровнем и без значка. Выдай роль один раз вручную, и всё снова сойдётся. После бана иначе: там очки по умолчанию удаляются.