A Discord bot that fetches Challonge's tournament brackets, renders and posts them into a channel.
Note: This is a self-hosted bot. You will need to create your own Discord Application and run the code on your own machine/server.
Features •
Commands •
Requirements •
Permissions •
Contributing •
License
- Real-time Rendering: Converts live Challonge data into a clean image format.
- Auto-Update: Automatically refreshes the bracket image in Discord when scores are reported. Note: Auto-update function only work with a Challonge API given.
- Tournament Support: Works with Single Elim, Double Elim, Swiss Stage and Round Robin formats.
- Simple Commands: Minimalistic setup for tournament organizers.
The bot uses Slash Commands. Ensure the bot has Use Application Commands permission in your server.
| Command | Usage | Description |
|---|---|---|
/bracket |
/bracket <tournament_id> |
Fetches the Challonge bracket and posts the rendered bracket. |
/info |
/info |
Get current active tournament ID. |
/update |
/update |
Forces an immediate refresh of the currently active bracket. |
/clear |
/clear |
Clear all data and stop tracking any bracket. |
- Discord Bot Token: Create one via the Discord Developer Portal
- Environment: Python 3.14+
Optional:
- Challonge API Key: Obtainable from your Challonge Settings (Required for auto-update feature)
- Clone the Repository
git clone https://github.com/JuneMinazuki/Challonge-Snap.git
cd Challonge-Snap- Install Dependencies
pip install -r requirements.txt- Environment Configuration: Create a file named
.envin the root folder:
DISCORD_BOT_TOKEN=your_discord_token_here
CHALLONGE_API_KEY=your_challonge_api_key_here
- Launch the Bot
python main.pyTo function correctly with all features, the bot requires the following permissions as configured in the Discord Developer Portal:
- View Channels
- Send Messages
- Send Messages in Threads
- Manage Messages
- Attach Files
- Read Message History
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
