HomeJavaModsItemCheck [1.20 - 1.21]
ItemCheck [1.20 - 1.21]
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

Commands

Permissions

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

Configuration
Spoiler: Config.yml
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

If you discover issues or bugs please report them via Discussions please!

Commands

Plugin details

Read from the plugin's own plugin.yml.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

ItemCheck [1.20 - 1.21] is a free Minecraft Java mod. Compatible with Minecraft 1.20, 1.20.6, 1.21. Downloaded 232 times (via Spigot). Download it and open it directly in the game.

Explore more