A Discord bot that automatically monitors Modtale and CurseForge projects and posts update notifications when new versions/files are released.
It supports:
- Multiple Modtale projects
- Multiple CurseForge projects
- Either platform independently (Modtale-only or CurseForge-only)
- Persistent cache to avoid reposting old releases
- Discord embeds with download buttons
- Periodically polls:
- Modtale project APIs
- CurseForge (via CFWidget)
- Detects new versions/files
- Posts a rich embed message to a configured Discord channel
- Stores seen releases in
cache.jsonso each release is only posted once
If you encounter any issues or have questions, please create a new issue here.
We also have a Discord server where you can ask questions and get help.
- Python 3.10+
- A Discord bot token
- API access to the Modtale project(s) you want to track. Get your Modtale api token from: https://modtale.net/dashboard/developer
- Project IDs / slugs for CurseForge projects
git clone https://github.com/AzureDoom/Modtale-CurseForge-Discord-Release-Bot.git
cd Modtale-CurseForge-Discord-Release-Botpip install -r requirements.txtRequired libraries include:
- discord.py
- aiohttp
- python-dotenv
You will find a file named:
example.envRename it to .env.
Then open .env and fill in your values.
You can enable:
- Only Modtale (Leave CurseForge Blank: CURSEFORGE_PROJECTS_JSON=)
- Only CurseForge (Leave Modtale Blank: MODTALE_PROJECTS_JSON=)
Leaving a project JSON variable blank disables that source.
Simply do:
python3 bot.py
On startup you should see:
Logged in as YourBotName
Successfully finished startup
Running the bot in Docker is the recommended way to deploy it for 24/7 usage. This ensures consistent behavior across environments and clean restarts.
Prerequisites
-
Docker 20.10+
-
Docker Compose (v2, docker compose)
Verify installation:
docker --version
docker compose versionAn example environment file is included as example.env.
Rename it to .env
Edit .env and configure:
-
Discord bot token
-
Channel ID
-
Modtale and/or CurseForge projects
From the project root:
sudo docker compose up -d --buildThe bot will:
-
Build the image
-
Start automatically
-
Restart on failure or system reboot
Simply run:
sudo docker compose logs -fYou should see:
Logged in as <bot name>
Successfully finished startupStop:
sudo docker compose downRestart:
sudo docker compose restartWhen you pull new changes:
git pull
docker compose up -d --build- A file named cache.json is created automatically
- Tracks seen releases per project
- Safe to delete if you want the bot to repost everything again
Bot starts but posts nothing:
- Ensure your project JSON is valid
- Make sure the project actually has released files
- Check that the Discord channel ID is correct
JSON parsing errors:
- Make sure all keys use double quotes
- Wrap JSON values in single quotes in .env
Looking for a reliable server to run this bot and other games on?
BisectHosting offers pre-configured game servers, fast setup, and solid performance for modded environments along with bot, web hosting, and VPS servers.
Use code azuredoom for 25% off your first month.