Modrinth Auto-Updater - Minecraft Modpack Management
A powerful tool that automatically updates Minecraft modpacks using the Modrinth API, featuring intelligent modloader compatibility and professional client/server .mrpack generation with a beautiful GUI interface.
Overview
The Modrinth Auto-Updater is designed to streamline Minecraft modpack management by automating the update process while maintaining compatibility and providing professional-grade pack generation capabilities. Whether you're a modpack developer or server administrator, this tool simplifies the complex task of keeping modpacks current.
Key Features
Beautiful GUI Interface
- Modern Design: Dark theme with LunarBit styling and enhanced typography
- Smart File Selection: Choose between folder or .mrpack file with visual dialog
- Real-time Status: Live path validation and detailed progress tracking
- Rich Configuration: Enhanced options panel with descriptions and validation
- One-Click Updates: Streamlined workflow with intelligent status updates
- Beautiful Output: Enhanced terminal output with better fonts and spacing
- Cross-platform Compatibility: Works on Windows, macOS, and Linux
Intelligent Mod Updates
- Automatic Checking: Checks for mod updates using Modrinth API v2
- Version Compatibility: Respects Minecraft version compatibility including sub-versions (1.21.x)
- Smart Modloader Filtering: Quilt ↔ Fabric backward compatibility support
- Multi-Platform Support: Supports Fabric, Quilt, Forge, and NeoForge modloaders
- Safe Backup System: Automatic backup and replacement of existing mod files
Client/Server Pack Generation
- Separate Pack Creation: Generate optimized client and server modpack files
- Server Compatibility Filtering: Automatic filtering using Modrinth API
- Environment Tags: Proper client/server required/unsupported tags
- Override Support: Handle configs, resource packs, and custom files
- Modrinth Specification: Follows official Modrinth modpack specification
Comprehensive Reporting
- Color-coded Output: Easy status tracking with detailed progress information
- Changelog Generation: Detailed Markdown changelog with update summaries
- Update Statistics: Counts of updated, up-to-date, and failed mods
- Export Capabilities: Export all mods to local
mods/directory
Technology Stack
- Core Language: Python 3.8+
- API Integration: Modrinth API v2
- GUI Framework: Enhanced interface with platform-specific launchers
- Features: Cross-platform compatibility, automatic backup system
- Dependencies: Minimal external dependencies for easy deployment
Installation
Prerequisites
- Python 3.8 or higher
- Internet connection for Modrinth API access
Quick Setup
-
Clone the repository:
git clone https://github.com/LunarBit-dev/Modrinth-Auto-Updater.git
cd Modrinth-Auto-Updater -
Quick Setup (recommended):
# Linux/macOS
chmod +x setup.sh && ./setup.sh
# Windows
setup.bat -
Manual Installation:
pip install -r requirements.txt
Usage
GUI Mode
Launch 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 Python
GUI Features
- 🎨 Stunning Design - Modern dark theme with LunarBit colors
- 📁 Smart File Selection - Visual dialog for folder or .mrpack file selection
- ⚡ Real-time Status - Live path validation and progress tracking
- ⚙️ Rich Configuration - Enhanced options with descriptions
- 🚀 One-Click Updates - Streamlined workflow
- 📋 Beautiful Output - Enhanced terminal with better typography
Command Line Usage
Universal Launcher
# Auto-detect best mode (GUI if available, CLI otherwise)
python3 launcher.py
# Force CLI mode with arguments
python3 launcher.py --cli --modpack-dir path/to/modpack --client
# Auto-detect CLI mode (when CLI arguments are provided)
python3 launcher.py --modpack-dir path/to/modpack --server
Direct CLI Usage
# 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 (with server compatibility filtering)
python3 update_modpack.py --modpack-dir path/to/modpack --server
# Generate both client and server .mrpack files
python3 update_modpack.py --modpack-dir path/to/modpack --client --server
Command Line Options
usage: update_modpack.py [-h] --modpack-dir MODPACK_DIR [--client] [--server]
[--overrides-folder OVERRIDES_FOLDER]
options:
-h, --help Show this help message and exit
--modpack-dir MODPACK_DIR Path to modpack directory or .mrpack file
--client Generate client .mrpack file
--server Generate server .mrpack file
--overrides-folder FOLDER Name of overrides folder (default: overrides)
Usage Examples
Example 1: Basic Update
python3 update_modpack.py --modpack-dir "./MyModpack/"
Result: Updates all mods, exports to mods/, generates changelog
Example 2: Client Distribution
python3 update_modpack.py --modpack-dir "./MyModpack.mrpack" --client
Result: Creates MyModpack.mrpack optimized for client installation
Example 3: Server Deployment
python3 update_modpack.py --modpack-dir "./MyModpack/" --server
Result: Creates MyModpack-server.mrpack with only server-compatible mods
Example 4: Full Distribution
python3 update_modpack.py --modpack-dir "./MyModpack/" --client --server --overrides-folder config
Result: Creates both client and server .mrpack files with custom config folder
Input Formats
The script accepts:
- Modpack folders containing
modrinth.index.jsonorindex.json .mrpackfiles (automatically extracted)
Modloader Compatibility
| Modpack Type | Compatible Mods |
|---|---|
| Fabric | Fabric only |
| Quilt | Quilt + Fabric (backward compatibility) |
| Forge | Forge only |
| NeoForge | NeoForge only |
Server Filtering
When generating server .mrpack files, the script:
- Queries each mod's
server_sidecompatibility via Modrinth API - Includes only mods marked as
"required"or"optional"for servers - Excludes client-only mods (e.g., Sodium, OptiFine)
- Reports skipped mods in the output
Output Files
Generated Files
mods/- Directory containing all updated mod files{modpack-name}_changelog.md- Detailed update changelog{modpack-name}.mrpack- Client modpack (if--client){modpack-name}-server.mrpack- Server modpack (if--server)
Changelog Format
# 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`
...
Project Structure
modrinth-modpack-updater/
├── update_modpack.py # Main script
├── launcher.py # Universal launcher
├── run_gui.py # GUI interface
├── requirements.txt # Python dependencies
├── setup.sh / setup.bat # Quick setup scripts
├── README.md # Documentation
├── LICENSE # MIT License
└── examples/ # Example modpacks and configs
Code Features
- Type hints for better code maintainability
- Error handling with detailed logging
- Modular design with separate functions for each feature
- API rate limiting respect for Modrinth API
- Cross-platform compatibility (Windows, macOS, Linux)
Use Cases
Modpack Developers
- Automated Updates: Keep development and release versions current
- Client/Server Generation: Create optimized packs for different environments
- Changelog Generation: Automatic documentation of changes
- Quality Assurance: Ensure compatibility across modloader versions
Server Administrators
- Server Pack Creation: Generate server-optimized modpacks
- Batch Processing: Update multiple server instances
- Compatibility Checking: Verify mod server compatibility
- Deployment Automation: Streamline server update processes
Content Creators
- Pack Maintenance: Keep featured modpacks up-to-date
- Distribution: Create both client and server versions
- Documentation: Automatic changelog generation for videos/posts
- Version Management: Handle multiple Minecraft versions
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Development Setup
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Roadmap
- Support for CurseForge modpacks
- Batch processing for multiple modpacks
- Mod dependency resolution
- Custom update channels (alpha, beta, release)
- Integration with mod hosting platforms
- Advanced filtering and exclusion rules
- Automated testing and validation
- Plugin system for custom processors
Known Issues
- 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
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Discord: LunarBit Discord
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Modrinth for providing an excellent API
- Minecraft community for the amazing modding ecosystem
- All contributors and users of this tool
Made with ❤️ by LunarBit for the Minecraft modding community