Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
1.7.x
1.6.4
1.6.1–1.6.2
1.5.x
1.4.4–1.4.7
1.4.2
1.3.x
1.2.x
1.1
1.0
Platforms
Supported environments
Creators
Details
Licensed ARR
Published 2 days ago
Updated 3 days ago
ModsChecker
CLI tool to audit Minecraft mods and flag client-only mods. It scans a mods folder, calculates hashes, and queries Modrinth and CurseForge to classify mods.
Features
- Modrinth lookup by SHA1.
- CurseForge lookup by fingerprint (batch request).
- Metadata detection from
fabric.mod.json,META-INF/mods.toml,mcmod.info. - Client-only classification + heuristics.
- Console summary and optional JSON report.
- English/Russian output.
Requirements
- Runtime: Java 8 to 25.
- Build: JDK 17+ (Gradle 8.x requirement).
Build
./gradlew build
Resulting fat-jar:
build/libs/modschecker-1.0.0.jar
Run
java -jar modschecker-1.0.0.jar
Example output

Configuration file
On first run, a modschecker.properties file is created next to the jar (or in the working directory).
Example:
modsDir=./mods
curseforgeApiKey=
gameId=432
verbose=false
jsonOutput=
language=ru
pauseOnExit=true
CLI options
--modsDir <path>: Mods folder (default./modsnext to the jar or cwd).--curseforgeApiKey <key>: API key (or envCURSEFORGE_API_KEY).--gameId <int>: Default432(Minecraft).--jsonOutput <path>: Save JSON report.--verbose: Print extra diagnostics.--language <lang>:ruoren.--pause: Wait for Enter before exit (default on Windows).--noPause: Do not wait for Enter.
Classification rules
A mod is considered client-only if:
- Modrinth
client_side=requiredandserver_side=unsupported(client required), or - Modrinth
client_side=requiredandserver_side=optional(client preferred).
If Modrinth data is not available, a heuristic is used based on keywords in mod names.
Notes
- CurseForge is used for identification only (no explicit client/server flags).
- No infinite retries or loops; HTTP timeouts are used.


