2.9.4+mc26.1
Compatibility
Required content
Changes
DropGuard 2.9.4
- Exact-variant rules now serialize actual item components, including nested shulker contents, instead of relying on potentially ambiguous debug strings. Component order no longer changes protection; durability and stack count remain excluded.
- Protected items are now guarded against Creative hotbar throws and outside cursor drops.
- User-initiated inventory closing is blocked when a protected cursor item cannot fit back into the inventory. Both screen closing and the player close-container path are checked. The existing bypass chord still applies.
- Fixed duplicate drops when the bypass chord includes the normal drop key, and nested menus caused by queued menu events.
- Preserved corrupt configuration files before recovery, retained existing protection/migration behavior, and avoided redundant settings writes.
- Invalid bindings display as Unbound. Missing modded items retain their saved name or registry ID instead of appearing as Air.
- Component identities use a bounded cache cleared on disconnect or registry changes.
Compatibility notes
Existing v2 and older rules remain supported. Ambiguous old v2 shulker rules cannot be reconstructed from data that was never stored; remove and reselect an affected exact-variant rule to create a precise v3 rule. Existing rules are not silently discarded.
The new close check covers the cursor item. Overflow from automatically returned crafting or anvil input items is not covered. Server-forced closure and server-driven item removal are not guaranteed to be prevented. Third-party components whose codecs fail retain legacy identity behavior.
Requires Fabric Loader and Fabric API. Client-side mod.
Validation for this Minecraft 26.1 build: 185 checks passed in an isolated client and integrated server, including respawn and reconnect. Test code is excluded from the release jar.
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:bpmsU9qg:bAQelT8V"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:bpmsU9qg:bAQelT8V"
}

