Levels & engagement

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.

Higher limits with Premium Open in dashboard Updated Oct 21, 2026
On this page

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#

Permissions needed

To post level-up messages, Buddy needs View Channel and Send Messages in the level-up channel (or Send Messages in Threads for a thread). To include the rank image it also needs Attach Files. To give reward roles it needs Manage Roles, and its own role must be above those roles.

  • 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 /xpsettings command.

Set it up#

Open XP & levels in your dashboard

It's under Levels & engagement in the sidebar.

Turn it on

At the top of the page, switch XP system on. Leave Level-up messages on if you want Buddy to announce new levels.

Choose how members earn XP

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.

Pick a leveling speed

In Leveling speed and boosters, set Level base and Level multiplier. See How levels are calculated below.

Write your level-up message

In Level-up messages, edit the Message, choose How to name the member, and optionally pick a Level-up channel.

Exclude noisy channels

Add bot-command, spam or counting channels to No-XP channels in Channels with no XP.

Save

Click Save XP settings. Changes reach the bot within about a minute.

Open XP settings

Prefer Discord?

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 GG then gg doesn'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.

Note

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):

LevelXP for this levelTotal XP needed
1100100
2282382
3519901
48001,701
51,1182,819
61,4694,288
71,8526,140
82,2628,402
92,70011,102
103,16214,264
155,80937,802
208,94476,072
2512,500131,300
3016,431205,449
5035,355724,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):

PresetLevel baseMultiplierLevel 5Level 10Level 25Level 50
Fast751.21,4396,00042,341190,455
Balanced (default)1001.52,81914,264131,300724,849
Slow / competitive1502.08,25057,750828,7506,438,750
Tip

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#

SettingWhat it doesDefault
XP systemTurns 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 messagesTurns 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#

SettingWhat it doesDefault
Text XPXP for each message that counts. 1–250.15
Text cooldown (seconds)Minimum wait between XP-earning messages per member. 15–3600.60
Voice XPXP 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#

SettingWhat it doesDefault
Level baseXP the first level costs, and the starting point of the curve. 50–10000.100
Level multiplierHow much harder each level gets. 1.1–4.0.1.5
Booster multiplierServer boosters earn XP times this. 1.0 means no bonus. 1.0–5.0.1.2
Level reward rolesReplace 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.

SettingWhat it doesDefault
Turn on XP decayTurns decay on or off. Decay only runs while the XP system is on.Off
XP lost per dayHow much XP an inactive member loses each day. 0 means decay does nothing. 0–1000.0
Inactive days before decayHow 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#

SettingWhat it doesDefault
MessageThe text Buddy posts. Up to 240 characters. Supports placeholders.{user} reached level {level}! 🎉
How to name the memberTag 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 messageAttaches the member's rank card to the message.Off
Level-up channelWhere messages go. Leave it on Disabled to post in the channel where the member levelled up.Disabled

Channels with no XP#

SettingWhat it doesDefault
No-XP channelsText 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.

Careful

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 Server

Open the XP settings panel (or change one setting directly).

  • setting text, optional — Change one setting directly (leave empty to open the panel). (enabled, textCooldown, textXp, voiceInterval, voiceXp, levelBase, levelMultiplier, levelUpMessage, levelUpChannel, keepLevelRoles, decayEnabled, decayRate, decayAfterDays)
  • value text, optional — The new value (channel mention for levelUpChannel).
  • enabled, keepLevelRoles and decayEnabled take true/false, yes/no or on/off.
  • decayRate is the XP lost per day (0–1000) and decayAfterDays the 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).

PlaceholderBecomes
{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}! 🎉
Discord Buddy APP Today at 4:20 PM

@Alex reached level 5! 🎉

A message that shows progress:

GG {user}, you went from level {oldLevel} to {level}! Next level: {xp} XP
Discord Buddy APP Today at 4:20 PM

GG @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}.
Discord Buddy APP Today at 4:20 PM

📈 Alex is now level 12.

Tip

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, /xpsettings shows 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 /xprewards was 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.

Loading…