Dispatch.IO Logo
Modules and features

Levels and XP

How members earn XP by chatting and in voice, and how levels are calculated, announced and rewarded with roles.

Updated on October 15, 2026#niveaux

Search the documentation

Type a keyword: a command, a module, a dashboard page…

The level system rewards your members' activity: every message and every minute spent in voice earns XP (experience points). As XP adds up, a member goes up in level; the bot announces it with a card and can give them reward roles.

This page details the exact rules: what earns XP, how much, how often, how levels are calculated and what happens at every level-up. The commands (/rank, /top, /modify-xp, /reset-levels) are described in Levels and leaderboards, and the settings on the Levels page of the dashboard.

Tip

The essentials

With the default settings, a normal message earns 5 to 15 XP and a minute in voice 20 XP. Level 1 is reached at 100 XP, level 10 at 10,000 XP.

Turning the level system on

The system is off on a new server. Turn it on with the Enable levels switch on the Levels page of the website, or with the Enable button in the Leveling category of /config (see Bot configuration).

When you turn it on:

  • members start earning XP;
  • the /rank, /modify-xp and /reset-levels commands appear on the server.

When you turn it off, XP stops increasing, those three commands disappear and running giveaways that award XP are cancelled. XP already earned is kept.

Important

Bot permissions

The bot needs Manage Roles and Manage Channels. Without them, the Enable button of /config is greyed out, and if the bot loses one of them the system turns itself off (the bot reports it in the server logs channel, if set). Give the permissions back, then turn the system on again.

Earning XP by chatting

The conditions, the calculation and the delay between two messages.

Every message sent in a channel of the server can earn XP: text channels, threads, forum posts and the chat of voice channels. Direct messages don't count. No channel or role is excluded.

For each message, the bot applies these rules in order:

  1. System on: if levels are turned off, nothing is counted.
  2. Who: bots, system messages and members blacklisted from Dispatch.IO earn nothing. Neither does a message blocked by the anti-raid.
  3. 2-second delay: after a message, about 2 seconds must pass before a new message earns XP. The delay restarts with every message, even one that earned nothing.
  4. Content: the bot removes mentions (members, roles, @everyone, @here), links and Unicode emojis (😀) from the text. If nothing is left, the message earns nothing. That is the case for a message made only of emojis, links or mentions, or an image without text.
  5. Calculation: the message earns a random whole number of XP between Text XP min and Text XP max (5 and 15 by default, both included).
  6. Short message: if the remaining text has fewer than 5 words or fewer than 20 characters, the XP is halved (rounded down).

Examples with the default settings

MessageXP earned
"Has anyone tried the new Node release yet?"5 to 15 XP
"gg!"2 to 7 XP (short message)
"😂😂😂" or a link on its own0 XP
A second message one second after the first0 XP (2-second delay)

Earning XP in voice

A member earns XP while connected to a voice channel of the server, temporary voice channels included:

  • every 60 seconds spent in voice, they receive the Voice XP (20 by default);
  • the first XP arrives after one full minute;
  • switching voice channels restarts the counter: the started minute is lost;
  • leaving voice stops the counter;
  • the voice XP value is the one in place when the member joined voice: if you change it, the change applies from their next connection.

The bot does not check whether the member muted their microphone or headset, nor whether they are alone in the channel. Bots and members blacklisted from Dispatch.IO earn nothing. When the bot restarts, it resumes counting for members already in voice.

The level curve

The formula and the XP thresholds.

The level depends on the member's total XP on the server, that is message XP + voice XP:

level = whole part of √(total XP ÷ 100)

In other words, reaching level N takes 100 × N² total XP, and each level takes a little more than the previous one (100 × (2N + 1) XP between level N and level N + 1).

LevelTotal XPLevelTotal XP
11001010,000
24001522,500
39002040,000
52,5003090,000
74,90050250,000

With the default settings, level 10 is about 1,000 normal messages, or 8 h 20 min in voice. Message XP and voice XP never go below 0.

XP and levels are specific to each server: a member starts from zero on another server.

The level-up announcement

The message and card posted when a member levels up.

A level-up is detected when total XP reaches a new threshold after a message, a minute in voice or a giveaway that awards XP (see Polls, giveaways and suggestions). The bot first gives the reward roles, then posts the announcement.

The announcement is posted in the notification channel (Notification channel on the website, Notification Channel in /config), in the server language:

  • the text "Congratulations @Alex, you have reached level 12!", which mentions the member;
  • the level card;
  • a Show Profile button that opens the member's public page on the website (their level card and flame history).
Announcement of Alex reaching level 12 with the level card and the Show Profile button
The announcement posted in the notification channel.

If a role reward exists for this exact level, the text becomes "New role unlocked for @Alex: Niveau 10". The role name is written as plain text: the role itself is not mentioned.

Announcement of the Niveau 10 reward role unlocked by Alex
When a reward exists for that level, the announcement names the role obtained.

If a member gains several levels at once (for example with an XP giveaway), only one announcement is posted, for the level reached.

The level card

The card (1200 × 400 pixels) shows the member's avatar in a polaroid, the "LEVEL UP" tag, their total XP, the title "WELL DONE!", a progress bar towards the next level (percentage and XP still needed, for example "1,250 XP → LVL 13") and a trophy with the level number.

The background is the first one available among: the member's own level card background (personal plans, set in their website preferences), the server's Level image (website only), the server's welcome image, then the Dispatch.IO default image.

Note

Without a notification channel, no announcement is posted, but XP and role rewards work normally. In the chosen channel, the bot needs View Channel, Send Messages and Attach Files.

Role rewards

Giving a role at a given level, permanently or temporarily.

A reward links a role to a level (from 1 to 999, one role per level). It is set on the website (Role rewards) or in /config (Rewards).

At every level-up, the bot goes through all the server's rewards:

  • Normal reward: the role is given if the new level is greater than or equal to the reward level. Roles stack: a member at level 20 keeps those of levels 5, 10 and 15. A normal role is never removed automatically, even if the member's XP goes down or is reset.
  • Provisional reward (Provisional role, website only): the role is given only when reaching that exact level, then removed as soon as the member reaches a higher level. Example: provisional role at level 26 → given at level 26, removed at level 27.
RewardLevel 9 → 10Level 10 → 11
Normal at level 10 (@Niveau 10)Role givenRole kept
Provisional at level 10Role givenRole removed
Warning

Rewards are only checked at level-ups

If you add a reward for level 5 while Alex is already level 8, he only gets the role at his next level-up (level 9). The same goes after an XP change with /modify-xp or from the website. Deleting a reward does not take the role back from members who already have it.

To give a role, the bot needs Manage Roles and the role must be below the bot's highest role. In /config, roles that are too high or managed by an integration are refused. A role deleted from Discord is skipped.

Leaderboards and XP tracking

ToolWhat it shows or doesWhere
/rankA member's level card: position, level, XPLevels and leaderboards
/top levelThe server leaderboard by total XP, 5 members per pageLevels and leaderboards
Public leaderboardThe server leaderboard on the website, and each member's profile pageLeaderboards and rank cards
/modify-xpAdd or remove message or voice XP (administrators)Levels and leaderboards
/reset-levelsReset one member or the whole server (administrators)Levels and leaderboards
Members & XP page of the websiteSee members ranked by XP, edit or reset their XPLevels

XP changes made by an administrator (/modify-xp, /reset-levels, Members & XP page) trigger neither an announcement nor role changes. A reset does not remove reward roles already obtained.

Settings, default values and Premium

SettingWhereDefaultValues
Enable levelsWebsite, /configOffOn or off
Notification channelWebsite, /configNoneA text or announcement channel
Voice XPWebsite, /config (Voice Experience)201 to 50 per minute
Text XP min — maxWebsite, /config (Text Experience Min / Max)5 — 151 to 50, max strictly above min
Role rewardsWebsite, /configNoneOne role per level, levels 1 to 999
Provisional roleWebsiteNoServer with Dispatch.IO Basic or Ultimate
Level imageWebsiteNone (welcome image, then default image)PNG, JPG, WEBP or GIF, 5 MB max

Some values cannot be set per server: the 2-second delay between two messages, the short-message threshold (5 words or 20 characters) and the one-minute voice interval.

Premium plans

FeatureFreeBasicUltimate
Level system, XP, announcements, normal rewards, level imageYesYesYes
Provisional rewardsNo (treated as normal rewards)YesYes

A server chosen as the Ultimate slot of an Individual Ultimate subscription counts as Ultimate. Without Basic or Ultimate, rewards marked provisional stay saved but behave like normal rewards; they become provisional again on renewal. There is no XP bonus or multiplier. Plan details are on Premium plans and limits.

Common problems

ProblemLikely cause and fix
/rank does not exist on the serverThe level system is off: turn it on, the commands are added at that moment.
The system turned itself offThe bot lost Manage Roles or Manage Channels. Give them back, then turn the system on again.
The system is off after re-inviting the botRemoving and re-inviting the bot turns levels off. Turn them back on: members' XP is kept.
No level-up announcementNo notification channel, or missing bot permissions in that channel.
A member did not get their roleRole above the bot's role, missing Manage Roles permission, or reward added after their level-up (they'll get it at the next one).
A member spams but earns littleExpected: at most one message every 2 seconds counts, and short messages are halved.
After /modify-xp the level changed but nothing was announcedManual changes trigger neither announcements nor roles. The member gets their rewards at their next level-up.

Learn more: Flames (streaks), the other engagement module, and Permissions and roles.

Updated on October 15, 2026