2.9.4+mc1.21.6
Compatibility
Required content
Changes
DropGuard 2.9.4
- New exact-variant rules serialize actual item components, including nested shulker contents. Different contents no longer share protection merely because their debug strings match.
- Component identity is independent of object-key order. Durability and stack count remain excluded from exact-variant matching.
- Added protection for 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 prevented repeated queued menu events from opening nested menus.
- Preserved corrupt configuration files before recovery, retained existing protections and migration behavior, and avoided redundant settings writes.
- Invalid key bindings now display as Unbound. Missing modded items retain their saved name or registry ID instead of appearing as Air.
- Added a bounded component-identity cache that clears 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; use the file matching your Minecraft version.
Validation for this Minecraft 1.21.6 build: 185 checks passed in a real Minecraft client and integrated server, including saving, disconnecting and rejoining.
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:s3LXrwuB"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:bpmsU9qg:s3LXrwuB"
}

