ItemCheck [1.20 - 1.21] icon

ItemCheck [1.20 - 1.21] -----

Anti-dupe with NBT fingerprinting and packet analysis protection.



ItemCheck - Anti-Dupe Protection
Supports 1.20.x - 1.21.x
How It Works
Every valuable item gets a unique fingerprint based on its NBT data. When players move items around, the plugin tracks these fingerprints and catches duplicates before they spread.

Key Features
  • Unique item fingerprinting with NBT tracking
  • Real-time duplicate detection
  • Packet manipulation protection
  • Shulker box exploit prevention
  • Book/chunk dupe detection
  • Inventory rollback protection
  • Custom item support for plugin items
  • Discord webhook alerts
  • Admin GUI dashboard
  • Transaction history logging

Commands
  • /antidupe - Opens admin dashboard
  • /antidupe register - Register custom items
  • /antidupe unregister <id> - Remove registered item
  • /antidupe list - Show all tracked items
  • /antidupe scan <player> - Scan player inventory
  • /antidupe reload - Reload configuration
  • /antidupe stats - View detection statistics
  • /antidupe clear - Clear detection data
  • /antidupe track <item> - Add item to tracking
  • /antidupe debug - Toggle debug mode

Permissions
  • antidupe.admin - Full access
  • antidupe.register - Register items
  • antidupe.unregister - Remove items
  • antidupe.list - View item list
  • antidupe.scan - Scan players
  • antidupe.reload - Reload config
  • antidupe.stats - View statistics
  • antidupe.clear - Clear data
  • antidupe.track - Track items
  • antidupe.debug - Debug mode
  • antidupe.notify - Get alerts
  • antidupe.bypass - Bypass detection

[​IMG]
[​IMG]
[​IMG]
[​IMG]
[​IMG]

Configuration
Code (YAML):
# AntiDupe Configuration
# General Settings
debug-mode
: false
auto-scan-on-join
: true
save-interval
: 300   # Save data every 5 minutes (in seconds)

# Language Settings
# Available languages: en_US, es_ES, zh_CN, ja_JP, ru_RU
language
: "en_US"

# Discord Notifications
notifications
:
  discord
:
    enabled
: false
    # Get your webhook URL from Discord Server Settings > Integrations > Webhooks
    # Example: https://discord.com/api/webhooks/1234567890/abcdefghijklmnopqrstuvwxyz
    webhook-url
: ""

    # What events to send to Discord
    send-detections
: true       # Send suspicious item detection alerts
    send-registrations
: true     # Send item registration notifications
    send-duplications
: true     # Send item duplication alerts
    quarantine-notifications
: true # Send notifications when items are quarantined

    # Minimum confidence score for detection alerts (0.0 to 1.0)
    # 0.3 = Low severity (30%)
    # 0.5 = Medium severity (50%)
    # 0.7 = High severity (70%)
    # 0.9 = Critical severity (90%)
    minimum-severity
: 0.5

    # Cooldown between webhook messages (in seconds) to prevent spam
    cooldown
: 5

    # Mention roles for critical alerts (use role IDs)
    # Example: ["&1234567890", "&0987654321"]
    mention-roles
: [ ]

    # Only send alerts for these item types (leave empty for all)
    # Example: [DIAMOND, NETHERITE_INGOT, ELYTRA]
    tracked-items
: [ ]

# Detection Settings
detection
:
  enabled
: true
  notify-admins
: true
  log-to-console
: true
  prevent-actions
:
    prevent-pickup
: false
    prevent-move
: false
    prevent-craft
: false
    prevent-trade
: false

# Packet Detection Settings
packet-detection
:
  enabled
: true

  # Base thresholds (will be adjusted based on conditions)
  max-packets-per-second
: 300
  max-click-speed
: 40
  max-creative-packets
: 50
  packet-delay-threshold
: 25

  # Sensitivity (0.5 = less sensitive, 1.0 = normal, 2.0 = more sensitive)
  sensitivity
: 1.0

  # Advanced detection features
  use-pattern-analysis
: true
  tps-compensation
: true

  # Warning system (warnings before flagging)
  warning-threshold
: 3

  # Confidence threshold for flagging (0.0 to 1.0)
  # 0.5 = flag at 50% confidence
  # 0.7 = flag at 70% confidence (recommended)
  # 0.9 = flag at 90% confidence (less false positives)
  base-confidence-threshold
: 0.7

  # Legitimate action recognition
  recognize-shift-click
: true
  recognize-double-click
: true
  recognize-drag-split
: true
  recognize-number-keys
: true

  # Action-specific delays (milliseconds)
  shift-click-delay
: 100
  double-click-delay
: 200
  number-key-delay
: 150

  # Pattern detection
  pattern-detection
:
    enabled
: true
    min-pattern-length
: 3
    human-variance-threshold
: 0.15
    macro-detection-threshold
: 0.7

  # Grace periods
  new-player-grace-minutes
: 5
  post-lag-grace-seconds
: 10

# Item Tracking Settings
tracking
:
  time-window-hours
: 24   # How long to track items
  expected-insertions
: 100000   # Expected number of unique items for bloom filter
  only-track-valuable
: true   # Only track items in the valuable list

# Valuable Items List
# These items will always be tracked regardless of the only-track-valuable setting
valuable-items
:
 - DIAMOND
  - DIAMOND_BLOCK
  - DIAMOND_ORE
  - DEEPSLATE_DIAMOND_ORE
  - NETHERITE_INGOT
  - NETHERITE_BLOCK
  - NETHERITE_SCRAP
  - ANCIENT_DEBRIS
  - EMERALD
  - EMERALD_BLOCK
  - EMERALD_ORE
  - DEEPSLATE_EMERALD_ORE
  - GOLD_INGOT
  - GOLD_BLOCK
  - GOLD_ORE
  - DEEPSLATE_GOLD_ORE
  - NETHER_GOLD_ORE
  - GOLD_NUGGET
  - RAW_GOLD
  - RAW_GOLD_BLOCK
  - IRON_INGOT
  - IRON_BLOCK
  - IRON_ORE
  - DEEPSLATE_IRON_ORE
  - IRON_NUGGET
  - RAW_IRON
  - RAW_IRON_BLOCK
  - COPPER_INGOT
  - COPPER_BLOCK
  - RAW_COPPER
  - RAW_COPPER_BLOCK
  - LAPIS_LAZULI
  - LAPIS_BLOCK
  - LAPIS_ORE
  - DEEPSLATE_LAPIS_ORE
  - REDSTONE
  - REDSTONE_BLOCK
  - REDSTONE_ORE
  - DEEPSLATE_REDSTONE_ORE
  - COAL
  - COAL_BLOCK
  - COAL_ORE
  - DEEPSLATE_COAL_ORE
  - QUARTZ
  - QUARTZ_BLOCK
  - NETHER_QUARTZ_ORE
  - AMETHYST_SHARD
  - AMETHYST_BLOCK
  - BUDDING_AMETHYST
  - ELYTRA
  - ENCHANTED_GOLDEN_APPLE
  - GOLDEN_APPLE
  - TOTEM_OF_UNDYING
  - BEACON
  - DRAGON_EGG
  - WITHER_SKELETON_SKULL
  - NETHER_STAR
  - SHULKER_BOX
  - WHITE_SHULKER_BOX
  - ORANGE_SHULKER_BOX
  - MAGENTA_SHULKER_BOX
  - LIGHT_BLUE_SHULKER_BOX
  - YELLOW_SHULKER_BOX
  - LIME_SHULKER_BOX
  - PINK_SHULKER_BOX
  - GRAY_SHULKER_BOX
  - LIGHT_GRAY_SHULKER_BOX
  - CYAN_SHULKER_BOX
  - PURPLE_SHULKER_BOX
  - BLUE_SHULKER_BOX
  - BROWN_SHULKER_BOX
  - GREEN_SHULKER_BOX
  - RED_SHULKER_BOX
  - BLACK_SHULKER_BOX

# Block Mining Tracking Settings
block-tracking
:
  enabled
: true
  track-all-blocks
: false   # If true, tracks ALL mined blocks. If false, uses whitelist below

  # Blocks to track when mined (only used if track-all-blocks is false)
  # These blocks will be tracked with IDs when players mine them
  tracked-blocks
:
    # Ore blocks
    - DIAMOND_ORE
    - DEEPSLATE_DIAMOND_ORE
    - EMERALD_ORE
    - DEEPSLATE_EMERALD_ORE
    - GOLD_ORE
    - DEEPSLATE_GOLD_ORE
    - NETHER_GOLD_ORE
    - IRON_ORE
    - DEEPSLATE_IRON_ORE
    - COPPER_ORE
    - DEEPSLATE_COPPER_ORE
    - COAL_ORE
    - DEEPSLATE_COAL_ORE
    - REDSTONE_ORE
    - DEEPSLATE_REDSTONE_ORE
    - LAPIS_ORE
    - DEEPSLATE_LAPIS_ORE
    - NETHER_QUARTZ_ORE
    - ANCIENT_DEBRIS

    # Valuable blocks
    - DIAMOND_BLOCK
    - NETHERITE_BLOCK
    - EMERALD_BLOCK
    - GOLD_BLOCK
    - IRON_BLOCK
    - COPPER_BLOCK
    - LAPIS_BLOCK
    - REDSTONE_BLOCK
    - COAL_BLOCK
    - RAW_GOLD_BLOCK
    - RAW_IRON_BLOCK
    - RAW_COPPER_BLOCK

    # Special blocks
    - BEACON
    - DRAGON_EGG
    - SPAWNER
    - GILDED_BLACKSTONE
    - OBSIDIAN
    - CRYING_OBSIDIAN
    - RESPAWN_ANCHOR
    - LODESTONE
    - ENCHANTING_TABLE
    - ENDER_CHEST

    # End blocks
    - END_STONE
    - PURPUR_BLOCK
    - PURPUR_PILLAR
    - END_STONE_BRICKS

    # Nether blocks
    - GLOWSTONE
    - SEA_LANTERN
    - SHROOMLIGHT
    - QUARTZ_BLOCK
    - NETHER_WART_BLOCK
    - WARPED_WART_BLOCK

    # Shulker boxes
    - SHULKER_BOX
    - WHITE_SHULKER_BOX
    - ORANGE_SHULKER_BOX
    - MAGENTA_SHULKER_BOX
    - LIGHT_BLUE_SHULKER_BOX
    - YELLOW_SHULKER_BOX
    - LIME_SHULKER_BOX
    - PINK_SHULKER_BOX
    - GRAY_SHULKER_BOX
    - LIGHT_GRAY_SHULKER_BOX
    - CYAN_SHULKER_BOX
    - PURPLE_SHULKER_BOX
    - BLUE_SHULKER_BOX
    - BROWN_SHULKER_BOX
    - GREEN_SHULKER_BOX
    - RED_SHULKER_BOX
    - BLACK_SHULKER_BOX

# Velocity Detection Settings
velocity
:
  enabled
: true
  time-window-ms
: 10000   # Time window for velocity checks (milliseconds)
  max-rates
: # Max items per second
    DIAMOND
: 0.5
    DIAMOND_BLOCK
: 0.05
    EMERALD
: 0.5
    EMERALD_BLOCK
: 0.05
    NETHERITE_INGOT
: 0.1
    NETHERITE_BLOCK
: 0.01
    ANCIENT_DEBRIS
: 0.2
    RAW_GOLD
: 0.8
    RAW_IRON
: 1.0
    RAW_COPPER
: 1.5
    GOLD_INGOT
: 0.5
    IRON_INGOT
: 0.8
    COPPER_INGOT
: 1.0
    ELYTRA
: 0.05
    ENCHANTED_GOLDEN_APPLE
: 0.2
    TOTEM_OF_UNDYING
: 0.3
    BEACON
: 0.1
    DRAGON_EGG
: 0.01
    WITHER_SKELETON_SKULL
: 0.2
    NETHER_STAR
: 0.05

# Cluster Detection Settings
cluster
:
  enabled
: true
  time-window-ms
: 3000   # Time window for cluster detection
  threshold
: 5   # Number of identical items to trigger

# Cross Validation Settings
cross-validation
:
  enabled
: true
  loss-event-window-ms
: 5000   # Time to check for corresponding loss events

# Quarantine System Settings
quarantine
:
  # Automatically quarantine items with high confidence scores
  auto-quarantine-suspicious
: false

  # Minimum confidence score to auto-quarantine (0.0 to 1.0)
  auto-confidence-threshold
: 0.8

  # Maximum items per player that can be quarantined
  max-items-per-player
: 54

  # Hours before quarantined items are automatically released
  auto-release-hours
: 72

  # Notify player when their items are quarantined
  notify-player
: true

# Async Batch Scanner Settings
scanner
:
  # Number of players to scan simultaneously in batch operations
  batch-size
: 10

  # Maximum concurrent scan operations
  max-concurrent
: 4

  # Timeout for individual scans in milliseconds
  timeout-ms
: 30000

  # Automatically scan all players periodically
  periodic-scan
:
    enabled
: false
    interval-minutes
: 60

# Transaction Logging Settings
transactions
:
  enabled
: true
  max-history-size
: 10000   # Maximum number of transactions to keep

# Plugin Integration
plugin-integration
:
  auto-discover
: true
  whitelisted-plugins
:
   - MMOItems
    - ItemsAdder
    - Oraxen
    - ExecutableItems
    - MythicMobs
    - CustomItems

# Storage Settings
storage
:
  type
: FILE   # Options: FILE, MYSQL
  save-registered-items
: true
  save-transactions
: false

  # MySQL Settings (if type is MYSQL)
  mysql
:
    host
: localhost
    port
: 3306
    database
: antidupe
    username
: root
    password
: password
    use-ssl
: false

# Performance Settings
performance
:
  async-detection
: true
  cleanup-interval
: 600   # Cleanup old data every 10 minutes (seconds)
  max-cpu-usage
: 50   # Maximum CPU usage percentage

# Messages
messages
:
  prefix
: "&c[AntiDupe] &r"
  item-flagged
: "&cThis item has been flagged as suspicious!"
  crafting-blocked
: "&cCrafting blocked due to suspicious activity!"
  trading-blocked
: "&cTrading blocked due to suspicious activity!"
  scan-complete
: "&aScan complete! Found %count% suspicious items

You can add more items in config.yml and adjust detection sensitivity.

Detection Methods
  • Velocity Tracking: Catches items appearing too fast
  • Cluster Detection: Spots identical items in groups
  • Cross Validation: Verifies item movements match expected behavior
  • Packet Analysis: Detects client manipulation attempts
  • Pattern Recognition: Identifies macro and bot patterns

If you discover issues or bugs please report them via Discussions please!
Resource Information
Author:
----------
Total Downloads: 49
First Release: Sep 25, 2025
Last Update: Oct 5, 2025
Category: ---------------
All-Time Rating:
3 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings