Skip to content
Axaro

Levels

Live

XP 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.

SettingDefault
xpPerMessageBetween 15 and 25 XP
cooldownSeconds60 seconds
multiplier1, to speed progress up or slow it down
noXpChannelIdsNo channel excluded
noXpRoleIdsNo role excluded
Time spent in voice can earn XP too: see the next section.

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.

SettingDefault
voiceTime.xpPerIntervalBetween 15 and 25 XP per slice
voiceTime.intervalMinutes5 minutes
voiceTime.milestonesNo milestone, for example 10 h, 50 h, 100 h
voiceTime.weeklyTop 3, Monday at 6 pm, in the chosen time zone
voiceTime.minMembers1: time counts even alone
voiceTime.dailyCapMinutes0: 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.

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, voice or this week
/voicetimeTime in voice, rank, this week and next milestone
/topvoiceThe voice top 10 in one card: podium, who is in voice, your place
/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.

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.

Discord leveling bot: XP, leaderboard, roles · Axaro