A small JavaFX desktop app for searching and downloading Minecraft mods from Modrinth. Filter by loader, game version, category, and environment; queue up the mods you want; and download them straight into your mods folder.
- Live search of Modrinth with debounced input and pagination
- Filters for mod loader (Fabric, Forge, …), Minecraft version, category, and environment (client / server / any)
- Download queue — stage multiple mods and download them in one batch
- Integrity checked — every download is verified against the SHA-512 hash reported by the Modrinth API before it's kept
- Settings — default download directory, one-click auto-detect of your
.minecraft/modsfolder, optional close-on-complete, and a configurable search delay
- Java 11 or newer
- Maven 3.6+
mvn clean javafx:runTo produce a runnable fat jar (target/modselector.jar):
mvn clean package
java -jar target/modselector.jarTo build a self-contained application image that bundles its own Java runtime (end users don't need Java installed):
./package.shThis produces:
- a native launcher at
dist/ModSelector/bin/ModSelector(run it directly), and - a compressed, shareable archive
dist/ModSelector-<version>-<platform>.tar.gz(~75 MB).
The script trims the bundled runtime (removes CDS archives and compile-time
files) before archiving. For maximum compression (~50 MB), it prints an xz
one-liner at the end.
The image is platform-specific — run package.sh on the OS you want to target
(Linux → Linux image, Windows → .exe, macOS → .app). It requires a JDK 17+
(for jpackage) and Maven to build.
jpackage cannot cross-compile, so each OS must be built on that OS. The
.github/workflows/release.yml workflow does
this automatically on GitHub Actions runners (Linux, Windows, macOS Intel + Apple
Silicon). Push a tag like v1.0.0 and it builds all four and attaches them to the
GitHub Release; or trigger it manually ("Run workflow") to get downloadable build
artifacts without a release.
Note: on Red Hat / Fedora OpenJDK,
jpackage's default trimmed runtime can fail because the distro modifiesjava.security;package.shautomatically falls back to bundling the full JDK (then trims it back down).
- JavaFX — UI
- OkHttp — HTTP client
- Gson — JSON parsing
- JSVG — SVG icon rendering
- TwelveMonkeys ImageIO — WebP support
This project is not affiliated with Modrinth. It uses the public Modrinth API and requires no API key. Please be mindful of Modrinth's API usage guidelines.
Released under the MIT License.
The bundled Inter font is licensed separately under the SIL Open Font License 1.1 (OFL.txt).