All versions
2.5.1
Release
Resourceloader 2.5.1last month 10
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
Resourceloader 2.5.1
Fixes
- Players are no longer kicked for declining or failing an optional pack. With enforcement off (the default), declining a pack sent by
/load, or failing to download it, kicked the player, and operators withresourceloader.bypasswere kicked as well. Kicks now only happen whenenforcement.enabledis on, and only for the pack enforced on join. A pack a player picks later can be declined freely. - Packs copied into the
packsfolder while the server was off are now detected on startup and on/resourcereload. Before, only packs added while the server was running got registered. Files that aren't valid zips are skipped with a warning. Customstorage.resource-pack-directoryfolders are now watched too. - Merged packs work on 1.21.9+ and 26.x.
/mergepacknever actually saved the updatedpack.mcmetainto the zip, and its version table stopped at 1.21, so 26.x clients saw merged packs as incompatible. Merged packs now declare a format range covering every input pack and the server's own version, in the layout newer clients require (min_format/max_format, plussupported_formatsfor older ones). - Merge priority with 3+ packs: a file from a middle pack could be overridden by the first pack. Later packs now always win.
- Merging no longer drops content from lower packs: language strings, texture atlas sources and
sounds.jsonentries are combined the way the game combines stacked packs. Models are no longer broken by gluing together elements from different packs. /autoloadnow works with URL packs (it used to do nothing), matches pack names case-insensitively, and players with bypass still get their own autoload pack on join.- Enforcement: the enforced pack is now sent as required.
enforcement.restrict(blocking/tp,/home,/spawn… and interactions until the pack has loaded) now works. An autoload preference pointing at a removed pack no longer lets a player skip the enforced pack. - URL packs: if the pack's host is down, the cached copy is used instead of failing. Unchanged packs are no longer re-downloaded after a restart. An interrupted download no longer leaves a broken cached file.
cache.enabled: falseno longer breaks URL packs. enforcement.use-server-properties:/autoloadpreferences now apply on join, and a preferred pack is added on top of the server.properties pack instead of replacing it./checkpack: accepts 1.21.9+/26.x packs that usemin_format/max_format, flags the samepack.mcmetamistakes the game refuses to load, warns when a pack's version doesn't match the server, stops reporting vanilla textures as missing, and no longer shows "successful" next to critical issues.- Merge GUI: selected packs now show "✓ Selected", and clicking items in your own inventory no longer triggers the Merge/Cancel buttons.
/mergepackoutput names are cleaned up, so a name can no longer write outside the packs folder.- A warning is logged at startup when
server.addressis empty and the detected address is a loopback or Docker one, the usual reason pack downloads fail on Docker/Pterodactyl hosts. - Packs are no longer re-hashed on every send, which cuts join lag with large packs.
/loadwith a URL pack shows "Loading…" once instead of twice.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:8yUJvGSE:XWUJm9jq"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8yUJvGSE:XWUJm9jq"
}

