Leveling

XP-based activity system with level rewards

The Leveling module rewards active members with experience points (XP) for text messages and time spent in voice channels. As their Level increases, users unlock individual roles. Streaks reward daily activity; multipliers highlight special events or channels.

Setup

  1. Enable the Leveling module in the dashboard
  2. Choose an announcement mode (same channel, dedicated channel, DM, or both)
  3. Optional: customize the announcement template and enable the Rank card
  4. Create role rewards: assign a level threshold and one or more roles
  5. Optional: configure no-XP channels or no-XP roles
  6. Save

XP rates

SourceAmountLimit
Text message15–25 XP (random)Once per 60 seconds per user
Voice minute5 XPOnce per minute (heartbeat every 60 s)
Minimum message length3 characters (shorter messages grant no XP)
A very active user sends one message per minute: 15–25 XP × 60 minutes = 900–1,500 XP/hour. They also spend 60 minutes in voice: +300 XP. Total: up to 1,800 XP/hour.

Level curve

TeraOne uses the MEE6-compatible formula. The XP required to advance from Level n to n+1 (the span) is:

math
span(n) = 5n² + 50n + 100

Total XP required for selected levels (cumulative):

LevelTotal XP required
1100
51,075
104,550
2025,550
50206,550
1001,671,550
The formula is MEE6-compatible: users migrating from MEE6 keep their level if you import their existing XP values.

Daily streaks

Users who send at least one message per day build a streak. At streak milestones, they receive a one-time bonus XP boost on top of the daily streak bonus.

Daily streak bonus: +10 XP per streak day

Freebie: once every 30 days, one inactive day can be skipped without breaking the streak.

Streak daysOne-time milestone bonus
3 days+50 XP
7 days+100 XP
14 days+200 XP
30 days+500 XP
Streak milestone bonuses and the daily streak bonus are added together. On day 7: +100 (milestone) + 10×7 = +170 XP total bonus.

Multipliers

Multipliers change the base XP for specific channels, roles, or time-limited events. The total multiplier is capped at 125×. Multiple multipliers are multiplied together, not added.

TypeTargetRange
ChannelSingle channel0.1× – 5×
RoleUsers with the role0.1× – 5×
EventTime period with end time0.1× – 5×

XP exclusions

No-XP channels and no-XP roles let you exclude specific areas from the XP system. Useful for bot spam channels or admin roles that should not accumulate XP unfairly.

Announcement modes

ModeDescription
offNo level-up post — XP is still awarded
same_channelLevel-up message in the same channel where the message was sent
dedicated_channelAll level-up posts go to a dedicated channel
dmLevel-up notification via direct message
both_dedicated_and_dmBoth dedicated channel and DM

Announcement template

The default text is: 🎉 {user_mention} reached Level {level}! — it can be customized freely.

VariableContent
{user_mention}Mention of the user
{user}Username without mention
{level}New level
{old_level}Previous level
{xp_total}User's total XP
{rank}Current Rank on the Leaderboard
{rolereward}Name of the unlocked role reward (if any)

Role rewards

Role rewards are automatically assigned when a user reaches a level threshold. Each reward can include up to 3 roles at once. Maximum 50 rewards per server.

Stack mode: users keep all previously earned roles (default). In single mode, only the current matching reward is assigned and older ones are removed.

Pause conditions

XP can be automatically paused for certain states:

  • Discord timeout: if a user is silenced via Discord timeout, they earn no XP (configurable).
  • Quarantine: if the Anti-Alt module quarantines a user, they earn no XP (configurable).

Slash-Commands

slash
/rank [@user] — shows the Rank card for yourself or another member
slash
/leaderboard — shows the server Leaderboard (top 10)
slash
/streak — shows your current streak and milestones
slash
/xp give <@user> <amount> — Admin: manually give XP
slash
/xp remove <@user> <amount> — Admin: remove XP
slash
/xp set <@user> <amount> — Admin: set XP to an exact value
slash
/xp reset <@user> — Admin: reset all XP for a user to 0

Troubleshooting

User gets no XP when sending messages
Check: (1) Is the module enabled? (2) Is the channel on the no-XP channel list? (3) Does the user have a no-XP role? (4) Has the cooldown elapsed (60 s)? (5) Is the message shorter than 3 characters?
Level-up message does not appear
Check the announcement mode and whether the bot has write permissions in the target channel. With "same_channel", the bot needs write access in every channel where users send messages.
Role reward is not assigned
The TeraOne role must be above the reward role in the hierarchy. Also check that the user has actually reached the required level.

Frequently asked questions

Is XP awarded for bot messages?
No. TeraOne ignores all messages from bots (including itself).
Can I import XP data from MEE6?
The level formula is identical to MEE6 — you can transfer XP values directly and the levels will match.
What happens to the streak if I missed a day?
Once every 30 days you get a freebie: one missed day can be bridged without losing the streak. If you miss two or more days in a row, the streak resets to 1.
Can a user hide their Leaderboard profile?
Yes, users can disable their Leaderboard visibility under server settings → privacy.
Leveling · TeraOne Docs · TeraOne