ModsJava
BedrockAntiDupe
Advanced anti-duplication protection with transaction tracking, item integrity, conservation checks. Free Minecraft Java mod for 26.2.
⬇ Download on Spigot️ BedrockAntiDupe 2.7.4
Advanced Java & Bedrock Player Duplication Protection
BedrockAntiDupe is a production-focused server-side anti-duplication and transaction-integrity plugin for modern Minecraft Java Edition servers running Paper 26.2 and Java 25.
It is designed to protect both Java Edition players and Bedrock Edition players connected through Geyser/Floodgate, with transaction-aware protection across inventories, containers, item movement, crafting, trading, economy, and other high-risk item flows.
«One server. One protection layer. Java + Bedrock player support.»
---
Highlights
️ Advanced Dupe Protection
Multi-layer protection against suspicious item creation and transaction inconsistencies.
Transaction-Aware Detection
Correlates actions instead of treating every inventory change as a separate suspicious event.
Item Fingerprinting
Tracks relevant item state instead of relying only on "Material".
Conservation Validation
Detects unexpected positive item deltas while attempting to ignore legitimate and unrelated inventory changes.
Persistent Journal
Maintains transaction-related state to support interrupted transactions and recovery.
♻️ Recovery System
Provides controlled, idempotent recovery handling for incomplete or suspicious transactions.
Java + Bedrock Players
Protects Java Edition players and Bedrock players connected through Geyser/Floodgate on the same Paper server.
Optional Economy Integration
Vault integration is optional and does not replace the core inventory protection system.
Shop Transaction Protection
Provides a transaction-oriented abstraction for shop/economy integrations rather than depending solely on GUI titles.
---
Protection Layers
BedrockAntiDupe uses a defense-in-depth architecture.
Inventory Protection
Monitors important inventory operations including:
- Normal inventory clicks
- Shift-click
- Inventory drag
- Number-key swaps
- Double-click collection
- Item pickup
- Item dropping
- Player inventory changes
- Inventory transfers
- Rapid inventory actions
The protection layer is designed to correlate related operations into transaction state.
---
Container Protection
Protection extends to common storage and automation systems:
- Chests
- Barrels
- Shulker Boxes
- Hoppers
- Hopper Minecarts
- Droppers
- Dispensers
- Container Minecarts
- Automated container transfers
- Container state changes
This is especially important for duplication mechanisms involving automated item movement.
---
⚒️ Gameplay Transaction Protection
BedrockAntiDupe also covers high-value item creation and transfer paths such as:
- Crafting
- Smithing
- Anvil operations
- Villager trading
- Death
- Respawn
- Teleportation
- Logout
- Reconnect
- Container transitions
- Player-state transitions
---
Item Fingerprinting
Traditional anti-dupe systems can make mistakes when they identify an item only by its material.
BedrockAntiDupe instead considers relevant item state.
Fingerprinting can include:
- Material
- Amount
- Item data
- Data Components
- Enchantments
- Custom data
- Persistent data
- Relevant item metadata/state
This allows the protection layer to distinguish between different states of otherwise similar items.
---
Transaction Correlation
A protected operation follows a transaction lifecycle:
BEGIN
↓
BEFORE STATE
↓
EVENT
↓
AFTER STATE
↓
CORRELATION
↓
VALIDATION
↓
COMMIT / REJECT
Transactions can associate:
- Player
- Container
- Source
- Destination
- Item identity
- Amount
- Result
- Transaction state
This helps prevent unrelated inventory changes from being incorrectly classified as duplication.
---
Conservation Detection
BedrockAntiDupe uses conservation principles to detect unexpected item creation.
Conceptually:
SOURCE
+
LEGITIMATE CREATION
-
LEGITIMATE CONSUMPTION
=
EXPECTED RESULT
If the resulting state contains more relevant items than the transaction can legitimately explain, the transaction can be flagged for investigation or protection handling.
False-positive protection
Unrelated items should not automatically create a duplication delta.
The conservation system is transaction-scoped rather than simply comparing every item in an inventory.
---
Persistent Transaction Journal
Important transaction state can be recorded in a persistent journal.
Designed to help with:
- Server restarts
- Interrupted transactions
- Unexpected shutdowns
- Incomplete transaction state
- Recovery processing
- Duplicate recovery prevention
The goal is to avoid losing the information required to safely reason about an interrupted transaction.
---
♻️ Recovery Engine
Recovery follows a controlled lifecycle:
LOCK TRANSACTION
↓
VERIFY CURRENT STATE
↓
VERIFY EVIDENCE
↓
RESTORE
↓
VERIFY RESTORED STATE
↓
COMMIT RECOVERY
↓
MARK RECOVERED
Recovery is designed to be idempotent.
Running recovery more than once should not intentionally:
- Duplicate items
- Delete legitimate items
- Apply the same rollback twice
- Create inconsistent transaction state
---
️ Java Edition + Bedrock Edition Players
BedrockAntiDupe is a Java server plugin.
It does not run as a native Bedrock Edition server plugin.
Instead, it protects Bedrock players who connect to the Java server through:
Geyser + Floodgate
This means a server can have:
Java Player
↓
Paper 26.2
↓
BedrockAntiDupe
↑
Geyser/Floodgate
↑
Bedrock Player
Both player types use the same server-side transaction protection layer.
Why this matters
Duplication protection should happen on the authoritative server side.
Client platform should not be trusted as the security boundary.
---
Economy Protection
Vault is supported as an optional integration.
The core anti-duplication system does not require Vault to function.
Vault installed
Inventory Transaction
↓
Economy Transaction
↓
Correlation
↓
Validation
Vault unavailable
Core Anti-Dupe
↓
Still operates
Economy rollback
↓
Gracefully unavailable
This prevents an optional economy dependency from becoming a hard requirement for core anti-dupe protection.
---
Shop Integration
Shop systems can introduce additional item/economy transaction paths.
BedrockAntiDupe provides a transaction-oriented integration layer for supported shop implementations.
A protected shop transaction can correlate:
PURCHASE
↓
ITEM RESULT
↓
PAYMENT
↓
INVENTORY STATE
↓
TRANSACTION VALIDATION
The plugin does not claim universal compatibility with every third-party shop.
Compatibility is plugin/version specific and should be verified against the actual shop implementation.
---
Discord Webhook
Optional Discord notifications can be used for security-related events.
Webhook operations are designed to be asynchronous.
Features include:
- Async HTTP
- Connection timeout
- Read timeout
- Error handling
- Retry handling
- Rate-limit awareness
- Shutdown-safe processing
A webhook failure should not be allowed to crash the Minecraft server or become the core transaction dependency.
---
️ SQLite Persistence
Built-in SQLite support provides local persistent storage without requiring a separate database server.
Useful for persistent:
- Transaction information
- Evidence
- Recovery state
- Security-related records
---
Evidence System
Suspicious transactions can be associated with evidence to make investigations more reliable.
Evidence may include transaction-related information such as:
- Player
- Transaction identity
- Item identity
- Source
- Destination
- Amount
- Before state
- After state
- Detection reason
- Timestamp
This provides administrators with more context than a simple "dupe detected" message.
---
⚡ Performance
Designed for multiplayer Paper servers with a focus on avoiding unnecessary server-thread work.
The architecture aims to prevent:
- Blocking HTTP requests
- Unnecessary synchronous file I/O
- Unbounded caches
- Unbounded retry queues
- Infinite transaction state
- Expensive repeated world scans
- Unnecessary per-tick processing
Paper/Bukkit API operations are handled on the appropriate server thread where required.
---
Restart & Shutdown Safety
The plugin is designed to clean up:
- Scheduled tasks
- Executors
- Transaction state
- Persistent resources
- Database resources
- Network resources
Shutdown handling is important because transaction protection should not leave behind permanently locked or incomplete state.
---
Testing & Quality
The project includes automated regression tests for core transaction and protection logic.
CI validation is designed to verify:
- Java 25
- Paper 26.2
- Compilation
- Automated tests
- Plugin startup
- Plugin shutdown
- JAR validation
- Release artifact integrity
Additional real-player, power-loss, and third-party integration tests should only be considered verified when actually executed in the corresponding staging environment.
---
Compatibility
Server
Paper 26.2
Java
Java 25
Player Platforms
Java Edition
Bedrock Edition via Geyser/Floodgate
Optional Integration
Vault
Storage
SQLite
---
Installation
1. Download "BedrockAntiDupe-2.7.4.jar".
2. Place the JAR in your Paper server's "plugins" folder.
3. Start the server.
4. Review the generated configuration.
5. Configure permissions and protection options.
6. Restart the server if required.
Recommended Environment
Paper 26.2
Java 25
Geyser (optional)
Floodgate (optional)
Vault (optional)
---
Administration
Use the plugin's available administrative commands to inspect status, reload configuration, and manage protection features.
Run:
/antidupe help
to view the commands available in the installed build.
---
Security Philosophy
BedrockAntiDupe follows a defense-in-depth approach.
No single event listener or heuristic should be treated as the entire anti-dupe system.
Instead:
Inventory
+
Container
+
Transaction
+
Fingerprint
+
Conservation
+
Evidence
+
Journal
+
Recovery
+
Economy / Shop Correlation
creates multiple independent layers of protection.
---
⚠️ Important Notice
BedrockAntiDupe is a server-side Java plugin.
Bedrock Edition support means protection for Bedrock players connected to a Java server through Geyser/Floodgate.
Compatibility with other server implementations, Minecraft versions, or third-party plugins should not be assumed unless specifically tested.
Do not advertise untested third-party integrations as guaranteed compatible.
---
Support & Bug Reports
When reporting a suspected duplication issue, provide:
- BedrockAntiDupe version
- Paper version
- Java version
- Geyser/Floodgate version if applicable
- Other relevant plugins
- Reproduction steps
- Server logs
- Transaction/evidence information when available
Reproducible security reports are especially valuable for improving protection.
---
Source Code
GitHub:
https://github.com/KingBrezzX/Anti-Duper
---
BedrockAntiDupe 2.7.4
Advanced transaction-aware anti-duplication protection for Paper servers — protecting Java and Geyser/Floodgate Bedrock players from the same server-side security layer.
Advanced Java & Bedrock Player Duplication Protection
BedrockAntiDupe is a production-focused server-side anti-duplication and transaction-integrity plugin for modern Minecraft Java Edition servers running Paper 26.2 and Java 25.
It is designed to protect both Java Edition players and Bedrock Edition players connected through Geyser/Floodgate, with transaction-aware protection across inventories, containers, item movement, crafting, trading, economy, and other high-risk item flows.
«One server. One protection layer. Java + Bedrock player support.»
---
Highlights
️ Advanced Dupe Protection
Multi-layer protection against suspicious item creation and transaction inconsistencies.
Transaction-Aware Detection
Correlates actions instead of treating every inventory change as a separate suspicious event.
Item Fingerprinting
Tracks relevant item state instead of relying only on "Material".
Conservation Validation
Detects unexpected positive item deltas while attempting to ignore legitimate and unrelated inventory changes.
Persistent Journal
Maintains transaction-related state to support interrupted transactions and recovery.
♻️ Recovery System
Provides controlled, idempotent recovery handling for incomplete or suspicious transactions.
Java + Bedrock Players
Protects Java Edition players and Bedrock players connected through Geyser/Floodgate on the same Paper server.
Optional Economy Integration
Vault integration is optional and does not replace the core inventory protection system.
Shop Transaction Protection
Provides a transaction-oriented abstraction for shop/economy integrations rather than depending solely on GUI titles.
---
Protection Layers
BedrockAntiDupe uses a defense-in-depth architecture.
Inventory Protection
Monitors important inventory operations including:
- Normal inventory clicks
- Shift-click
- Inventory drag
- Number-key swaps
- Double-click collection
- Item pickup
- Item dropping
- Player inventory changes
- Inventory transfers
- Rapid inventory actions
The protection layer is designed to correlate related operations into transaction state.
---
Container Protection
Protection extends to common storage and automation systems:
- Chests
- Barrels
- Shulker Boxes
- Hoppers
- Hopper Minecarts
- Droppers
- Dispensers
- Container Minecarts
- Automated container transfers
- Container state changes
This is especially important for duplication mechanisms involving automated item movement.
---
⚒️ Gameplay Transaction Protection
BedrockAntiDupe also covers high-value item creation and transfer paths such as:
- Crafting
- Smithing
- Anvil operations
- Villager trading
- Death
- Respawn
- Teleportation
- Logout
- Reconnect
- Container transitions
- Player-state transitions
---
Item Fingerprinting
Traditional anti-dupe systems can make mistakes when they identify an item only by its material.
BedrockAntiDupe instead considers relevant item state.
Fingerprinting can include:
- Material
- Amount
- Item data
- Data Components
- Enchantments
- Custom data
- Persistent data
- Relevant item metadata/state
This allows the protection layer to distinguish between different states of otherwise similar items.
---
Transaction Correlation
A protected operation follows a transaction lifecycle:
BEGIN
↓
BEFORE STATE
↓
EVENT
↓
AFTER STATE
↓
CORRELATION
↓
VALIDATION
↓
COMMIT / REJECT
Transactions can associate:
- Player
- Container
- Source
- Destination
- Item identity
- Amount
- Result
- Transaction state
This helps prevent unrelated inventory changes from being incorrectly classified as duplication.
---
Conservation Detection
BedrockAntiDupe uses conservation principles to detect unexpected item creation.
Conceptually:
SOURCE
+
LEGITIMATE CREATION
-
LEGITIMATE CONSUMPTION
=
EXPECTED RESULT
If the resulting state contains more relevant items than the transaction can legitimately explain, the transaction can be flagged for investigation or protection handling.
False-positive protection
Unrelated items should not automatically create a duplication delta.
The conservation system is transaction-scoped rather than simply comparing every item in an inventory.
---
Persistent Transaction Journal
Important transaction state can be recorded in a persistent journal.
Designed to help with:
- Server restarts
- Interrupted transactions
- Unexpected shutdowns
- Incomplete transaction state
- Recovery processing
- Duplicate recovery prevention
The goal is to avoid losing the information required to safely reason about an interrupted transaction.
---
♻️ Recovery Engine
Recovery follows a controlled lifecycle:
LOCK TRANSACTION
↓
VERIFY CURRENT STATE
↓
VERIFY EVIDENCE
↓
RESTORE
↓
VERIFY RESTORED STATE
↓
COMMIT RECOVERY
↓
MARK RECOVERED
Recovery is designed to be idempotent.
Running recovery more than once should not intentionally:
- Duplicate items
- Delete legitimate items
- Apply the same rollback twice
- Create inconsistent transaction state
---
️ Java Edition + Bedrock Edition Players
BedrockAntiDupe is a Java server plugin.
It does not run as a native Bedrock Edition server plugin.
Instead, it protects Bedrock players who connect to the Java server through:
Geyser + Floodgate
This means a server can have:
Java Player
↓
Paper 26.2
↓
BedrockAntiDupe
↑
Geyser/Floodgate
↑
Bedrock Player
Both player types use the same server-side transaction protection layer.
Why this matters
Duplication protection should happen on the authoritative server side.
Client platform should not be trusted as the security boundary.
---
Economy Protection
Vault is supported as an optional integration.
The core anti-duplication system does not require Vault to function.
Vault installed
Inventory Transaction
↓
Economy Transaction
↓
Correlation
↓
Validation
Vault unavailable
Core Anti-Dupe
↓
Still operates
Economy rollback
↓
Gracefully unavailable
This prevents an optional economy dependency from becoming a hard requirement for core anti-dupe protection.
---
Shop Integration
Shop systems can introduce additional item/economy transaction paths.
BedrockAntiDupe provides a transaction-oriented integration layer for supported shop implementations.
A protected shop transaction can correlate:
PURCHASE
↓
ITEM RESULT
↓
PAYMENT
↓
INVENTORY STATE
↓
TRANSACTION VALIDATION
The plugin does not claim universal compatibility with every third-party shop.
Compatibility is plugin/version specific and should be verified against the actual shop implementation.
---
Discord Webhook
Optional Discord notifications can be used for security-related events.
Webhook operations are designed to be asynchronous.
Features include:
- Async HTTP
- Connection timeout
- Read timeout
- Error handling
- Retry handling
- Rate-limit awareness
- Shutdown-safe processing
A webhook failure should not be allowed to crash the Minecraft server or become the core transaction dependency.
---
️ SQLite Persistence
Built-in SQLite support provides local persistent storage without requiring a separate database server.
Useful for persistent:
- Transaction information
- Evidence
- Recovery state
- Security-related records
---
Evidence System
Suspicious transactions can be associated with evidence to make investigations more reliable.
Evidence may include transaction-related information such as:
- Player
- Transaction identity
- Item identity
- Source
- Destination
- Amount
- Before state
- After state
- Detection reason
- Timestamp
This provides administrators with more context than a simple "dupe detected" message.
---
⚡ Performance
Designed for multiplayer Paper servers with a focus on avoiding unnecessary server-thread work.
The architecture aims to prevent:
- Blocking HTTP requests
- Unnecessary synchronous file I/O
- Unbounded caches
- Unbounded retry queues
- Infinite transaction state
- Expensive repeated world scans
- Unnecessary per-tick processing
Paper/Bukkit API operations are handled on the appropriate server thread where required.
---
Restart & Shutdown Safety
The plugin is designed to clean up:
- Scheduled tasks
- Executors
- Transaction state
- Persistent resources
- Database resources
- Network resources
Shutdown handling is important because transaction protection should not leave behind permanently locked or incomplete state.
---
Testing & Quality
The project includes automated regression tests for core transaction and protection logic.
CI validation is designed to verify:
- Java 25
- Paper 26.2
- Compilation
- Automated tests
- Plugin startup
- Plugin shutdown
- JAR validation
- Release artifact integrity
Additional real-player, power-loss, and third-party integration tests should only be considered verified when actually executed in the corresponding staging environment.
---
Compatibility
Server
Paper 26.2
Java
Java 25
Player Platforms
Java Edition
Bedrock Edition via Geyser/Floodgate
Optional Integration
Vault
Storage
SQLite
---
Installation
1. Download "BedrockAntiDupe-2.7.4.jar".
2. Place the JAR in your Paper server's "plugins" folder.
3. Start the server.
4. Review the generated configuration.
5. Configure permissions and protection options.
6. Restart the server if required.
Recommended Environment
Paper 26.2
Java 25
Geyser (optional)
Floodgate (optional)
Vault (optional)
---
Administration
Use the plugin's available administrative commands to inspect status, reload configuration, and manage protection features.
Run:
/antidupe help
to view the commands available in the installed build.
---
Security Philosophy
BedrockAntiDupe follows a defense-in-depth approach.
No single event listener or heuristic should be treated as the entire anti-dupe system.
Instead:
Inventory
+
Container
+
Transaction
+
Fingerprint
+
Conservation
+
Evidence
+
Journal
+
Recovery
+
Economy / Shop Correlation
creates multiple independent layers of protection.
---
⚠️ Important Notice
BedrockAntiDupe is a server-side Java plugin.
Bedrock Edition support means protection for Bedrock players connected to a Java server through Geyser/Floodgate.
Compatibility with other server implementations, Minecraft versions, or third-party plugins should not be assumed unless specifically tested.
Do not advertise untested third-party integrations as guaranteed compatible.
---
Support & Bug Reports
When reporting a suspected duplication issue, provide:
- BedrockAntiDupe version
- Paper version
- Java version
- Geyser/Floodgate version if applicable
- Other relevant plugins
- Reproduction steps
- Server logs
- Transaction/evidence information when available
Reproducible security reports are especially valuable for improving protection.
---
Source Code
GitHub:
https://github.com/KingBrezzX/Anti-Duper
---
BedrockAntiDupe 2.7.4
Advanced transaction-aware anti-duplication protection for Paper servers — protecting Java and Geyser/Floodgate Bedrock players from the same server-side security layer.
BedrockAntiDupe is a free Minecraft Java mod. Compatible with Minecraft 26.2. Downloaded 41 times (via Spigot). Download it and open it directly in the game.