Guide · Levels
How to give roles for levels on Discord (level roles setup)
Level roles step by step — how XP turns into levels, which thresholds to pick, stack vs replace, role position, restoring roles on rejoin, /levels sync and season reward roles.
LevelsRole menus
On this page
Discord can’t give roles for levels on its own — it has no XP or level system. You need a leveling bot that counts activity as XP, turns XP into levels and adds a role when a member reaches the level you chose. In BotGG that is Levels: open Level-up & rewards in the console, add a reward role (for example Regular at level 5), and make sure BotGG’s own role sits above that role in Server Settings → Roles. From then on the role is handed out the moment someone levels up.
This guide focuses on the role part: which levels to reward, whether members keep every role or only the highest one, what happens when someone leaves or is lowered, and how to repair roles. For the full leveling setup — XP sources, curves, announcements — see the leveling system guide.
How level roles work
Every level role system has the same three parts:
- XP — members earn points for activity. With BotGG that’s messages (15–25 XP, at most once a minute by default), time in voice, reactions other members give your messages, a daily streak bonus and, optionally, starting threads.
- Levels — a curve converts total XP into a level. Each level costs a bit more than the last.
- Rewards — a list of level → role pairs. When a member’s level reaches a reward’s level, the bot adds the role.
Because levels come from total XP, level roles are fair by design: nobody can buy or ask for them, and changing the curve later just recalculates everyone’s level.
Choosing level thresholds
The most common mistake is rewarding levels nobody reaches, or so many levels that roles stop meaning anything. Four to six reward roles are enough for most servers.
Here is what the default curve (5n² + 50n + 100 XP per level) means in practice. “Counted messages” assumes about 20 XP per message and ignores voice, reactions and streak bonuses, so real members get there a little faster.
| Level | Total XP | Counted messages (≈) | Typical role idea |
|---|---|---|---|
| 1 | 100 | 5 | Newcomer — proves someone said hello |
| 5 | 1,150 | 58 | Member / Regular — unlocks media or image posting |
| 10 | 4,675 | 234 | Active — a color or a perk channel |
| 20 | 23,850 | 1,193 | Veteran — a hoisted role in the member list |
| 30 | 67,525 | 3,376 | Elite |
| 50 | 268,375 | 13,419 | Legend — a handful of people ever get here |
Because XP from messages is limited to once per minute, level 10 means roughly four hours of real conversation, and level 50 means months of regular activity. Tips for picking yours:
- Make the first reward easy. Level 3–5 tells new members the system exists.
- Space later rewards further apart. 5, 10, 20, 35, 50 feels steady on the default curve.
- Tie a perk to a role, not just a name. Image permissions, a lounge channel, a color — something that changes how the server feels.
- Use the console’s estimate. The Level curve tab shows how many messages and hours each level takes with your current settings. If you switch to a linear, exponential or custom curve, check your thresholds again.
Set up level roles in BotGG, step by step
- Create the roles in Discord. Server Settings → Roles → Create Role. Give level roles a name and, if you like, a color — but no permissions. Perks are better handed out through channel overwrites.
- Put BotGG’s role above them. Drag the BotGG role higher than every reward role. A bot can only give roles that sit below its own highest role, and it needs the Manage Roles permission.
- Enable Levels in the console at https://console.botgg.app (invite the bot first from https://discord.com/oauth2/authorize?client_id=1553367772451446804&scope=bot%20applications.commands&permissions=282970448981207 if you haven’t).
- Open Level-up & rewards → Reward roles and click Add reward role. Pick the level and the role. Repeat for each tier.
- Choose what happens with several rewards — Stack or Replace (see below).
- Decide per role whether to “Remove if they drop below”, and keep Restore on rejoin on unless you have a reason not to.
- Save, then test: give yourself or a test account enough XP with
/levels give(or set a level with/levels setandunit: levels) and watch the role arrive.
The free plan includes 5 reward roles per server; Pro raises that to 100. Compare plans on the pricing page.
Stack or replace: which mode to use
| Stack | Replace | |
|---|---|---|
| What members keep | Every reward role they’ve reached (level 5 + 10 + 25) | Only the highest reward role reached |
| On level-up | The new role is added | The new role is added, lower reward roles are removed |
| Best for | Roles that unlock channels or perks cumulatively | Colored or hoisted tier roles, ranks like Bronze → Silver → Gold |
| Member list | Can show many level roles per member | One clean tier per member |
If your level roles have colors, use Replace — otherwise only the highest colored role shows anyway and the rest clutter the profile. If each level unlocks a channel, use Stack so lower perks don’t disappear.
Removing roles, rejoining and repairing
When a member drops below a level
Members don’t lose XP by being inactive, so levels normally only go up. A level can drop when an admin uses /levels take, /levels set or /levels reset. Each reward role has a Remove if they drop below switch (on by default): when it’s on, the role is taken away again if the member’s level falls under the reward’s level. Turn it off for roles that should be permanent once earned.
When a member leaves and rejoins
Discord removes all roles when someone leaves the server. With Restore on rejoin on, BotGG gives the reward roles for the member’s current level back as soon as they rejoin — their XP was never deleted.
When roles get out of step
Roles can drift if you change rewards, switch modes, move roles around or the bot couldn’t assign a role for a while. /levels sync fixes this: with member it repairs one person, without it the whole server — adding missing reward roles, removing ones that no longer fit and reporting how many were skipped. Run it after every change to your reward list.
Role position and permissions
Most “the bot doesn’t give the role” problems come down to three rules:
- Position: BotGG’s highest role must be above the reward role. Moving the reward role or the bot role fixes it instantly; run
/levels syncafterwards. - Manage Roles: the bot needs this permission on the server.
- No dangerous permissions on reward roles: for safety, BotGG never hands out a role carrying permissions like Administrator, Manage Server, Manage Roles or Ban Members automatically. If you really want such a role as a reward, the server owner (or an Administrator) has to add it to Privileged roles in Bot settings. The better fix is to keep level roles permission-free.
Managed roles (a bot’s own role or the Server Booster role) can’t be assigned by any bot, so they can’t be level rewards either. The Discord roles guide explains role hierarchy in more detail.
XP settings that change who gets roles
Your reward roles are only as fair as the XP behind them. In the XP sources tab:
- Cooldown and minimum length stop spam from paying off. The default 60-second cooldown is what makes level 10 mean real conversation.
- Voice XP (4 XP per minute by default) only counts with at least two people in the channel and, by default, not while self-muted or deafened.
- No-XP zones: exclude bot-command or spam channels, and roles such as muted members.
- Multipliers: give a role or channel more (or less) XP, and adjust the Server Booster bonus (×1.25 by default). Use them sparingly — a ×2 role reaches every reward twice as fast.
- XP events (
/levels boostor scheduled in Seasons & events) multiply XP for a few hours or days. Expect a wave of new reward roles during an event.
Season reward roles
Lifetime levels reward long-time members, which can feel out of reach for newcomers. Seasons — free on every plan — add a monthly or quarterly leaderboard on top that starts fresh each season, while lifetime XP and level roles stay untouched.
Under Seasons & events → Season reward roles you link a role to a place on the season leaderboard — for example a Season Champion role for #1. When the season ends, the bot posts the final standings, gives the role to the winners and takes it back from last season’s holders. It is a good way to have a rotating, prestigious role without inflating your level ladder.
Show it off: rank cards
Members check their progress toward the next role with /rank. The card shows level, rank, an XP bar to the next level, streak and achievement badges. In the Rank card tab you choose a style (neon, glass or minimal), accent and background colors, and you can upload your own background image — custom rank cards are free on every plan. If you allow it, members pick a personal accent color with the color option of /rank.
Mention the next reward in your level-up message: the {reward} placeholder inserts the role a member just earned, so the announcement doubles as a reminder that roles exist.
Troubleshooting level roles
| Problem | Cause | Fix |
|---|---|---|
| Role not given at level-up | BotGG’s role is below the reward role, or it lacks Manage Roles | Move the bot role up, grant Manage Roles, run /levels sync |
| One specific role is always skipped | The role has dangerous permissions or is a managed role | Remove those permissions, or add it to Privileged roles in Bot settings |
| Members have every old tier | Mode is Stack | Switch to Replace and run /levels sync |
| Roles gone after rejoining | Restore on rejoin is off | Turn it on; run /levels sync member: for that person |
Role not removed after /levels take | Remove if they drop below is off for that reward | Turn it on and sync |
FAQ
How do I give a role at a certain level on Discord?
Use a leveling bot. In BotGG: Levels → Level-up & rewards → Reward roles → Add reward role, pick the level and the role, save. The bot’s role must be above the reward role.
Can members keep all their level roles?
Yes — that is Stack mode. Choose Replace if you want members to keep only their highest level role.
Do level roles come back if someone leaves and rejoins?
Yes, with Restore on rejoin turned on (the default). XP is kept, so the roles for the member’s level are given back immediately.
How many level roles can I add?
5 on the free plan and 100 on Pro.
Can I give roles for levels without a bot?
No. Discord itself doesn’t track XP or levels. You can only assign roles by hand or with a bot — and for something that changes as people chat, a bot is the only practical option.