Download the latest compatible Minecraft mods from Modrinth and CurseForge with one command. No coding required: fill in a config file, paste mod links, run the script.
- Python 3.9+ installed
- Internet connection
- A CurseForge API key only if you want to download CurseForge mods
- Open a terminal in this folder (
MinecraftModUpdater). - Create a virtual environment:
- Windows:
py -m venv .venv - macOS/Linux:
python3 -m venv .venv
- Windows:
- Activate it:
- Windows:
.venv\Scripts\activate - macOS/Linux:
source .venv/bin/activate
- Windows:
- Install requirements:
pip install -r requirements.txt - Copy and edit config:
config.yamlis already provided. If missing, copyconfig.example.yamltoconfig.yaml.- Open
config.yamland set:minecraft_version: e.g.,1.21.11mod_loader:fabric,forge,quilt, etc. Leave blank to accept any.output_folder: where downloaded.jarfiles should go.curseforge_api_key: required for CurseForge mods (get one at https://console.curseforge.com/).
- Add your mods: edit
mods.txtand paste one project link per line. Examples:- Modrinth:
https://modrinth.com/mod/sodium - Modrinth:
https://modrinth.com/mod/fabric-api - CurseForge:
https://www.curseforge.com/minecraft/mc-mods/just-enough-items-jei - CurseForge:
https://www.curseforge.com/minecraft/mc-mods/xaeros-minimap
- Modrinth:
- Run the updater:
python update_mods.py - Find your updated mods inside the folder you set in
output_folder(default:downloaded_mods). Upload those.jarfiles to your Minecraft client or server mods folder.
- Reads settings from
config.yaml. If missing, it auto-creates it fromconfig.example.yamland asks you to fill it in. - Reads mod links from
mods.txt. If missing, it copiesmods.example.txtfor you to edit. - Detects whether each link is Modrinth or CurseForge.
- Finds the latest file matching your
minecraft_versionandmod_loader. - Downloads the file into
output_folder, overwriting older copies with the same name. - Prints a summary when finished.
[SUCCESS]Downloaded and saved the file.[NO COMPATIBLE VERSION]The mod has no release for your chosen Minecraft version (or loader).[SKIP]Something was missing (e.g., no CurseForge API key).[ERROR]A request or download failed; the script continues with other mods.
- What if a mod doesn’t support my Minecraft version yet?
You’ll see[NO COMPATIBLE VERSION]. Wait for the author to publish a compatible release or changeminecraft_versionto a supported one. - What if my CurseForge API key is wrong or missing?
CurseForge downloads will be skipped with a clear message. Updatecurseforge_api_keyinconfig.yamland run again. - Can I use only Modrinth mods?
Yes. Leavecurseforge_api_keyempty and put only Modrinth links inmods.txt. - Where do I get a CurseForge API key?
Create one at https://console.curseforge.com/ and paste it intoconfig.yaml. - How do I update mods again later?
Just rerunpython update_mods.py. It will overwrite files in the output folder with the newest compatible versions.
- Keep the virtual environment active when running the script so the required packages are available.
- If you change Minecraft version or loader, update both
config.yamland your mod list to ensure compatibility.