A simple Node.js script to download Minecraft mods from Modrinth automatically, based on game version, loader, and mod names.
- Node.js installed on your system.
- Dependencies installed via npm:
npm install(Make sure your package.json lists node-fetch if required for API calls.)
Edit the mod list file (located in config/lists.js) to create a new Mod List with the template provided and specifiy the version, loader, and any mods you wish to add.
export const sodium = {
version: ['1.21.10', '1.21.9'],
loader: ['fabric'],
mods: ['sodium', 'lithium'],
};IMPORTANT: Use the Mod Names Displayed on the Mod Page URL, not display names, to ensure correct downloads, for example:
https://modrinth.com/mod/sodium <--- # only take the 'sodium' !!!If you don't, it may not work when there are underscores and spaces involved as it differs !!!
- Pick which list you are using and the filepath to your
.minecraft/modsfolder inconfig/default.jsby modifying these variables:
// CONFIG //
export const list = lists.sodium; // Pick the designated Mod List
export const output = 'C:\\APPS\\MultiMC\\instances\\1.21.10\\.minecraft\\mods'; // Include DOUBLE Backslashes- Open a terminal and navigate to the project folder.
- Run the downloader script:
node app.js- The console will display progress for each mod:
Downloaded sodium - 1.21.10 - fabric in 2.34s (1/4)
Downloaded lithium - 1.21.10 - fabric in 1.87s (2/4)
- Once complete, you’ll see a download summary:
Download complete: 4/4 mods downloaded in 12.45s
All successful downloads are logged in:
log/download.txt
Format:
<DATE_TIME> - <VERSION> - <LOADER> - <MOD_NAME>
// EXAMPLE: 06/11/2025, 10:02:14 am - mc1.21.10-0.7.2-fabric - fabric - sodium
- Only compatible versions and loaders will be downloaded.
- If a mod cannot be found or downloaded, an error will be printed in the console. (This will NOT stop the other mods from downloading luckily :D)
- Modrinth mod names in
config/lists.jsMUST be correct, otherwise the download will return an error and be skipped.
- If the mod already exists in the mod folder, the downloader will skip it. This helps to reduce download time by not making unnecessary download calls.
- This idea has been floating in my head for a while but I was loading up the new version of Minecraft wishing to start a new singleplayer and realising I needed to download my ~20ish Quality of Life (QoL) Mods as I do every time. Anyways, after having to do that so many times I finally created this tool to help me. (And I even left my QoL Mod List in there :3)
- This was genuinely really fun to make so I may add more features in future!!
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. See the LICENSE file for details.