XP & levels
Reward active members with XP for chatting and time in voice, set how fast levels come, and post a level-up message when someone ranks up.
On this page
- Before you start
- Set it up
- How members earn XP
- Text XP
- Voice XP
- How levels are calculated
- Settings explained
- XP system
- Earning XP
- Leveling speed and boosters
- XP decay
- Level-up messages
- Channels with no XP
- Reset all XP
- Commands
- Placeholders
- Examples
- Premium
- Troubleshooting
- Nobody is earning XP
- Voice XP isn't adding up
- Level-ups happen but no message is posted
- A new channel isn't in the channel list
- Levels look wrong after I changed the curve
- Related
Buddy's XP system gives members experience points (XP) for chatting and for hanging out in voice channels. As their XP adds up they level up, Buddy posts a level-up message, and you can hand out reward roles at the levels you choose. It's a simple way to make regulars feel seen and give new members something to work toward.
Before you start#
- XP is off by default. Nobody earns anything until you switch on XP system.
- Everything on this page works on the free plan. Premium only raises how many level reward roles you can add.
- Changing settings needs access to the server's dashboard, or Manage Server for the
/xpsettingscommand.
Set it up#
It's under Levels & engagement in the sidebar.
At the top of the page, switch XP system on. Leave Level-up messages on if you want Buddy to announce new levels.
In Earning XP, set Text XP, Text cooldown (seconds), Voice XP and Voice interval (minutes). The defaults (15 XP per message, a 60-second cooldown, 10 XP every 5 minutes in voice) are a good start.
In Leveling speed and boosters, set Level base and Level multiplier. See How levels are calculated below.
In Level-up messages, edit the Message, choose How to name the member, and optionally pick a Level-up channel.
Add bot-command, spam or counting channels to No-XP channels in Channels with no XP.
Click Save XP settings. Changes reach the bot within about a minute.
Run /setup feature: XP System and click Enable XP System, or run /xpsettings to change
every setting from a panel in Discord (see Commands).
How members earn XP#
Text XP#
A message earns Text XP only when all of these are true:
- It's at least 4 characters long (so "ok" or "lol" don't count).
- It isn't the same as the member's last message that earned XP (capitals are ignored, so repeating
GGthenggdoesn't pay twice). - At least Text cooldown seconds have passed since their last XP-earning message.
- It isn't in a no-XP channel, and the member doesn't have a blacklisted role.
Messages sent during the cooldown simply don't earn XP. They don't restart the cooldown, so an
active chatter earns roughly once per cooldown. Every message still counts toward the
member's Messages Sent in /xpstats. Bots never earn XP.
A message in a no-XP channel doesn't use up the cooldown either, so the member's next message in a normal channel can still earn XP.
Voice XP#
Members earn Voice XP for every Voice interval they spend in a voice channel, as long as:
- At least one other person (not a bot) is in the same channel. Sitting alone doesn't count.
- They aren't deafened (self or server). Muted is fine: listening still counts.
- They aren't in your server's AFK channel, a blacklisted channel, or holding a blacklisted role.
Buddy checks voice time once a minute and pays out each full interval. When a member leaves, the unfinished part of the interval is paid proportionally, so nobody loses time by leaving just before a payout.
Muting, deafening, streaming or turning on video doesn't reset a member's voice time. Deafening
pauses earning while they're deafened; the time they'd already built up is kept. Set
Voice XP to 0 to turn voice XP off.
Multipliers (boosters, roles, channels and XP events) apply to both text and voice XP. See XP multipliers & events.
How levels are calculated#
Each level costs a bit more XP than the last. The XP needed to go from level n − 1 to level n is:
XP for level n = Level base × n ^ Level multiplier (rounded down)A member's level is how many of those steps their total XP covers. With the defaults
(Level base 100, Level multiplier 1.5):
| Level | XP for this level | Total XP needed |
|---|---|---|
| 1 | 100 | 100 |
| 2 | 282 | 382 |
| 3 | 519 | 901 |
| 4 | 800 | 1,701 |
| 5 | 1,118 | 2,819 |
| 6 | 1,469 | 4,288 |
| 7 | 1,852 | 6,140 |
| 8 | 2,262 | 8,402 |
| 9 | 2,700 | 11,102 |
| 10 | 3,162 | 14,264 |
| 15 | 5,809 | 37,802 |
| 20 | 8,944 | 76,072 |
| 25 | 12,500 | 131,300 |
| 30 | 16,431 | 205,449 |
| 50 | 35,355 | 724,849 |
Worked example: with the defaults, a member who chats steadily earns at most 15 XP a minute (one message per 60-second cooldown), about 900 XP an hour. Level 5 (2,819 XP) takes a bit over three hours of active chat; level 10 (14,264 XP) takes about 16 hours. An hour in voice with friends adds 120 XP (10 XP × 12 intervals).
How the three presets on the dashboard compare (total XP needed):
| Preset | Level base | Multiplier | Level 5 | Level 10 | Level 25 | Level 50 |
|---|---|---|---|---|---|---|
| Fast | 75 | 1.2 | 1,439 | 6,000 | 42,341 | 190,455 |
| Balanced (default) | 100 | 1.5 | 2,819 | 14,264 | 131,300 | 724,849 |
| Slow / competitive | 150 | 2.0 | 8,250 | 57,750 | 828,750 | 6,438,750 |
If early levels feel too slow, lower Level base. If high levels come too easily, raise Level multiplier. The multiplier has the bigger effect on later levels.
You can change the curve at any time. Members keep their XP, and /rank and the leaderboard
show the level for the new curve straight away. If someone's level drops because of the change,
Buddy corrects it quietly on their next XP gain: no message, and no reward roles are taken away.
Settings explained#
XP system#
| Setting | What it does | Default |
|---|---|---|
| XP system | Turns earning XP on or off. Off means no XP and no levels, and most XP commands reply that the system is disabled. | Off |
| Level-up messages | Turns the level-up announcement on or off. Turning it off keeps your message and channel for later. Reward roles are still given. | On |
Earning XP#
| Setting | What it does | Default |
|---|---|---|
| Text XP | XP for each message that counts. 1–250. | 15 |
| Text cooldown (seconds) | Minimum wait between XP-earning messages per member. 15–3600. | 60 |
| Voice XP | XP for each voice interval. 0 turns voice XP off. 0–500. | 10 |
| Voice interval (minutes) | How long one voice interval is. 1–120. | 5 |
Leveling speed and boosters#
| Setting | What it does | Default |
|---|---|---|
| Level base | XP the first level costs, and the starting point of the curve. 50–10000. | 100 |
| Level multiplier | How much harder each level gets. 1.1–4.0. | 1.5 |
| Booster multiplier | Server boosters earn XP times this. 1.0 means no bonus. 1.0–5.0. | 1.2 |
| Level reward roles | Replace lower roles or Keep all earned roles. See Level reward roles. | Replace |
XP decay#
XP decay keeps the leaderboard about who is active now. Once a day, Buddy takes some XP from members who haven't earned any (from chat or voice) for a while.
| Setting | What it does | Default |
|---|---|---|
| Turn on XP decay | Turns decay on or off. Decay only runs while the XP system is on. | Off |
| XP lost per day | How much XP an inactive member loses each day. 0 means decay does nothing. 0–1000. | 0 |
| Inactive days before decay | How many days without earning XP before decay starts. 1–365. | 14 |
- Nobody loses a level. Decay stops at the XP a member's current level starts at, so their level and their reward roles stay. Only the progress toward the next level (and their place on the leaderboard) goes down.
- Earning XP again stops the decay straight away, and the inactive-days count starts over.
- Members who were given XP but never chatted or used voice count as inactive from the day their XP was first recorded.
Example: with 25 XP a day after 14 days, a level 5 member who goes quiet for three weeks loses 25 XP on each of the last 7 days (175 XP), unless they reach the start of level 5 first.
Level-up messages#
| Setting | What it does | Default |
|---|---|---|
| Message | The text Buddy posts. Up to 240 characters. Supports placeholders. | {user} reached level {level}! 🎉 |
| How to name the member | Tag the user in the level up message (a ping) or Use the member nickname without tagging them. Controls what {user} becomes. | Tag |
| Include rank image with level-up message | Attaches the member's rank card to the message. | Off |
| Level-up channel | Where messages go. Leave it on Disabled to post in the channel where the member levelled up. | Disabled |
Channels with no XP#
| Setting | What it does | Default |
|---|---|---|
| No-XP channels | Text channels where messages never earn XP (and don't add to Messages Sent). Threads inside them are covered too. | None |
To block categories, voice channels or roles, use the XP blacklist commands.
Reset all XP#
The Reset all XP card puts every member back to 0 XP and level 0, and clears their message
count and voice time. Click Start XP reset, tick the confirmation box, type RESET XP,
click Reset all XP and confirm once more.
A reset can't be undone. It doesn't remove reward roles members already have, and it doesn't reset daily/weekly reward timers.
Commands#
Members can use /rank, /xpstats, /xpleaderboard and /xprewards (see
Leaderboards & ranks). The settings commands need
Manage Server. /xp settings is a shortcut to /xpsettings and works the same way.
Run /xpsettings with no options to open the XP settings panel. Only you can see it, and every
change saves straight away. Use Choose a section at the top to switch pages:
- Earning XP: the XP on/off button, Keep all reward roles, XP rates (a form for XP per message, message cooldown, XP per voice interval and voice interval length) and Level curve (a form for the XP level 1 costs and the level multiplier). The panel shows how much XP levels 1, 5 and 10 need.
- Level-up messages: on/off buttons for Announce, Ping member and Rank card, the Level-up channel picker (leave it empty to post where the member was chatting) and Edit message (up to 240 characters, with placeholders).
- XP decay: the Decay on/off button and Decay amounts (a form for the XP lost per day and the inactive days before decay starts). See XP decay.
To change one setting without the panel, use /xpsettings setting:<name> value:<value>.
/xpsettings [setting] [value] Manage ServerOpen the XP settings panel (or change one setting directly).
enabled,keepLevelRolesanddecayEnabledtaketrue/false,yes/nooron/off.decayRateis the XP lost per day (0–1000) anddecayAfterDaysthe inactive days before decay starts (1–365).- For
levelUpChannel, mention the channel (#level-ups) or paste its ID. - The same ranges as the dashboard apply. Values below the minimum are rejected (a level multiplier under 1.1 is raised to 1.1), and values above the maximum are capped.
Example: /xpsettings setting: levelUpChannel value: #level-ups
Placeholders#
Use these in the level-up Message (or /xpsettings → Edit message).
| Placeholder | Becomes |
|---|---|
{user} | The member, as a mention or their server nickname (see How to name the member) |
{level} | Their new level |
{oldLevel} | The level they had before |
{xp} | Progress toward the next level, like 35/1469 |
If a member jumps several levels at once (say, from a big bonus drop),
Buddy posts one message, with {oldLevel} and {level} showing the whole jump.
Examples#
The default message:
{user} reached level {level}! 🎉@Alex reached level 5! 🎉
A message that shows progress:
GG {user}, you went from level {oldLevel} to {level}! Next level: {xp} XPGG @Alex, you went from level 4 to 5! Next level: 11/1469 XP
A quieter version for a dedicated #level-ups channel, using the nickname so nobody gets pinged:
📈 {user} is now level {level}.📈 Alex is now level 12.
Busy server? Set a Level-up channel so announcements don't interrupt conversations, and choose Use the member nickname without tagging them to avoid a ping on every level.
Premium#
The XP system itself is free. Premium plans raise the number of level reward roles you can add (the free plan allows 3). See Plan limits.
Troubleshooting#
Nobody is earning XP#
- Check XP system is switched on, then click Save XP settings. In Discord,
/xpsettingsshows whether XP is on. - Messages shorter than 4 characters, repeated messages and messages inside the cooldown don't earn XP. Try a longer, different message after the cooldown.
- Make sure the channel isn't in No-XP channels and the member has no blacklisted role (check both lists in
/xpblacklist).
Voice XP isn't adding up#
- Members need at least one other person (not a bot) in the channel, and must not be deafened.
- The AFK channel never earns XP.
- Voice XP is paid each full Voice interval (and the rest when they leave). Check Voice XP isn't
0.
Level-ups happen but no message is posted#
- Check Level-up messages is on.
- If no Level-up channel is set, Buddy posts where the level-up happened: the channel of the message, the channel where
/xprewardswas used, or the voice channel's own text chat for level-ups earned from voice time. Pick a Level-up channel to keep all announcements in one place. - Buddy needs View Channel and Send Messages in that channel. Without Attach Files, the rank image is left off but the text is still sent.
A new channel isn't in the channel list#
The dashboard lists channels Buddy has synced. Run /setup feature: Update Channels and Roles for Website
in Discord, then reload the page.
Levels look wrong after I changed the curve#
That's expected: levels follow the new Level base and Level multiplier. /rank and the
leaderboard already use the new curve; the stored level catches up on the member's next XP gain.