A Discord leveling system rewards activity: members earn experience points (XP) for chatting and, optionally, for time in voice channels, their total XP converts into a level, and reaching certain levels can unlock roles. Discord doesn't have leveling built in, so a bot provides it. This guide explains the parts every leveling system shares, how to tune them so levels feel earned, and how Better Tickets implements them.
How XP and levels work
Every leveling bot uses the same loop:
- A member does something. Usually sending a message, sometimes spending time in voice.
- The bot awards XP. Often a small random amount, so leveling doesn't feel mechanical.
- A cooldown limits farming. Only one message per window, often a minute, earns XP.
- Total XP maps to a level. A formula, called the level curve, sets how much XP each level needs.
- Levels trigger rewards. A level-up message, a role, or both.
Choosing a level curve
The curve decides how quickly members level up. There are two common shapes:
- Linear increments. Each level costs a fixed amount more than the last. Early levels come quickly and later ones take steadily longer, so the pace feels predictable.
- Steep, fast-growing curves. Costs rise much faster at higher levels. High levels become rare status symbols, but new members can feel they'll never catch up.
Whatever the shape, think in time, not XP. Work out how many minutes of chatting a level takes, then ask whether that matches what the reward is worth.
A worked example
Better Tickets uses linear increments: level 1 costs Base XP and each level after that costs Increment by more than the one before. With the defaults (base 50, increment 15, 10 to 20 XP per message and a 60-second cooldown), a member earns about 15 XP per active minute:
| Level | Total XP needed | Active chatting minutes (about) |
|---|---|---|
| 1 | 50 | 3 |
| 5 | 400 | 27 |
| 10 | 1,175 | 78 |
| 20 | 3,850 | 257 |
| 50 | 20,875 | 1,392 |
If level 10 unlocks a media channel, about 80 minutes of real conversation is a reasonable bar. If level 50 is your top rank, about 23 hours of active chat keeps it meaningful. Change the base or increment and the whole table shifts, and in Better Tickets every member is re-leveled instantly because levels are calculated from total XP rather than stored.
Voice XP
Many communities live in voice channels, and message-only XP ignores them. Voice XP gives a set amount of XP per minute in voice. To keep it fair:
- Only count unmuted time, so people idling on mute don't farm XP.
- Ignore AFK channels.
- Keep it modest compared with chat XP. An hour in voice usually shouldn't beat an hour of active chat by a wide margin.
Role rewards and multipliers
Role rewards give a role at a chosen level. Decide whether they stack (members keep every reward) or replace each other (members keep only the highest), then pick rewards that unlock something small: a color, a channel, the ability to post images.
Multipliers give more XP in certain places or to certain people, such as 1.5× in an event channel or for server boosters. Keep them small, and check how your bot combines them: some add them together, while Better Tickets uses only the highest multiplier that applies.
Keep leveling from being gamed
- A cooldown of about a minute stops spam from paying off.
- Ignore spam, bot-command and counting channels.
- Use required or ignored roles to exclude alt accounts or muted members.
- Don't attach staff permissions to levels. XP measures activity, not trust.
Set up leveling in Better Tickets
Turn it on
Run /level config or open Leveling in the dashboard and turn on Leveling enabled.
Tune XP and the curve
On the XP and General tabs, set the XP range per message, the cooldown, the base XP and the increment. Add Voice XP per minute if your server is voice-heavy.
Add rewards
On Rewards, add roles for chosen levels and decide whether they stack.
Set restrictions and multipliers
Ignore channels and roles on Restrictions, and add role or channel boosts on Multipliers.
Announce level-ups
On Announcements, post a message when members level up, either in a fixed channel or where they were chatting.

Members check their progress with /level rank, which shows their level, server rank and XP to the next level on an image card, and /level leaderboard shows the top members. Admins can search, edit or reset any member's XP from the dashboard Leaderboard page, which also has calculators for XP per level.
Because leveling runs in the same bot as tickets, you can also require a minimum level before members open a ticket or apply for staff, which helps keep brand-new accounts out of those queues.
Frequently asked questions
How does leveling work on Discord?
Discord has no leveling of its own; a bot adds it. The bot gives members experience points (XP) for chatting and sometimes for time in voice, turns total XP into a level using a formula, and can give roles when members reach certain levels.
How much XP do you get per message?
It depends on the bot and your settings. Most bots give a small random amount per message and only count one message per cooldown window, usually a minute, so spamming doesn't help. Better Tickets defaults to 10 to 20 XP with a 60-second cooldown.
How do I stop people farming XP?
Use a cooldown so only one message per minute earns XP, ignore bot-command and spam channels, and don't give voice XP to members who are muted or alone. Check the leaderboard now and then for anyone climbing unusually fast.
What are good role rewards for leveling?
Rewards that unlock something small but real: a color role, access to a media channel, or permission to post links. Avoid tying moderation powers to levels, because XP measures activity, not judgment.
Should role rewards stack?
Stacking keeps every reward role a member has earned, which suits rewards that unlock different things. Not stacking keeps only the highest, which suits color or rank roles where only one should show.
Can I reset or change someone's XP?
In Better Tickets, the dashboard Leaderboard page lets admins edit a member's XP, message count and voice minutes, or delete their profile. Changing the level curve re-levels everyone instantly, because levels are always calculated from total XP.