Lunova
Lunova
/ Documentation
All pages Dashboard

Leveling & XP

Members earn XP for chatting and level up over time. Level-ups can announce in the channel, by DM, or in a dedicated channel — and can automatically grant reward roles (e.g. reach level 10 → get the Veteran role).

ℹ️ Leveling is off by default. Enable it with /levelconfig toggle on or from Dashboard → Leveling.

How XP works

  • Each message grants a random 15–25 XP (configurable).
  • A 60-second cooldown (configurable) prevents spam farming — messages during the cooldown grant nothing.
  • XP required per level follows the classic curve 5·n² + 50·n + 100: level 1 costs 100 XP, level 2 costs 155 more, and so on.
  • Bots never earn XP, and commands don't count as chatter.

Commands

/level — rank card

Renders a rank card image with your avatar, level, XP progress bar, and leaderboard position. Add a user to look someone else up.

/level [user]

Prefix aliases: rank, lvl.

/leaderboard — server top 10

The server's top members by total XP, 10 per page with Previous/Next buttons. Your own rank shows in the footer.

/leaderboard

Prefix aliases: lb, top.

/levelconfig — admin configuration Manage Server

SubcommandWhat it does
viewShow the full current configuration
toggle on|offMaster switch for the whole system
rate min max cooldownXP per message range and cooldown seconds
announce mode [channel]here · dm · silent · channel (fixed channel)
roleadd level roleGrant a role when members reach a level
roleremove levelRemove the reward at that level
rolestack stack|replaceKeep all earned roles, or only the highest
channel #channel on|offEnable/disable XP in a specific channel
setxp user xpSet a member's total XP directly
reset [user]Wipe one member's XP — or the whole server's if omitted

Reward roles

Add level → role mappings with /levelconfig roleadd or on the dashboard. When a member levels up, every reward at or below their new level is granted automatically.

/levelconfig roleadd level:10 role:@Veteran /levelconfig roleadd level:25 role:@Elder
⚠️ The bot can only assign roles below its own highest role. If a reward isn't being granted, move the Lunova role above it in Server Settings → Roles.

Stack vs. replace

  • Stack (default): members keep every reward role they've earned.
  • Replace: members keep only the highest earned reward; lower ones are removed on level-up.

Disabling XP in channels

Turn XP off in spammy channels (bot commands, counting games, etc.):

/levelconfig channel channel:#bot-spam state:off

Or select multiple channels at once on the dashboard's Leveling page. Messages there simply grant nothing — no error, no announcement.

Dashboard

Everything above is also editable at Dashboard → your server → Leveling: the master toggle, XP rates and cooldown, announcement mode, the custom level-up message (placeholders {user}, {level}, {server}), reward roles, and the channel blocklist. Bot commands and the dashboard share the same storage, so changes made in one place show up in the other immediately.

✓ Tip: set announcements to channel mode pointing at a #level-ups channel to celebrate milestones without cluttering conversation channels.