Skip to content
Axaro

Levels

Live

XP per message, server leaderboard and reward roles.

How XP is earned

Each message earns a random amount within an adjustable range, once per quiet period. Without that delay, the leaderboard would reward flooding rather than presence.

SettingDefault
xpPerMessageBetween 15 and 25 XP
cooldownSeconds60 seconds
multiplier1, to speed progress up or slow it down
noXpChannelIdsNo channel excluded
noXpRoleIdsNo role excluded
XP is earned per message, not per minute spent in voice. Tracking voice would require an extra Discord access that has to be justified to them; the day it is decided, it will get its own setting.

The curve

The cost of a level grows with its square: the first ones come fast, the next ones are earned. The formula is fixed rather than configurable, because changing it afterwards would re-rank everyone. The pace is set with the multiplier.

LevelTotal XP
5≈ 1,200 XP
10≈ 5,000 XP
25≈ 45,000 XP
50≈ 300,000 XP

Reward roles

A reward ties a level to a role. It can remove those of the lower levels, for anyone who wants a single visible role at a time rather than a collection.

Everything is computed before writing: a single Discord call rather than an add followed by a removal, so there is no instant where the member has neither the old role nor the new one. Roles out of the bot’s reach are skipped.

The commands

CommandEffect
/rankLevel, rank, messages and progress bar
/leaderboardServer leaderboard, ten per page
/xp giveAdds XP to a member
/xp setSets their total XP
/xp resetResets it to zero

Leaving and coming back

A member who leaves drops out of the leaderboard without losing their XP: the line stays, only their leave date changes. If they come back, they find exactly where they were. A leaderboard full of people who left interests nobody.

Discord leveling bot: XP, leaderboard, roles · Axaro