SerpentCore is a small, modular Discord bot built with disnake. It uses slash commands, context menus, and organized command groups for clean structure and easy maintenance. Designed to run beautifully on a Raspberry Pi.
/fun cat — random cat from Reddit with a CATAAS fallback
/fun dog — random dog from Random.Dog
/fun meme — random meme (r/memes, r/dankmemes, etc.)
/fun 8ball — magic 8-ball (1/200 chance of a rare rude response)
/fun roll — dice roller (custom dice count, sides, and modifiers)
/util userinfo — view user roles, join date, account age
/util serverinfo — view server creation info and statistics
/util remindme — lightweight reminder system
/util poll — reaction-based polls (up to 5 options)
/util stats — bot uptime, latency, and server count
/util define — fetch definitions via dictionaryapi.dev
/purge — bulk delete messages
/slowmode — set channel slowmode
/say — send a message as the bot
/kick — remove a user
/ban — ban a user + delete message history (optional)
/warn — issue a stored warning
/warnings — view all warnings for a user
/clearwarnings — wipe warnings
/timeout — apply a timeout
/untimeout — remove a timeout
/modlog set|disable|show — configure mod logging channel
SerpentCore/
├─ bot.py
├─ cogs/
│ ├─ fun.py # /fun commands
│ ├─ util.py # /util commands
│ ├─ moderation.py # moderation commands
│ ├─ info.py # helpful commands
│ └─ context.py # context menu commands
└─ utils/
├─ autoupdate.py # Git auto-updater
├─ http.py # HTTP request helper
└─ reddit.py # Reddit media fetcherSetup
- Python 3.10+
- Create a bot in the Developer Portal
- Enable only the intents you need
- Invite with scopes: bot and applications.commands
- Clone & install:
python -m venv .venv
. .venv/Scripts/activate # Windows
source .venv/bin/activate # Linux/macOS
pip install -r requirements.txt
- Place your bot token in .env:
DISCORD_TOKEN=your_token_here
- Run:
python bot.py
- Add
guild_ids=[YOUR_ID]to slash commands for instant sync during testing - Hit
Ctrl+Rin Discord for a hard UI reload if commands don’t appear - New cogs can be dropped into
/cogs/and added toinitial_extensions