Your friendly neighborhood leveling system
Earn experience by chatting in text and voice channels, compare levels with your friends, customize your profile and view various leaderboards!
View Weekly Leaderboard
- Usage:
[p]weekly [stat=exp] [displayname=True]
- Aliases:
week
- Checks:
server_only
View Last Week's Leaderboard
- Usage:
[p]lastweekly
- Checks:
server_only
Configure Weekly LevelUp Settings
- Usage:
[p]weeklyset
- Restricted to:
ADMIN
- Aliases:
wset
- Checks:
server_only
Toggle auto reset of weekly stats
- Usage:
[p]weeklyset autoreset
Set number of winners to display
Due to Discord limitations with max embed field count, the maximum number of winners is 25
- Usage:
[p]weeklyset winners <count>
Toggle weekly stat tracking
- Usage:
[p]weeklyset toggle
Set channel to announce weekly winners
- Usage:
[p]weeklyset channel <channel>
Set bonus exp for top weekly winners
- Usage:
[p]weeklyset bonus <bonus>
Set role to award top weekly winners
- Usage:
[p]weeklyset role <role>
Toggle whether all winners get the role
- Usage:
[p]weeklyset roleall
View the current weekly settings
- Usage:
[p]weeklyset view
Set hour for weekly stats reset
- Usage:
[p]weeklyset hour <hour>
Reset the weekly leaderboard manually and announce winners
- Usage:
[p]weeklyset reset <yes_or_no>
Set day for weekly stats reset
0 = Monday
1 = Tuesday
2 = Wednesday
3 = Thursday
4 = Friday
5 = Saturday
6 = Sunday
- Usage:
[p]weeklyset day <day>
Toggle whether to ping winners in announcement
- Usage:
[p]weeklyset ping
Remove role from previous winner when new one is announced
- Usage:
[p]weeklyset autoremove
View the LevelUp leaderboard
- Usage:
[p]leveltop [stat=exp] [globalstats=False] [displayname=True]
- Slash Usage:
/leveltop [stat=exp] [globalstats=False] [displayname=True]
- Aliases:
lvltop, topstats, membertop, and topranks
- Checks:
server_only
View the leaderboard for roles
- Usage:
[p]roletop
- Checks:
server_only
View User Profile
- Usage:
[p]profile [user]
- Slash Usage:
/profile [user]
- Aliases:
pf
- Cooldown:
3 per 10.0 seconds
- Checks:
server_only
Prestige your rank!
Once you have reached this servers prestige level requirement, you can
reset your level and experience to gain a prestige level and any perks associated with it
If you are over level and xp when you prestige, your xp and levels will carry over
- Usage:
[p]prestige
- Slash Usage:
/prestige
- Checks:
server_only
Customize your profile
- Usage:
[p]setprofile
- Slash Usage:
/setprofile
- Aliases:
myprofile, mypf, and pfset
- Checks:
server_only
Toggle whether your nickname or username is shown in your profile
- Usage:
[p]setprofile shownick
- Slash Usage:
/setprofile shownick
View the all available backgrounds
- Usage:
[p]setprofile backgrounds
- Slash Usage:
/setprofile backgrounds
- Cooldown:
1 per 5.0 seconds
Set a color for your username
For a specific color, try Google's hex color picker
Set to default
to randomize the color each time your profile is generated
- Usage:
[p]setprofile namecolor <color>
- Slash Usage:
/setprofile namecolor <color>
- Aliases:
name
Set a font for your profile
To view available fonts, type [p]myprofile fonts
To revert to the default font, use default
for the font_name
argument
- Usage:
[p]setprofile font <font_name>
- Slash Usage:
/setprofile font <font_name>
Toggle a slight blur effect on the background image where the text is displayed.
- Usage:
[p]setprofile blur
- Slash Usage:
/setprofile blur
Remove a default font from the cog's fonts folder
- Usage:
[p]setprofile remfont <filename>
- Slash Usage:
/setprofile remfont <filename>
- Restricted to:
BOT_OWNER
Set your profile image style
default
is the default profile style, very customizablerunescape
is a runescape style profile, less customizable but more nostalgic- (WIP) - more to come
- Usage:
[p]setprofile style <style>
- Slash Usage:
/setprofile style <style>
Set a background for your profile
This will override your profile banner as the background
WARNING
The default profile style is wide (1050 by 450 pixels) with an aspect ratio of 21:9.
Portrait images will be cropped.
Tip: Googling "dual monitor backgrounds" gives good results for the right images
Here are some good places to look.
dualmonitorbackgrounds
setaswall
pexels
teahub
Additional Options
- Leave
url
blank or specifydefault
to reset back to using your profile banner (or random if you don't have one) random
will randomly select from a pool of default backgrounds each timefilename
run[p]mypf backgrounds
to view default options you can use by including their filename- Usage:
[p]setprofile background [url=None]
- Slash Usage:
/setprofile background [url=None]
- Aliases:
bg
Remove a default background from the cog's backgrounds folder
- Usage:
[p]setprofile rembackground <filename>
- Slash Usage:
/setprofile rembackground <filename>
- Restricted to:
BOT_OWNER
Add a custom font to the cog from discord
Arguments
preferred_filename
- If a name is given, it will be saved as this name instead of the filename
Note: do not include the file extension in the preferred name, it will be added automatically
- Usage:
[p]setprofile addfont [preferred_filename=None]
- Slash Usage:
/setprofile addfont [preferred_filename=None]
- Restricted to:
BOT_OWNER
Get the folder paths for this cog's backgrounds
- Usage:
[p]setprofile bgpath
- Slash Usage:
/setprofile bgpath
- Restricted to:
BOT_OWNER
View your profile settings
- Usage:
[p]setprofile view
- Slash Usage:
/setprofile view
Add a custom background to the cog from discord
Arguments
preferred_filename
- If a name is given, it will be saved as this name instead of the filename
DISCLAIMER
- Do not replace any existing file names with custom images
- If you add broken or corrupt images it can break the cog
- Do not include the file extension in the preferred name, it will be added automatically
- Usage:
[p]setprofile addbackground [preferred_filename=None]
- Slash Usage:
/setprofile addbackground [preferred_filename=None]
- Restricted to:
BOT_OWNER
View the available fonts you can use
- Usage:
[p]setprofile fonts
- Slash Usage:
/setprofile fonts
- Cooldown:
1 per 5.0 seconds
Get folder paths for this cog's fonts
- Usage:
[p]setprofile fontpath
- Slash Usage:
/setprofile fontpath
- Restricted to:
BOT_OWNER
Set a color for your server stats
For a specific color, try Google's hex color picker
Set to default
to randomize the color each time your profile is generated
- Usage:
[p]setprofile statcolor <color>
- Slash Usage:
/setprofile statcolor <color>
- Aliases:
stat
Set a color for your level bar
For a specific color, try Google's hex color picker
Set to default
to randomize the color each time your profile is generated
- Usage:
[p]setprofile barcolor <color>
- Slash Usage:
/setprofile barcolor <color>
- Aliases:
levelbar, lvlbar, and bar
Reward a good noodle
- Usage:
[p]stars [user]
- Slash Usage:
/stars [user]
- Aliases:
givestar, addstar, and thanks
- Checks:
server_only
View the Star Leaderboard
- Usage:
[p]startop [globalstats=False] [displayname=True]
- Aliases:
topstars, starleaderboard, and starlb
- Checks:
server_only
Configure LevelUp Star Settings
- Usage:
[p]starset
- Restricted to:
ADMIN
- Checks:
server_only
View Star Settings
- Usage:
[p]starset view
Toggle whether the bot auto-deletes the star mentions
Set to 0 to disable auto-delete
- Usage:
[p]starset mentiondelete <delete_after>
Set the star cooldown
- Usage:
[p]starset cooldown <cooldown>
Toggle star reaction mentions
- Usage:
[p]starset mention
Owner Only LevelUp Settings
- Usage:
[p]levelowner
- Restricted to:
BOT_OWNER
- Aliases:
lvlowner
- Checks:
server_only
Toggle ignoring bots for XP and profiles
USE AT YOUR OWN RISK
Allowing your bot to listen to other bots is a BAD IDEA and should NEVER be enabled on public bots.
- Usage:
[p]levelowner ignorebots
Enable internal API for parallel image generation
Setting a port will spin up a detatched but cog-managed FastAPI server to handle image generation.
The process ID will be attached to the bot object and persist through reloads.
USE AT YOUR OWN RISK!!!
Using the internal API will spin up multiple subprocesses to handle bulk image generation.
If your bot crashes, the API subprocess will not be killed and will need to be manually terminated!
It is HIGHLY reccommended to host the api separately!
Set to 0 to disable the internal API
Notes
- This will spin up a 1 worker per core on the bot's cpu.
- If the API fails, the cog will fall back to the default image generation method.
- Usage:
[p]levelowner internalapi <port>
Set the external API URL for image generation
Set to an none
to disable the external API
Notes
- If the API fails, the cog will fall back to the default image generation method.
- Usage:
[p]levelowner externalapi <url>
Toggle rendering of GIFs for animated profiles
- Usage:
[p]levelowner rendergifs
- Aliases:
rendergif and gif
Set the cache time for user profiles
- Usage:
[p]levelowner cache <seconds>
Set the maximum number of backups to keep
- Usage:
[p]levelowner maxbackups <backups>
Add/Remove a server from the ignore list
- Usage:
[p]levelowner ignore <server_id>
Set the interval for backups
- Usage:
[p]levelowner backupinterval <interval>
View Global LevelUp Settings
- Usage:
[p]levelowner view
Toggle enforcing profile embeds
If enabled, profiles will only use embeds on all servers.
This disables image generation globally.
- Usage:
[p]levelowner forceembeds
- Aliases:
forceembed
Toggle purging of config data for servers the bot is no longer in
- Usage:
[p]levelowner autoclean
Admin Only Data Commands
- Usage:
[p]leveldata
- Restricted to:
ADMIN
- Aliases:
lvldata and ldata
- Checks:
server_only
Reset all user data in this server
- Usage:
[p]leveldata reset
Reset user data for all servers
- Usage:
[p]leveldata resetglobal
- Restricted to:
BOT_OWNER
Restore the cog's data
- Usage:
[p]leveldata restorecog
- Restricted to:
BOT_OWNER
Import levels and exp from AmariBot
Arguments
➣ import_by
- Import by level or exp
• If level
, it will import their level and calculate exp from that.
• If exp
, it will import their exp directly and calculate level from that.
➣ replace
- Replace existing data (True/False)
• If True, it will replace existing data.
➣ api_key
- Your AmariBot API key
➣ all_users
- Import all users regardless of if they're in the server (True/False)
- Usage:
[p]leveldata importamari <import_by> <replace> <api_key> <all_users>
- Restricted to:
GUILD_OWNER
Import levels and exp from Malarne's Leveler cog
Arguments
➣ import_by
- Import by level or exp
• If level
, it will import their level and calculate exp from that.
• If exp
, it will import their exp directly and calculate level from that.
➣ replace
- Replace existing data (True/False)
• If True, it will replace existing data.
➣ all_users
- Import all users regardless of if they're in the server (True/False)
- Usage:
[p]leveldata importmalarne <import_by> <replace> <all_users>
- Restricted to:
BOT_OWNER
Import levels and exp from MEE6
Arguments
➣ import_by
- Import by level or exp
• If level
, it will import their level and calculate exp from that.
• If exp
, it will import their exp directly and calculate level from that.
➣ replace
- Replace existing data (True/False)
➣ include_settings
- Include MEE6 settings (True/False)
➣ all_users
- Import all users regardless of if they're in the server (True/False)
- Usage:
[p]leveldata importmee6 <import_by> <replace> <include_settings> <all_users>
- Restricted to:
GUILD_OWNER
Backup this server's data
- Usage:
[p]leveldata backup
Import levels and exp from Polaris
Make sure your server's leaderboard is public!
Arguments
➣ replace
- Replace existing data (True/False)
➣ include_settings
- Include Polaris settings (True/False)
➣ all_users
- Import all users regardless of if they're in the server (True/False)
- Usage:
[p]leveldata importpolaris <replace> <include_settings> <all_users>
- Restricted to:
GUILD_OWNER
Reset the ENTIRE cog's data
- Usage:
[p]leveldata resetcog
- Restricted to:
BOT_OWNER
Restore this server's data
- Usage:
[p]leveldata restore
Backup the cog's data
- Usage:
[p]leveldata backupcog
- Restricted to:
BOT_OWNER
Cleanup the database
Performs the following actions:
- Delete data for users no longer in the server
- Removes channels and roles that no longer exist
- Usage:
[p]leveldata cleanup
Import data from Fixator's Leveler cog
This will overwrite existing LevelUp level data and stars
It will also import XP range level roles, and ignored channels
Obviously you will need MongoDB running while you run this command
- Usage:
[p]leveldata importfixator
- Restricted to:
BOT_OWNER
Configure LevelUp Settings
- Usage:
[p]levelset
- Restricted to:
ADMIN
- Aliases:
lvlset and lset
- Checks:
server_only
Toggle whether to show user's economy credit balance in their profile
- Usage:
[p]levelset showbalance
- Aliases:
showbal
Voice settings
- Usage:
[p]levelset voice
Ignore invisible voice users
Toggle whether invisible users in a voice channel can gain voice XP
- Usage:
[p]levelset voice invisible
Ignore deafened voice users
Toggle whether deafened users in a voice channel can gain voice XP
- Usage:
[p]levelset voice deafened
Set voice XP gain
Sets the amount of XP gained per minute in a voice channel (default is 2)
- Usage:
[p]levelset voice xp <voice_xp>
Add a range of bonus XP to apply to certain roles
This bonus applies to voice time xp
Set both min and max to 0 to remove the role bonus
- Usage:
[p]levelset voice rolebonus <role> <min_xp> <max_xp>
Ignore solo voice users
Toggle whether solo users in a voice channel can gain voice XP
- Usage:
[p]levelset voice solo
Add a range of bonus XP to users who are Discord streaming
This bonus applies to voice time xp
Set both min and max to 0 to remove the bonus
- Usage:
[p]levelset voice streambonus <min_xp> <max_xp>
Ignore muted voice users
Toggle whether self-muted users in a voice channel can gain voice XP
- Usage:
[p]levelset voice muted
Add a range of bonus XP to apply to certain channels
This bonus applies to voice time xp
Set both min and max to 0 to remove the role bonus
- Usage:
[p]levelset voice channelbonus <channel> <min_xp> <max_xp>
Set the star cooldown
Users can give another user a star every X seconds
- Usage:
[p]levelset starcooldown <seconds>
Prestige settings
- Usage:
[p]levelset prestige
Set the level required to prestige
- Usage:
[p]levelset prestige level <level>
Toggle stacking roles on prestige
For example each time you prestige, you keep the previous prestige roles
- Usage:
[p]levelset prestige stack
Keep level roles after prestiging
- Usage:
[p]levelset prestige keeproles
Add a role to a prestige level
- Usage:
[p]levelset prestige add <prestige> <role> <emoji>
- Checks:
bot_has_server_permissions
Remove a prestige level
- Usage:
[p]levelset prestige remove <prestige>
- Aliases:
rem and del
Level role assignment
- Usage:
[p]levelset roles
Assign a role to a level
- Usage:
[p]levelset roles add <level> <role>
Automatic removal of previous level roles
- Usage:
[p]levelset roles autoremove
Initialize level roles
This command is for if you added level roles after users have achieved that level,
it will apply all necessary roles to a user according to their level and prestige
- Usage:
[p]levelset roles initialize
- Aliases:
init
- Cooldown:
1 per 240.0 seconds
Unassign a role from a level
- Usage:
[p]levelset roles remove <level>
- Aliases:
rem and del
Level up alert messages
Arguments
The following placeholders can be used:
• {username}
: The user's name
• {mention}
: Mentions the user
• {displayname}
: The user's display name
• {level}
: The level the user just reached
• {server}
: The server the user is in
If using dmrole or msgrole
• {role}
: The role the user just recieved
- Usage:
[p]levelset levelupmessages
- Aliases:
lvlalerts, levelalerts, lvlmessages, and lvlmsg
Set the message sent when a user levels up and recieves a role.
Arguments
The following placeholders can be used:
• {username}
: The user's name
• {mention}
: Mentions the user
• {displayname}
: The user's display name
• {level}
: The level the user just reached
• {server}
: The server the user is in
• {role}
: The role the user just recieved
- Usage:
[p]levelset levelupmessages msgrole [message]
Set the message sent when a user levels up.
Arguments
The following placeholders can be used:
• {username}
: The user's name
• {mention}
: Mentions the user
• {displayname}
: The user's display name
• {level}
: The level the user just reached
• {server}
: The server the user is in
- Usage:
[p]levelset levelupmessages msg [message]
Set the DM a user gets when they level up and recieve a role.
Arguments
The following placeholders can be used:
• {username}
: The user's name
• {mention}
: Mentions the user
• {displayname}
: The user's display name
• {level}
: The level the user just reached
• {server}
: The server the user is in
• {role}
: The role the user just recieved
- Usage:
[p]levelset levelupmessages dmrole [message]
Set the DM a user gets when they level up (Without recieving a role).
Arguments
The following placeholders can be used:
• {username}
: The user's name
• {mention}
: Mentions the user
• {displayname}
: The user's display name
• {level}
: The level the user just reached
• {server}
: The server the user is in
- Usage:
[p]levelset levelupmessages dm [message]
View the current level up alert messages
- Usage:
[p]levelset levelupmessages view
View all LevelUP settings
- Usage:
[p]levelset view
Add XP to a user or role
- Usage:
[p]levelset addxp <user_or_role> <xp>
Set a user's level
Arguments
• user
- The user to set the level for
• level
- The level to set the user to
- Usage:
[p]levelset setlevel <user> <level>
Force a profile style for all users
Specify none
to disable the forced style
- Usage:
[p]levelset forcestyle <style>
Toggle whether the bot auto-deletes the star mentions
Set to 0 to disable auto-delete
- Usage:
[p]levelset starmentiondelete <deleted_after>
Remove XP from a user or role
- Usage:
[p]levelset removexp <user_or_role> <xp>
Set LevelUp log channel
Set a channel for all level up messages to send to.
If level notify is off and mention is on, the bot will mention the user in the channel
- Usage:
[p]levelset levelchannel [channel=None]
Reset the emojis to default
- Usage:
[p]levelset resetemojis
Set a user to a specific prestige level
Prestige roles will need to be manually added/removed when using this command
- Usage:
[p]levelset setprestige <user> <prestige>
Message settings
- Usage:
[p]levelset messages
- Aliases:
message and msg
Add a range of bonus XP to apply to certain channels
This bonus applies to message xp
Set both min and max to 0 to remove the role bonus
- Usage:
[p]levelset messages channelbonus <channel> <min_xp> <max_xp>
Set message XP range
Set the Min and Max amount of XP that a message can gain
Default is 3 min and 6 max
- Usage:
[p]levelset messages xp <min_xp> <max_xp>
Add a range of bonus XP to apply to certain roles
This bonus applies to message xp
Set both min and max to 0 to remove the role bonus
- Usage:
[p]levelset messages rolebonus <role> <min_xp> <max_xp>
Set minimum message length for XP
Minimum length a message must be to count towards XP gained
Set to 0 to disable
- Usage:
[p]levelset messages length <length>
Cooldown threshold for message XP
When a user sends a message they will have to wait X seconds before their message
counts as XP gained
- Usage:
[p]levelset messages cooldown <cooldown>
Add or remove a role to the role group
These roles gain their own experience points as a group
When a member gains xp while having this role, the xp they earn is also added to the role group
- Usage:
[p]levelset rolegroup <role>
Send levelup message in the channel the user is typing in
Send a message in the channel a user is typing in when they level up
- Usage:
[p]levelset levelnotify
Toggle whether users can gain Exp from running commands
- Usage:
[p]levelset commandxp
Base command for all allowed lists
- Usage:
[p]levelset allowed
Add/Remove a role in the allowed list
If the allow list is not empty, only roles in the list will gain XP
Use the command with a role already in the allowed list to remove it
- Usage:
[p]levelset allowed role <role>
Add/Remove a channel in the allowed list
If the allow list is not empty, only channels in the list will gain XP
Use the command with a channel already in the allowed list to remove it
- Usage:
[p]levelset allowed channel <channel>
Toggle DM notifications
Determines whether LevelUp messages are DM'd to the user
- Usage:
[p]levelset dm
Toggle star reaction mentions
Toggle whether the bot mentions that a user reacted to a message with a star
- Usage:
[p]levelset starmention
Test the level algorithm
View the first 20 levels using the current algorithm to test experience curve
- Usage:
[p]levelset seelevels
Base command for all ignore lists
- Usage:
[p]levelset ignore
Add/Remove a channel in the ignore list
Channels in the ignore list don't gain XP
Use the command with a channel already in the ignore list to remove it
- Usage:
[p]levelset ignore channel <channel>
Add/Remove a role in the ignore list
Members with roles in the ignore list don't gain XP
Use the command with a role already in the ignore list to remove it
- Usage:
[p]levelset ignore role <role>
Add/Remove a user in the ignore list
Members in the ignore list don't gain XP
Use the command with a user already in the ignore list to remove them
- Usage:
[p]levelset ignore user <user>
Customize the leveling algorithm for your server
• Default base is 100
• Default exp is 2
Equation
➣ Getting required XP for a level
• base * (level ^ exp) = XP
➣ Getting required level for an XP value
• level = (XP / base) ^ (1 / exp)
Arguments
➣ part
- The part of the algorithm to change
➣ value
- The value to set it to
- Usage:
[p]levelset algorithm <part> <value>
- Aliases:
algo
Toggle whether to mention the user in the level up message
If level notify is on AND a log channel is set, the user will only be mentioned in the channel they are in.
- Usage:
[p]levelset mention
Toggle the LevelUp system
- Usage:
[p]levelset toggle
Set the emojis used to represent each stat type
- Usage:
[p]levelset emojis <level> <prestige> <star> <chat> <voicetime> <experience> <balance>
Toggle using embeds or generated pics
- Usage:
[p]levelset embeds