If you're searching for a Discord leveling bot, NoriaFlow's Leveling node covers the whole job (XP per message, automatic levels, role rewards) free and running on your own bot.
Why people look for a leveling bot
- Leveling sits behind a paywall on some bots: features like a cooldown, XP range, or channel exclusion are often gated behind a premium tier.
- Flat XP is easy to game: a bot that awards the exact same XP per message rewards spamming short messages as much as real conversation.
- No channel control: XP farmed in a bot-commands or rules channel dilutes what leveling is meant to reward.
How NoriaFlow's leveling works
- XP per message, with an optional range: award a flat amount, or a random range (e.g. 15–25) each message so it's harder to game by message-spamming.
- Cooldown between XP gains: a member only earns XP once per configurable window, however often they message.
- Channel exclusion: list channels that never earn XP, like #bot-commands or #rules.
- Role rewards per level: grant a role the first time a member reaches a level. Members collect every reward they pass by default, or wear only their highest rank if you prefer.
- Bonus and no-XP roles: boosters or subscribers earn a multiple of the normal award; muted members earn nothing at all.
- Level-up announcements, or silent: announce in the same channel, a dedicated channel, or turn announcements off entirely while still granting role rewards.
- Free in beta: the whole feature is included at no cost while NoriaFlow is in open beta.
Every Leveling option, explained
Attach the node to a Discord Message trigger and configure:
- Server: XP is tracked separately per server, so one bot can level several communities independently.
- XP per message: the amount awarded (default 15). Set the optional Maximum XP higher to award a random amount in that range instead. E.g. 15–25, which makes spam farming less effective.
- XP needed per level: level = total XP divided by this number, rounded down. With the default of 100, a member hits level 3 at 300 XP. Raise it for slower, more prestigious levels.
- Cooldown: a member earns XP at most once per this many seconds (default 60), no matter how fast they type.
- No-XP channels: messages in these channels never earn XP.
- Announcement channel: leave empty to celebrate the level-up right where the message was sent, or route all announcements to one channel like
#level-ups. - Level-up message: your own text, where
{{user}}becomes a mention,{{level}}the new level and{{rank}}their place on the server board. The editor may flag these as unknown variables. That warning is expected and harmless, since the node fills them in itself. - Silent level-ups: role rewards keep flowing, announcements stop entirely.
- Roles that earn no XP: members holding any of these gain nothing, which is how a muted role stops counting.
- Bonus XP roles and multiplier: members holding any of these earn the multiplier times the normal award. Holding several bonus roles still multiplies once, not once per role.
- Role rewards: one role per chosen level, granted the first time a member reaches it.
- Keep reward roles from earlier levels: on by default, so members collect every tier they pass. Turn it off for rank-style roles, where reaching a new tier swaps the previous one out.
The node also outputs the member's total XP, current level, a "leveled up?" flag and their rank on the server. You can branch after it: for example, an If node that fires a special congratulations only at level 50.
Add a leaderboard
The Leveling node handles XP and roles. For a public "most active members" ranking, add the Scores node. On each message it increments a per-member score on a named board (scope it per server with a key like xp:{{guild_id}}). Its Top operation reads back a real Top-N ranking (rank, member, score) that you can post from a slash command or a weekly Schedule trigger. An optional expiry turns it into a monthly board that resets itself. The Discord Activity Leaderboard template wires the whole thing.
Moving your community from another leveling bot
Honest answer first: there is no XP import. Levels on NoriaFlow start at zero. Here's how communities make that switch without a revolt:
- Frame it as a season reset. Announce a date, call it Season 2, and make the fresh start the point. Everyone gets a shot at the top again.
- Keep old reward roles as legacy badges. Don't delete the roles your previous bot granted; rename them ("OG Level 50") so long-time members keep their status.
- Match the feel. Set an XP range and a one-minute cooldown so progression feels familiar from day one.
- Run both briefly, announce once. Keep your old bot running during a short overlap if you want, but disable its level-up messages so members don't get doubled announcements.
Set it up
- Connect your own Discord bot to NoriaFlow.
- Open the Discord Activity Leaderboard template or add a Leveling node after a Discord Message trigger.
- Set your XP amount (or range), cooldown, and any role rewards per level.
- Test, then Activate: members start earning XP on their next message.
Make it your own
- Reward milestones, not just activity: grant a role at level 5, another at level 10, and members keep both.
- Keep it low-key: turn off the public announcement and let role rewards do the talking.
- Gate other automations on it: a level-milestone role can also become a required role for a giveaway, so only active members can enter.
That's a leveling system you fully control: free during the beta, no code. Start building free, see what else you can build on the same bot in the template library, or build your first workflow to get started.
Setup checks and next steps
- Check the selected bot, server and destination channel. Role actions also require the bot role to sit above the role it changes.
- Test with a dedicated channel or member before enabling this automation for everyone.
- If a step fails, inspect its error and inputs rather than reconnecting every account.
See the extension setup guide for adding and reusing services, the node reference for parameters, and testing and debugging for execution diagnostics.