No Mod Left Behind helps Minecraft modpacks identify missing externally hosted mod files before startup continues. It
compares the files in the instance mods directory with the filename patterns in its configuration. On the client, a
startup window shows missing mods and provides links that open in the default browser. On a dedicated server, missing
required mods stop startup and missing optional mods are reported as warnings.
No Mod Left Behind does not download or install the files automatically. The configured URL is used as the source page or download link that the player or server administrator can open.
Download No Mod Left Behind from Modrinth. It supports Minecraft versions 1.21 through 1.21.8 with NeoForge.
The configuration file is created automatically at config/nomodleftbehind/nomodleftbehind.json relative to the
Minecraft instance directory. An empty file contains three empty lists:
{
"clientMods": [],
"serverMods": [],
"trustedDomains": []
}clientMods contains mod definitions needed by the client. serverMods contains mod definitions needed by a dedicated
server. A definition may appear in both lists when the same mod is required in both environments. trustedDomains can
contain additional website domains that the modpack author trusts. Each configured domain also covers its subdomains.
Each entry in either list has a name, a url, a filePattern, and an isOptional value. The name identifies the
mod in the startup window and server log. The url should be a secure HTTPS web link to the mod. It must use
modrinth.com, curseforge.com, forgecdn.net, github.com, or githubusercontent.com, including their subdomains.
Links that use an IP address instead of a website name are not accepted. The validator does not contact the URL or
follow redirects during startup. The filePattern is a Java regular expression matched against the
complete filename in the mods directory, so an expression such as example-mod-[0-9]+\\.jar can match versioned JAR
files. You can use
regex101.com
to test and refine patterns; select the Java flavor when
testing. The isOptional value controls whether a missing file is required for startup. It defaults to false when
omitted.
For example:
{
"clientMods": [
{
"name": "Example Client Mod",
"url": "https://downloads.example.com/example-client-mod.jar",
"filePattern": "example-client-mod-[0-9]+\\.jar",
"isOptional": false,
"fileHash": "abcdef" // THIS IS AUTOMATICALLY GENERATED BY NMLB
},
{
"name": "Example Cosmetic Mod",
"url": "https://downloads.example.com/example-cosmetic-mod.jar",
"filePattern": "example-cosmetic-mod-[0-9]+\\.jar",
"isOptional": true
}
],
"serverMods": [
{
"name": "Example Server Mod",
"url": "https://downloads.example.com/example-server-mod.jar",
"filePattern": "example-server-mod-[0-9]+\\.jar",
"isOptional": false
}
],
"trustedDomains": [
"example.com"
]
}Both mod lists must be present, and every entry must provide a non-empty name, URL, and filename pattern. URLs must be
unique within each list. The same URL may be used once in clientMods and once in serverMods. The trustedDomains
list is optional, and each entry must be a bare domain name without a scheme, path, port, or wildcard.
No Mod Left Behind records a SHA-256 hash in nomodleftbehind.json for configured mods. On later startups, the hash is
checked against the matching
file in the mods directory. A mismatch is shown as a checksum warning so that an outdated, incomplete, or unexpected
file is not silently accepted. This increases safety for users by preventing changes to mod files going unnoticed after
a modpack has been released.
If you intentionally update a mod, remove the fileHash property from that mod's entry in
config/nomodleftbehind/nomodleftbehind.json. No Mod Left Behind will calculate and save the new hash on the next
startup.