Leveling & XP System
Gamify your server with a visual rank card, server-wide leaderboard, and full admin controls over user experience.
Kythia's Leveling system turns your Discord server into a persistent RPG-like experience. Members earn XP simply by talking, unlock new levels, and can show off a stunning, auto-generated rank card powered by kythia-arts.
How XP Works
- Members earn XP automatically every time they send a message in a text channel.
- There's a built-in cooldown to prevent spam-farming XP.
- The XP required to level up scales up with each level (a progressive curve).
- When a user levels up, Kythia sends a congratulatory message in the channel.
User Commands
Rank Profile Card
/leveling profile [user]
Generates a beautiful, custom-rendered rank card image for you or another user. The card displays:
- Avatar with a colored border
- Username and customizable tag (
Level X) - Current XP and XP required for the next level
- A visual XP progress bar (colored to match your bot's accent color)
- A custom background image (if configured by the bot owner)
BagelFatOne-Regular font. Bot owners can set a custom backgroundUrl in kythia.config.js for a unique look.Server Leaderboard
/leveling leaderboard
Displays the top-ranked members in your current server, sorted by level and XP. The leaderboard is paginated so you can browse through all members.
Admin Commands
These commands require the Manage Guild permission.
Set a User's Level
/leveling set user: @User level: <number>
Instantly sets a user's level to any number. Their XP is reset to 0 at the new level. Useful for rewarding members, resetting a user's progress, or initial setup.
Add XP to a User
/leveling xp-add user: @User xp: <amount>
Grants a specific amount of XP to a user. The system automatically handles level-ups if the added XP pushes them over the threshold.
Set a User's XP Directly
/leveling xp-set user: @User xp: <amount>
Sets a user's raw XP value to a precise number, without changing their level. Advanced tool for fine-grained progress management.
Add a Level Role Reward
/leveling add level: <number> role: @Role
Assigns a role to be automatically granted when a user reaches a specific level. You can call this multiple times to build a tiered role reward system.
| Level Reached | Example Role |
|---|---|
| 5 | @Active Member |
| 10 | @Regular |
| 25 | @Veteran |
| 50 | @Legend |
Admin Configuration
Configure the Leveling addon in kythia.config.js:
leveling: {
active: true,
backgroundUrl: 'https://your-cdn.com/leveling-bg.png', // Custom card background
},
backgroundUrl to any publicly accessible image URL to brand the rank card to your server's theme.bot.color hex value from your config for a cohesive look.