HomeJavaModsBedrockAntiDupe
BedrockAntiDupe
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.

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.

Explore more