Discord auto roles: panels, reactions and join roles
Handing out roles by hand does not scale past a few dozen members. Automating it is easy; doing it without opening a hole is less so, because an automatic role grants its permissions to anyone, including an account created ten minutes ago.
Updated 12 September 2026
The three ways to hand out a role automatically
All three answer different needs and combine well: a join role for access, a panel for interests and notifications.
- The join role: given to every new member. Used to grant basic access, or conversely to mark the unverified.
- The self-service panel: a message with buttons or a dropdown where everyone takes and returns their own roles. The clearest method today.
- The reaction role: the historical method, clicking an emoji under a message. It still works, but buttons are clearer on mobile and do not depend on an emoji that can be deleted.
The security rule with no exceptions
A role handed out automatically is a role anyone can get, with nobody reviewing it. It must therefore carry no sensitive permission: not Manage Messages, not Mention Everyone, not Manage Roles, and obviously not Administrator.
The classic hole is indirect: you create a “Member” role for basic access, add Mention @everyone because it was handy once, and six months later any disposable account can ping the whole server on arrival.
Worth repeating: on Discord permissions add up. An automatic role never removes anything, it only adds — including to someone who should not have it.
Before automating a role, ask one question: am I fine with the next account created today getting it within the minute? If the answer is no, that role must not be automatic.
Building a role panel that works
- Create the roles BEFORE the panel, and check none carries a sensitive permission.
- Put the bot role above every role it must hand out. Discord forbids it from granting a role higher than its own, and that is by far the first cause of a panel that does nothing.
- Group by theme and keep to about ten options per panel. A forty-entry menu is not used, it is closed.
- Put the panel in a read-only channel, otherwise conversation pushes it up and nobody finds it again.
- Test with a second account: take the role, then give it back. Removal is the half people forget to check.
Notification roles: the case that really pays
The most profitable use of self-service roles is not decorative, it is notifications. Create one role per announcement type — updates, events, releases — and mention that role rather than @everyone.
The gain is double: those who care are actually notified, and the others stop muting the whole server. A server that overuses @everyone ends up with an audience that has turned the sound off.
How Kuratos helps
The Automatic roles module covers all three methods: join role, button or menu panels, and reaction roles, all set from the dashboard.
Each panel is finely configurable: mode (toggle, add only, remove only), unique role (taking one removes the previous), a required role to use the panel, a delay between changes, an expiry date, and a per-role member count.
This module is entirely free in Kuratos — it contains no paid feature.
Key points
- An automatic role can be obtained by anyone: it must carry no sensitive permission.
- Discord permissions add up; an automatic role never removes anything.
- The bot role must sit above every role it hands out.
- Ten options per panel at most, in a read-only channel.
- Notification roles beat an @everyone everyone eventually mutes.
Frequently asked questions
Why is the bot not giving the role?
In nearly every case the role sits above the bot role in the server role list. Discord then refuses the grant, whatever permissions were given.
Buttons or reactions: which to choose?
Buttons. They read better on mobile, do not depend on an emoji that can disappear, and say plainly what they do. Reactions remain fine on an existing panel that works.
Can a role be given automatically after a certain time?
That is what level-linked roles do: the role arrives after real activity, not on arrival. It is a far better filter than a delay, because an automated account can wait but does not take part.
Put this guide into practice
Kuratos sets up in minutes what this guide describes, and is configured from a web interface rather than through commands.
