All versions
1.0.0
Release
Dupe Detection 1.0.010 months ago 25
Compatibility
Minecraft: Java Edition
1.21.8
Platforms
Paper
Purpur
Changes
DupeDetection Plugin
A powerful Minecraft Paper plugin designed to detect and prevent item duplication exploits on your server.
🚀 Features
📦 Large Stack Detection
- Detects when players have large amounts of items
- Configurable limits for each item type (e.g. max 512 diamonds, 8 netherite ingots)
- Checks all storage containers: chests, barrels, hoppers, furnaces, etc.
- Counts total items across ALL inventory slots
🔍 NBT Duplicate Detection
- Identifies suspicious identical items with same enchantments/modifications
- Individual configuration per item type
- Smart detection: only flags items with special NBT data (duplicate enchants, names, etc.)
- Catches duplication of gear & items
🔔 Discord Integration
- Discord webhook notifications with embeds
- @everyone mentions
- Detailed violation reports with player info, location, and teleport commands
- Puts multiple violations from same container into single message

⚡ Exception System
- Excempts specific players or UUIDs from all dupe checks
- JSON storage for persistent exceptions
- Easy management through in-game commands
- Tab completion
📋 Requirements
- Minecraft Version: 1.21.8
- Server Software: Paper (or Paper-based forks)
- Java Version: 21+
🛠️ Installation
- Download the latest release from Releases
- Place the JAR file in your server's
plugins/folder - Restart your server
- Configure the plugin in
plugins/DupeDetection/config.yml
⚙️ Configuration
Discord Setup
discord:
enabled: true
webhook-url: "YOUR_DISCORD_WEBHOOK_URL"
mention-everyone: true
username: "DupeDetection Bot"
Large Stack Limits
large-stack-detection:
enabled: true
action: "WARN" # LOG, WARN, REMOVE_EXCESS, BAN
limits:
DIAMOND: 512
NETHERITE_INGOT: 8
ELYTRA: 1
NBT Duplicate Detection
nbt-duplicate-detection:
enabled: true
items:
DIAMOND_SWORD:
minimum-duplicates: 10
action: "WARN"
check-nbt: true # Only check enchanted swords
🎮 Commands
| Command | Description | Permission |
|---|---|---|
/dupedetection info |
Show plugin information | dupedetection.admin |
/dupedetection reload |
Reload configuration | dupedetection.admin |
/dupedetection limits |
Show current stack limits | dupedetection.admin |
/dupedetection setlimit <item> <amount> |
Set item limit | dupedetection.admin |
/dupedetection check <player> |
Manually check player | dupedetection.admin |
/dupedetection exception add <player> |
Add exception | dupedetection.admin |
/dupedetection exception remove <player> |
Remove exception | dupedetection.admin |
/dupedetection exception list |
List exceptions | dupedetection.admin |
Aliases: /dd, /dupedect
🔐 Permissions
dupedetection.admin- Full plugin access (default: op)dupedetection.bypass- Bypass all dupe detection (default: false)
🔧 How It Works
Detection Triggers
- Storage Container Close: Chests, barrels, hoppers, furnaces, etc.
- Player Inventory Close: When players close their inventory (5-second cooldown)
Detection Process
- Player closes container/inventory
- System scans all items in the inventory
- Checks against configured limits and NBT patterns
- Sends Discord notification if violations found
- Notifies online operators
Stealth Operation
- No player notifications - violators are unaware of detection
- Silent monitoring - only admins receive alerts
- logging - all activity tracked
🚨 Discord Notifications
Embeds notifications include:
- Player Information: Name, UUID, avatar
- Violation Details: Item types, amounts, limits exceeded
- Location Data: Exact coordinates and world
- Quick Actions: Teleport command
- Container Info: Type of storage block involved
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:mvookygo:8a2Bh6Rd"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mvookygo:8a2Bh6Rd"
}

