Docs

Leveling & XP

Engage your community with levels and rewards

📈 What is the Leveling System?

The leveling system rewards members for being active in your server. Think of it like a video game - the more someone chats, the more experience points (XP) they earn, and the higher their level gets.

You can give special roles to members when they reach certain levels, like "Level 10 Member" or "Active User". This encourages people to chat more and stay engaged!

How to Set Up Leveling (Step-by-Step)

Follow these steps. Each step tells you exactly where to click in the dashboard.

01

Open the Dashboard

Go to modora.gg/dashboard and select your server. If Leveling is disabled, open the Modules tab, enable Leveling, then click the Leveling card.

Dashboard → Your Server → Modules → Leveling
02

Enable Leveling

On the Leveling page, find the enable switch at the top. Turn it ON so members start earning XP.

Leveling → Enable switch (turn ON)
03

Set XP Per Message

Find the XP per message fields. There is a minimum and a maximum; the maximum falls back to 15 and the minimum to that maximum minus 5. Higher means faster levelling.

Leveling → XP per message field
04

Set Cooldown

Find Cooldown, the number of seconds between two messages that earn XP. The default is 60 and the lowest you can set is 0.

Leveling → Cooldown field (e.g. 60)
05

Level-Up Channel (Optional)

Select a channel where level-up messages appear (e.g. #level-ups). If empty, level-ups happen silently. Use the channel dropdown.

Leveling → Level-up channel dropdown
06

Add Role Rewards (Optional)

Find 'Role Rewards' or 'Level Roles'. Add roles: e.g. Level 5 → Member, Level 10 → Active. Modora auto-assigns when members reach those levels. Ensure Modora's role is above these roles in Discord!

Leveling → Role Rewards → Add level + role
07

Exclude Channels (Optional)

Channels where people DON'T earn XP (e.g. #rules, #announcements). Add them to the excluded list. Leave empty for XP everywhere.

Leveling → Excluded channels
08

Save

Click 'Save' or 'Save Settings'. Members will now earn XP when they chat! Test with /levels in Discord.

Leveling → Save button

✅ That's it!

Members will now earn XP when they chat, and you can see their levels with /levels!

Leveling Commands

Here are the commands members can use to check their progress:

/levels [user]

See your level, XP, and progress to next level. You can also check someone else's rank by mentioning them.

/levels or /levels @username

/leaderboard

The server leaderboard. Takes a page number, or a member to look up their rank directly.

/levels

Shows your own level, XP and rank when no user is given

Settings Explained

XP Per Message

How much XP someone gets for each message. Higher = faster leveling. Most servers use 15-25 XP.

Start with 20 XP and adjust based on how fast you want people to level up.

Cooldown

How many seconds between messages before someone can earn XP again. This prevents spam. 60 seconds (1 minute) is recommended.

If you set this too low, people might spam messages. Too high, and active chatters won't earn much XP.

Level-Up Channel

Where level-up messages appear. If you don't set this, level-ups happen silently (no message).

Use a #level-ups or #announcements channel so everyone can celebrate when someone levels up!

Role Rewards

Automatically give roles when members reach certain levels. For example: Level 5 = 'Member', Level 10 = 'Active Member'.

Make sure Modora's role is above the roles you want to give, or it won't be able to assign them.

Excluded Channels

Channels where people DON'T earn XP. Useful for #rules, #announcements, or #bot-commands.

Don't exclude too many channels, or people won't earn much XP!

The actual values

What the Leveling page accepts, and what it falls back to when you leave a field alone.

  • XP per message: a minimum and a maximum, each at least 1. Leave the minimum empty and it becomes the maximum minus 5. The default maximum is 15. Put them the wrong way round and they are swapped for you.
  • Cooldown: seconds between two messages that earn XP. Default 60, minimum 0.
  • Voice XP: on by default, 1 to 255 XP per minute, default 5.
  • Level curve: XP per level 50 to 500 (default 100) and a multiplier of 1 to 5 (default 1.5). The multiplier is what makes each level cost more than the one before.
  • Role rewards: a level and a role. Stacking is on by default, so a member keeps the earlier reward roles as well.
  • Auto-cleanup on leave: off by default. When on, someone's XP and leaderboard entry are removed when they leave the server.

Info

Level-up messages can go out as text or as an embed, in a channel you pick. Leave the channel empty and levelling happens silently.

How many messages is a level?

Move the sliders and see how many messages a member needs. The numbers use the same formula the bot runs.

Live example

Level calculator

The starting values are the system defaults: 10 to 15 XP per message with a 60 second cooldown.

This example runs entirely in your browser. Nothing is sent, nothing is saved, and no server is touched.

1 to 100, the same range as the dashboard field.

1 to 100, the same range as the dashboard field.

0 to 300. Messages sent inside the cooldown earn nothing.

Average over many messages: 12.5 XP per message that counts.

Level 5

128

messages

XP needed
1,600
Fastest
2h 7m

Level 10

648

messages

XP needed
8,100
Fastest
10h 47m

Level 25

4,608

messages

XP needed
57,600
Fastest
3d 4h

The formula

xpForLevel(level) = (level - 1)^2 * 100
level(totalXp)    = floor(sqrt(totalXp / 100)) + 1
level(57,600 XP) = 25

The 100 is fixed in the bot code. The 'XP per level' and 'level multiplier' fields in the dashboard are stored but the bot does not read them, so they are not sliders here.

The message count is an average: each message grants a whole number of XP drawn evenly between your minimum and maximum. The fastest time assumes every message lands right after the cooldown expires.

Adjusting XP by hand

The /xp command is Administrator only.

/xp give

Add XP to a member.

/xp remove

Take XP off a member.

/xp set

Set a member's XP to an exact amount.

/xp reset

Reset a member's XP to 0.

Common Questions

Automatic leaderboard cleanup

Enable the "Auto-cleanup on member leave" toggle in Dashboard → Guild → Leveling to automatically remove XP and leaderboard data when someone leaves your server.

💡 Tip:

If your server gets very large, you might want to periodically clean up inactive members' levels to keep the leaderboard fresh. This is optional and can be done from the dashboard.

Was this page helpful?