Set up Discord leveling, XP and level roles
The Leveling module gives members XP for taking part in conversation, turns that XP into levels, and can announce each level-up and hand out roles along the way. This guide sets it up from the dashboard and gives you the exact formula, so you can predict how quickly members will progress. It also covers the Discord commands for checking and correcting XP. You can try it on the 14-day Pro trial before deciding on a plan.
Start free, 14 days of Pro, no cardBefore you start
- A running bot that has joined your server, with Leveling unlocked by Pro or your 14-day trial.
- For level roles, the bot needs Manage Roles and its highest role must sit above every role it will hand out.
- A human account to test with. Messages from bots never earn XP, including messages from your own bot.
Understand how members earn XP
A member earns XP for a message sent in a server channel that is not on the No-XP list. Each rewarded message is worth a random whole number between XP Per Message (Min) and XP Per Message (Max), 15 and 25 by default. After a reward, that member earns nothing more in the same server until XP Cooldown has passed, 60 seconds by default. Direct messages, bot messages and anything sent during the cooldown earn no XP.
Levels follow one formula: the level is the square root of total XP divided by ten, rounded down. Level 1 needs 100 XP, level 2 needs 400, level 5 needs 2,500 and level 10 needs 10,000. With the defaults a rewarded message averages 20 XP, so reaching level 1 takes about 5 rewarded messages and level 5 about 125. Because of the 60-second cooldown, those 125 messages are spread over at least two hours of chatting.
Enable Leveling and set the XP range
On your bot’s page, find Leveling under Modules and switch it on, then open its settings with the gear button titled Settings and pick your server in the Server selector. Settings are stored per server, so a bot that sits in two communities can reward them at different rates.
Under XP Settings, XP Per Message (Min) and XP Per Message (Max) accept 1 to 1000, and the dashboard raises the maximum to match if you set it below the minimum. XP Cooldown (seconds) accepts 1 to 86400. A larger XP range makes every level arrive sooner, while a longer cooldown rewards steady conversation over bursts of short messages. The defaults suit most servers, and they are easier to judge once you can see real leaderboard numbers.
Choose where level-ups are announced
In Level Up Announcements, Announcement Mode has four options. Current Channel posts where the member just leveled up. Specific Channel posts in the Level Up Channel you pick, and falls back to the current channel if none is picked. Direct Message (DM) sends the news privately, and nothing is posted if the member has closed their DMs. Disabled stops announcements, but level roles are still handed out.
Level Up Message supports {user} for a mention, {username}, {level} and {server}, up to 500 characters. Each placeholder is filled in only once, so put each one in the text a single time. The bot sends the text inside an embed with the member’s avatar and adds a milestone note at certain levels. From Discord, run levelchannel with dm, current or off to switch modes, or give it a channel mention to pick a specific channel; lvlchannel is an alias.
Give roles at chosen levels
Level Roles pairs a level from 1 to 1000 with a role. The role picker marks roles the bot cannot assign with (cannot assign); move the bot’s role higher in Discord before choosing one of those. When a member reaches a listed level by chatting, the bot adds the role and sends them a direct message about it. Only one role per level is used, so give each level a single role.
Roles are added only at the moment a member levels up. Members who were already past a level when you added its role do not receive it retroactively, and correcting someone with setlevel or setxp does not add roles either; grant those by hand in Discord. The bot never removes earlier level roles, so members collect them as they climb. If only the highest reward should stand out, order the roles and colors in Discord to suit.
Boost or block XP in chosen places
XP Multipliers apply to a role or a channel, with values from 0.1 to 10. A channel multiplier is applied first. Then, if the member holds roles with multipliers above 1, the highest of those is applied. A role multiplier below 1 has no effect, whereas a channel multiplier below 1 does reduce XP. The result is rounded down, so a 1.5 role boost for server boosters turns a 20 XP message into 30.
Channels With XP Disabled, under No-XP Channels, stop XP completely in the channels you list. Add bot-command, counting and spam-prone channels here so the leaderboard reflects real conversation. From Discord, the noxp command takes add or remove with a channel mention, or list to show the current channels. The xpmultiplier command takes role or channel, a mention and a value such as 1.5.
Save and test with real messages
Click Save Settings and wait for Saved ✓, restarting the bot from its page if the dialog reports that live sync to the bot runtime failed. From a human account, send a message in a channel that is not on the No-XP list, then check it with the rank command, which also answers to level and xp. It shows the member’s server ranking, total XP, rewarded message count and progress to the next level. Send another message straight away and check again: the total should not change until the cooldown ends.
The levels command, also available as leaderboard, lists ten members per page with buttons to page through. For corrections, setxp sets a member’s exact XP, setlevel gives them the XP a level needs, and resetxp returns them to zero. The levelsetup command, alias levelconfig, posts a button that opens a settings form inside Discord. Everything except rank and levels needs the Manage Server permission.
Plans and what happens after a trial
Free accounts do not get Leveling; it comes with Pro, and the 14-day Pro trial lets you build and test the whole setup first. When a trial runs out and you stay on Free, the dashboard turns Leveling off on each bot, so XP stops accumulating. Nothing you configured is thrown away: upgrade within 30 days of the trial ending and the module is switched back on with your saved settings.
Frequently asked questions
Why didn’t my message earn XP?
Check that the channel is not on the No-XP list, that the cooldown has passed since your last rewarded message (60 seconds by default), and that Leveling is enabled for this server. Bot accounts never earn XP.
How much XP does each level need?
The level is the square root of total XP divided by ten, rounded down. Level 1 needs 100 XP, level 5 needs 2,500, level 10 needs 10,000 and level 20 needs 40,000.
Why didn’t a member get their level role?
Level roles are added only when a member reaches that exact level by chatting, and only if the bot can assign the role. Members who were already above the level, or who were moved there with setlevel, need the role added by hand.
