Leveling
XP for taking part, roles for sticking around, and how to stop it being gamed.
Members earn XP for messages and for time in voice, and levels come out of that. Whether it makes your server better depends entirely on what a level gets you - a number nobody can spend is a number nobody cares about.
Setting it up
- 1Run /setup_level to switch it on and see the settings in one place.
- 2Run /setup_levelup_channel and pick where level-up messages go. Putting them in general is the common choice and the common regret: in a busy server it is a message every few minutes.
- 3Write the message with .setup_levelup_message. Same variables as the welcome page, plus the level itself.
- 4Add role rewards with /setup_level_role - a level and a role. This is the part that makes leveling matter.
- 5Exclude the channels where XP makes no sense: bot commands, counting, spam. Use /levelsetup blacklist_add.
- 6Check it with .level after posting a few messages.
Tuning
| Command | What it controls |
|---|---|
/levelsetup config_xprate | A multiplier on everything. Above 1 makes levels come faster. Changing this does not recalculate anybody - it changes what happens from now on. |
/levelsetup config_cooldown | Seconds between messages that earn XP. This is the anti-spam setting: without it, ten one-word messages beat one real one. 60 is the usual answer. |
/levelsetup blacklist_add | A channel or role that earns nothing. Bot-command channels belong here. |
/levelsetup bypass_add | A channel or role that ignores the blacklist. For the one channel inside an excluded category that should still count. |
/levelsetup view | Everything above, as it currently stands. |
Fixing individual people
| Command | What it does |
|---|---|
/levelsetup addxp | Give XP. For an event prize, or to put back what a mistake took away. |
/levelsetup removexp | Take XP away. |
/levelsetup setlevel | Put somebody at a level directly. |
/levelsetup reset_user | Back to zero, one person. |
/levelsetup reset_all | Back to zero, everybody. Asks for confirmation, and cannot be undone. |
/fixroles | Hand out the level roles somebody should already have. For after you add a reward for a level people are already past. |
Level roles are only given out when somebody levels up. Add a reward for level 10 and the members who are already level 30 will not get it until they reach the next threshold. /fixroles is the fix, and it can run for one person or for everybody.
What members see
- .level - their card, with XP and rank. .lvl and .rank are the same command.
- .leaderboard - the server's top members. .lb and .top work too.
- .lbv and .lbm - voice time and message count specifically.
- /change_theme - the look of their own card. Cosmetic, and free.
From the website
The Leveling module has the rate, the cooldown, the announcement channel, the message, and the level roles as a list you add rows to. The level roles in particular are much less work as a form than as one command per role.