Download and update mods from Modrinth collections with automatic dependency resolution and parallel downloads.
A fast, user-friendly Python script that downloads mods from Modrinth collections with intelligent dependency handling, parallel downloads, and an intuitive interactive interface.
- π Parallel Downloads - Download multiple mods simultaneously for faster processing
- π Automatic Dependencies - Automatically resolves and downloads required dependencies
- π¬ Interactive Mode - User-friendly prompts with sensible defaults
- π Smart Updates - Updates existing mods by default (configurable)
- π Detailed Statistics - Comprehensive summary with separate tracking for mods and dependencies
The easiest way to use the script - just run it and follow the prompts:
# Using curl (replace python with python3 for mac)
curl -sL https://raw.githubusercontent.com/aayushdutt/modrinth-collection-downloader/master/main.py | python -
# Or using wget (replace python with python3 for mac)
wget -qO- https://raw.githubusercontent.com/aayushdutt/modrinth-collection-downloader/master/main.py | python -You'll be prompted for:
- Collection ID or URL
- Minecraft version
- Loader (fabric, forge, quilt, etc.)
- Update preference (defaults to Yes)
Example session:
$ curl -sL https://raw.githubusercontent.com/aayushdutt/modrinth-collection-downloader/master/main.py | python -
Enter collection ID or URL: https://modrinth.com/collection/5OBQuutT
Enter Minecraft version (e.g., "1.21.9"): 1.21.9
Enter loader (e.g., "fabric", "forge", "quilt"): fabric
Update existing mods? [Y/n] (default: Y):
Found 22 mod(s) in collection
Processing 2 required dependency(ies) for Dynamic FPS...
[DEPENDENCY] DOWNLOADING: Fabric API - fabric-api-0.134.0+1.21.9.jar...
DOWNLOADING: Dynamic FPS - dynamic-fps-3.10.1+minecraft-1.21.9-fabric.jar...
...Download or copy main.py and run it:
# Download the script (or copy from repository)
curl -sL https://raw.githubusercontent.com/aayushdutt/modrinth-collection-downloader/master/main.py -o main.py
# Run interactively
python main.py
# Or with arguments
python main.py -c 5OBQuutT -v 1.21.9 -l fabricoptions:
-h, --help show this help message and exit
-c, --collection COLLECTION
ID or URL of the collection to download
(e.g., 5OBQuutT or https://modrinth.com/collection/5OBQuutT)
-v, --version VERSION
Minecraft version (e.g., "1.20.4", "1.21")
-l, --loader LOADER Loader to use (e.g., "fabric", "forge", "quilt")
-d, --directory DIRECTORY
Directory to download mods to. Default: "./mods"
-u, --update Download and update existing mods. Default: true
--no-update Do not update existing mods
Note: All arguments except -d are optional. The script will prompt for any missing values.
- Dependencies: Automatically downloads required dependencies recursively. Marked with
[DEPENDENCY]in logs. - Parallel Downloads: Downloads up to 5 mods concurrently.
- Updates: Enabled by default. Skips mods already at latest version by comparing filenames.
- File Format: Saves as
filename.modid.ext(e.g.,dynamic-fps-3.10.1+minecraft-1.21.9-fabric.LQ3K71Q1.jar)
- Python 3.6+
- No external dependencies (uses standard library only)
- "command not found: python": Use
python3instead, or install Python. - "No version found": Mod doesn't support the specified version/loader. Check Modrinth for supported versions.
- "Collection not found": Verify the collection ID/URL is correct and public.
- Dependencies not downloading: Only "required" dependencies are downloaded. Optional ones are skipped.