Automatically updates Minecraft modpacks using the Modrinth API. Handles modloader compatibility and generates client/server .mrpack files. Includes a GUI if you prefer that over command line.
- Dark theme UI
- Configuration panel with all the options
- Real-time output with colored logs
- Progress tracking
- Works on Windows, macOS, and Linux
- Checks for mod updates using Modrinth API v2
- Respects Minecraft version compatibility (including sub-versions like 1.21.x)
- Handles modloader filtering (Quilt can use Fabric mods)
- Supports Fabric, Quilt, Forge, and NeoForge
- Backs up and replaces existing mod files
- Generate separate client and server modpack files
- Filters server-compatible mods automatically
- Sets proper environment tags for each mod
- Includes overrides folder (configs, resource packs, etc.)
- Follows Modrinth modpack spec
- Color-coded terminal output
- Changelog generation in Markdown
- Update summary with counts
- Exports all mods to local
mods/directory
- Python 3.8+
- Internet connection
- Clone the repo:
git clone https://github.com/LunarBit-dev/Modrinth-Auto-Updater.git
cd Modrinth-Auto-Updater- Run setup:
# Linux/macOS
chmod +x setup.sh && ./setup.sh
# Windows
setup.batOr install dependencies manually:
pip install -r requirements.txtLaunch the beautiful GUI interface with enhanced LunarBit theming:
# Universal launcher (automatically chooses best mode)
python3 launcher.py
# Explicit GUI launch
python3 launcher.py --gui
# Platform-specific launchers
./run_gui.sh # Linux/macOS
run_gui.bat # Windows
python3 run_gui.py # Direct PythonThe launcher automatically switches to CLI mode when you provide arguments:
python3 launcher.py --modpack-dir path/to/modpack --clientOr use the script directly:
# Update mods and export to local mods/ folder
python3 update_modpack.py --modpack-dir path/to/modpack
# Generate client .mrpack file
python3 update_modpack.py --modpack-dir path/to/modpack --client
# Generate server .mrpack file
python3 update_modpack.py --modpack-dir path/to/modpack --server
# Generate both
python3 update_modpack.py --modpack-dir path/to/modpack --client --server--modpack-dir MODPACK_DIR Path to modpack folder or .mrpack file
--client Generate client .mrpack file
--server Generate server .mrpack file
--overrides-folder FOLDER Custom overrides folder (default: overrides)
Accepts modpack folders (containing modrinth.index.json or index.json) or .mrpack files (extracts them automatically).
| Modpack Type | Accepts Mods For |
|---|---|
| Fabric | Fabric only |
| Quilt | Quilt + Fabric (backward compatibility) |
| Forge | Forge only |
| NeoForge | NeoForge only |
When generating server packs, it queries each mod's server_side compatibility and only includes mods marked as "required" or "optional". Client-only mods (like Sodium) are excluded.
Basic update:
python3 update_modpack.py --modpack-dir "./MyModpack/"Client pack:
python3 update_modpack.py --modpack-dir "./MyModpack.mrpack" --clientServer pack:
python3 update_modpack.py --modpack-dir "./MyModpack/" --serverBoth with custom overrides:
python3 update_modpack.py --modpack-dir "./MyModpack/" --client --server --overrides-folder configmods/- All updated mod files{modpack-name}_changelog.md- Update changelog{modpack-name}.mrpack- Client modpack (if--client){modpack-name}-server.mrpack- Server modpack (if--server)
# Modpack Update Changelog - 2025-07-21
## π Updated Mods (2)
- **Sodium**: `mc1.21.4-0.6.0` β `mc1.21.6-0.6.13`
- **Fabric API**: `0.104.0+1.21` β `0.129.0+1.21.8`
## β
Up-to-date Mods (15)
- JEI: `19.22.4.118`
- REI: `16.0.744`
...The code uses type hints, has error handling, and respects Modrinth API rate limits. Works on Windows, macOS, and Linux.
Pull requests are welcome. For major changes, open an issue first to discuss what you want to change.
- Fork the repo
- Create a feature branch
- Make your changes
- Submit a PR
- Some mods may not have proper server compatibility tags on Modrinth
- Very large modpacks (500+ mods) may take longer to process
- Rate limiting may cause slower updates for modpacks with many mods
MIT License - see LICENSE for details.