Levels
LiveXP per message and in voice, 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.
| Setting | Default |
|---|---|
xpPerMessage | Between 15 and 25 XP |
cooldownSeconds | 60 seconds |
multiplier | 1, to speed progress up or slow it down |
noXpChannelIds | No channel excluded |
noXpRoleIds | No role excluded |
Time in voice
Once turned on, the bot counts everyone’s time in voice channels, minute by minute. Three uses, each with its own switch: XP per slice of time, feeding the same levels and reward roles as messages; roles for milestones of total hours; and a role handed every Monday to the most present of the week, with a podium in the channel you pick.
| Setting | Default |
|---|---|
voiceTime.xpPerInterval | Between 15 and 25 XP per slice |
voiceTime.intervalMinutes | 5 minutes |
voiceTime.milestones | No milestone, for example 10 h, 50 h, 100 h |
voiceTime.weekly | Top 3, Monday at 6 pm, in the chosen time zone |
voiceTime.minMembers | 1: time counts even alone |
voiceTime.dailyCapMinutes | 0: no cap |
By default, all time counts. For servers that want them, four guards exist: a minimum number of people in the channel, ignoring the AFK channel, ignoring deafened members, and a daily cap. Excluded channels and no-XP roles never count.
With publicLeaderboard, the ranking becomes a public page to share: axaro.net/classement/<server>, with XP, voice and the current week.
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.
| Level | Total 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
| Command | Effect |
|---|---|
/rank | Level, rank, messages and progress bar |
/leaderboard | Server leaderboard, ten per page: XP, voice or this week |
/voicetime | Time in voice, rank, this week and next milestone |
/topvoice | The voice top 10 in one card: podium, who is in voice, your place |
/xp give | Adds XP to a member |
/xp set | Sets their total XP |
/xp reset | Resets 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.
The rank card
/rank replies with an image card: avatar, level, rank and progress bar. The “/rank as an image” setting switches back to the usual embed.