Skip to content

A powerful tool to automatically update your Minecraft modpack using the Modrinth API, intelligently selecting compatible mod versions based on Minecraft version and modloader (Fabric, Quilt, Forge, NeoForge).

License

Notifications You must be signed in to change notification settings

LunarBit-dev/Modrinth-Auto-Updater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LunarBit Modpack Updater

Python License Modrinth

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.

Features

GUI Interface

  • Dark theme UI
  • Configuration panel with all the options
  • Real-time output with colored logs
  • Progress tracking
  • Works on Windows, macOS, and Linux

Mod Updates

  • 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

Client/Server Pack Generation

  • 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

Reporting

  • Color-coded terminal output
  • Changelog generation in Markdown
  • Update summary with counts
  • Exports all mods to local mods/ directory

Installation

Prerequisites

  • Python 3.8+
  • Internet connection

Setup

  1. Clone the repo:
git clone https://github.com/LunarBit-dev/Modrinth-Auto-Updater.git
cd Modrinth-Auto-Updater
  1. Run setup:
# Linux/macOS
chmod +x setup.sh && ./setup.sh

# Windows
setup.bat

Or install dependencies manually:

pip install -r requirements.txt

🎨 GUI Mode

Launch the beautiful GUI interface with enhanced LunarBit theming:

Quick Launch

# 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

Enhanced Features

Command Line Usage

The launcher automatically switches to CLI mode when you provide arguments:

python3 launcher.py --modpack-dir path/to/modpack --client

Or 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

Options

--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)

Input Formats

Accepts modpack folders (containing modrinth.index.json or index.json) or .mrpack files (extracts them automatically).

Modloader Compatibility

Modpack Type Accepts Mods For
Fabric Fabric only
Quilt Quilt + Fabric (backward compatibility)
Forge Forge only
NeoForge NeoForge only

Server Filtering

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.

Examples

Basic update:

python3 update_modpack.py --modpack-dir "./MyModpack/"

Client pack:

python3 update_modpack.py --modpack-dir "./MyModpack.mrpack" --client

Server pack:

python3 update_modpack.py --modpack-dir "./MyModpack/" --server

Both with custom overrides:

python3 update_modpack.py --modpack-dir "./MyModpack/" --client --server --overrides-folder config

Output Files

  • mods/ - 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)

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`
...

Development

The code uses type hints, has error handling, and respects Modrinth API rate limits. Works on Windows, macOS, and Linux.

Contributing

Pull requests are welcome. For major changes, open an issue first to discuss what you want to change.

  1. Fork the repo
  2. Create a feature branch
  3. Make your changes
  4. Submit a PR

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

License

MIT License - see LICENSE for details.

About

A powerful tool to automatically update your Minecraft modpack using the Modrinth API, intelligently selecting compatible mod versions based on Minecraft version and modloader (Fabric, Quilt, Forge, NeoForge).

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors