- Track and display configurable user profiles!
- Award XP, levels, and currency to users automatically!
- Allow users to buy custom roles and submit custom emojis through a configurable shop!
- Preserve popular messages (i.e. ones with lots of reactions) to a "Star Board"!
- Assign or unassign roles, either manually or automatically!
- Set custom greeting and/or leave messages!
- Automatically change a user's roles when connecting to voice channels!
- Allow users to give themselves roles by clicking emoji reactions!
- Set custom messages to be sent when users gain or lose a role!
- Take a message and put it in an nicely-formatted embed!
The current to-do list can be found in Issues under the "Enhancement" tag. In addition to these, I'd also like to eventually add:
- A deployment system that allows the bot to be easily set up with no fuss (docker maybe?)
- A pre-hosted version of the bot that can simply be invited to a server, no self-hosting required
- Create a bot application through the Discord Developer Portal
- Under the "Bot" tab, toggle on the "Presence" and "Server Members" intents
- Invite your bot to your server with administrator privileges
- Clone this repository, or download and extract the files manually
- Install Python (v3.8.6 is recommended) and the requirements from requirements.txt
- In a terminal, navigate to the directory where you saved the repo and run
python main.py
- When prompted, enter your bot's secret token (found in the "Bot" tab of the Developer Portal, under "Token")
[-help] - Display information about available commands
[-prof / -profile] - Display your profile information
[-prof e / edit] - Bring up the profile management menu to change your profile display
[-lb / -leaderboard] - Display the server leaderboard
[-shop] - Bring up the shop
[-daily / -cashme / -getmoney] - Get a free boost of credits, available once every 24 hours
[-prefix] - Change the [prefix] for bot commands (default: '-')
[-stats] - Enable or disable XP tracking and level-ups for the server
[-permrole / -permissionrole] - Set a [role_id] that's required to be able to use non-owner commands
[-say / -botsay] - Have the bot send some [text] in an embed
[-say e / edit] - Edit a [message_id] with a different set of [text]
[-tr / -togglerole] - Give or remove a [role_id] to yourself or a [member]
[-roles] - Get a list of all roles on the guild
[-channels] - Get a list of all channels on the guild
[-emojis] - Get a list of all custom emojis on the guild
[-star / -starboard] - Enable saving messages by setting a [channel_id] for them to go to
[-star t / threshold] - Set [threshold] of emoji reacts before a message is starred
[-csymbol / -currencysymbol] - Set the [emoji] to use as the currency symbol
[-shop a role / available role] - Set the number of custom roles available for purchase in the shop
[-shop p role / price role] - Set the price of custom roles
[-shop a emoji / available emoji] - Set the number of custom emoji slots available for purchase in the shop
[-shop p emoji / price emoji] - Set the price of custom emoji slots
[-gj / -guildjoin] - Set a [channel_id] for greeting messages to be sent when new people join
[-gj msg / message] - Set the [text] to be sent when new people join
[-gl / -guildleave] - Set a [channel_id] for greeting messages to be sent when new people join
[-gl msg / message] - Set the [text] to be sent when new people join
[-ar / -autorole] - Set a [role_id] to be added to any member that joins the server
[-ra / -rolealert] - Empty command, requires a subcommand.
[-ra g / gain] - Pass a [role_id], [channel_id], and a [message] to have that message sent to that channel when a user gains that role
[-ra l / lose] - Pass a [role_id], [channel_id], and a [message] to have that message sent to that channel when a user loses that role
[-rr / -reactionrole] - Set a [channel-message] to have a react [emoji] that when clicked gives a role by its [role_id]
[-rr d / delete] - Deletes a reaction role by its [unique_id]
[-rr l / list] - Lists all reaction roles and their id's
[-vr / -voicerole] - Set a [voice channel_id] to have a [role_id] that gets automatically added/removed when that channel is joined or left
[-vr d / delete] - Deletes a voice role by its [unique_id]
[-vr l / list] - Lists all voice roles and their id's
This bot is made possible thanks to:
- The discord.py project
- The aiosqlite module
- The python-dotenv module
- The PyYAML module
- Inspiration from the project NadekoBot
If you like this project, consider donating to any of the projects listed above!
If you'd like to contribute to this project directly, you can find me on Patreon