This is a small general-purpose bot that I am making for fun with features requested by friends who use it. It is mainly in my friends' and my own servers. This bot is made public but its invite URL is not advertised, use the invite
command or contact me to get the invite URL.
This bot is made with discord.py
By default, the prefix is %
but you can config the prefix on a per-server basis with the prefix
command. You can also use @Snowflake
as a prefix regardless of the server's prefix settings.
The name Snowflake does not actually have anything to do with discord's Snowflake ID format but instead, is a little joke within my friend group.
A full list of commands and its corresponding documentation can be found via the help
command on the bot or you can source dive this repo.
Here is a brief list of some of the things the bot can do:
- Reaction Roles
- Server Moderation
- Get user and server info
- Evaluate Python code in chat
- Help manage your notifications
- Set timed reminders for yourself
- Generate LaTeX as image in chat
- Hot reload modules without restart
- Use custom emojis across servers without Nitro
- Stream music from Youtube, Spotify, Soundcloud, Twitch, Mixer, Vimeo, etc with Lavalink
- and more...
Currently, I do not have a roadmap or a list of planned features, I just create new features when the idea comes. I am open to any feature requests, a lot of the bot's current features come from small inconveniences of discord and people wanting to make their discord experience better or just something that is fun to play with.
There are a lot of parts that are not made by me and use external libraries or APIs or someone else's code.
Shoutout to these people for creating amazing libraries:
- Danny/Rapptz - discord.py and a few other commands
- Myst/EvieePy - Wavelink and pretty much all of the music playing
- Devon/Gorialis - jishaku
I would not recommend trying to host your own instance of this bot as some crucial parts are not public. Instead, use the invite
command to get an invite URL to add to your server or send me a message.
If you really want to run your own instance you would need the following:
- Python 3.8+
- discord.py 2.0
- A PostgreSQL database
- asyncpg for interacting with the database
- A Lavalink server for music playing
- The packages inside
requirements.txt
for some commands
NOTE: the following steps are only a rough guideline, a lot of steps are left to the user to set up themselves. (eg. setting up Lavalink server)
- Install dependencies:
pip install -U -r requirements.txt
- A
config.py
with the following information:
# These are required for the bot to run
BOT_TOKEN = '...' # Your bot token from discord
DBURI = 'postgresql://snowflake:password@host/snowflake' # Your PostgreSQL credentials
# The rest are optional, certain commands require external APIs:
GOOGLE_API_KEY = '...' # API key from Google
GOOGLE_CUSTOM_SEARCH_ENGINE = '...' # ID of your custom search engine from Google
DEEPAI_API_KEY = '...' # API Key from DeepAI
- Create database tables
- Run
main.py
and pray it works.