drain can give people xp for talking and hand out roles when they reach a level. it’s off until a manager turns it on, and nothing about it can be bought.

setting it up

open the dashboard, pick your server and go to leveling. switch it on, pick the xp rate, say where a level up is said and what it says, add role rewards and whether lower ones are kept, and pick the channels and roles that earn nothing. then save.

how xp builds up

  • a message earns 15 to 25 xp, picked at random, times the server’s rate
  • a member earns at most once a minute in each server. ten messages in a minute earn the same as one, so spamming does nothing
  • bots, webhooks and discord’s own system messages earn nothing
  • an ignored channel takes its threads with it, and an ignored category takes every channel in it. somebody with an ignored role earns nothing anywhere

the curve

going from level n to n + 1 costs 5n² + 50n + 100 xp. it’s the same curve MEE6 uses, so a server coming from it knows the numbers. the highest level is 500.

rewards

  • drain checks the role when you add it: a role above drain’s highest role, or above yours, is refused straight away
  • with stack on (the default) members keep every reward role they reach. with stack off they keep only the highest, and the lower ones are taken away
  • roles are checked every time somebody earns, so a reward you add later reaches people already above that level the next time they talk
  • somebody who leaves and comes back gets their reward roles back when they join
  • removing a reward doesn’t take the role back from people who already have it, and deleting a role in discord removes its reward
  • ,level reward on its own, or ,level rewards and ,level roles, lists them the same as ,level reward list

level up messages

level ups are silent until you pick where they go: the message can use {user}, {level} and {server}. it only pings if you turn ping on, and then only the member who levelled up, never @everyone or a role.

bringing levels over from another bot

your old bot already gave out level roles, so your members still have them. add those roles as rewards at the level each one stood for, then bring everybody over at once: drain looks at every member, finds the highest reward role they hold, and puts them at the start of that level. it says how many people that is and asks before changing anything.
  • nobody is ever lowered. somebody already past their role’s level keeps their xp
  • bots are skipped, and so is anybody without a reward role
  • it’s safe to run again, for example after adding a reward you forgot
for one person, ,level set @coy 25 puts them at the start of level 25. they keep earning from there, and any reward roles up to that level are handed out.

every command

worth knowing

  • xp shows up straight away on ,rank and the leaderboard, even though it’s saved in batches once a minute
  • turning leveling off keeps everybody’s xp. turning it back on carries on from there
  • ,rank is a drawn card: your avatar, level, place and a progress bar, with your own avatar blurred behind it. if the picture can’t be drawn, drain answers in text instead
  • there are no xp boosts, no voice xp and no card backgrounds to buy. that’s on purpose