DupeSight
AvailableValue cannot appear inside a chest that only ever moves items, so DupeSight measures it and tells you when it does. Every finding is written down with a timeline you can still read weeks later, and the investigation works after the suspect has logged off.
- Admin & Performance
- Moderation & Staff
- anti-dupe
- exploits
- evidence
- staff tools
What it does
A dupe is the only thing that makes value appear
Every material carries a weight on a shared scale where one diamond is 1. Inside a chest, barrel, shulker or hopper — inventories that only ever move items — the total a player can see must never rise. Crafting is neutral, because nine diamonds and one diamond block are both worth 9. Packing a shulker is neutral, because contents are counted recursively. Duplication is the only thing left that raises the total.
The same shulker, under two players, three days apart
Container contents are hashed — sorted first, so shuffling a slot changes nothing — and recorded against whoever holds them. When identical contents turn up under a second player, days later or across a restart, that is an alert. Empty containers and containers holding nothing of value are never fingerprinted, so carrying spare shulkers is not a crime.
The suspect always logs off first
That is the normal shape of an investigation, and a lookup that only answers for online players cannot serve it. DupeSight keeps its own player table, so inspect and history work for anyone who has joined since it was installed — whether or not they are online when staff finally look.
It accuses nobody on day one
Automatic kicks, bans and stack trimming are all off out of the box. It watches, records and tells staff, and takes nothing away from anyone. Run it for a day, read what it caught on your server, tune out anything legitimate, and only then turn enforcement on. A detector that is wrong about your server should cost you a log line, not a ban appeal.
Punishment through the plugin you already run
When you do turn it on, kicks and bans run as console commands with the player, check and violation level filled in. Point them at LiteBans, AdvancedBan or vanilla — whatever your staff already knows. The alert cooldown gates violation points as well as messages, so one offending item repeating cannot inflate somebody into a ban.
Bedrock players are labelled, not guessed
With Floodgate installed every alert says whether the player was on Java or Bedrock. Without it they report as UNKNOWN rather than being quietly mislabelled as Java — which matters, because the two clients do not have the same dupes.
Compatibility
- Storage
- SQLite (evidence.db), WAL, off-thread I/O
- Retention
- 30 days / 200 entries per player, configurable
- Checks
- Conservation, fingerprints, over-stacked items
- Dependencies
- None. Floodgate optional
- Default posture
- Report only — no automatic punishment
Commands
Permissions default to true for player commands and op for admin ones.
| Command | What it does | Permission |
|---|---|---|
/dupesight inspect (player) | Summary, violation level and entry counts. Works for offline players. | dupesight.inspect |
/dupesight history (player) (page) | The evidence timeline, ten per page. Red lines scored; grey lines are context. | dupesight.inspect |
/dupesight fingerprint | Fingerprint the container in your hand and list every player seen holding those contents. | dupesight.inspect |
/dupesight alerts (on|off) | Silence or restore alerts for yourself without losing the permission. | dupesight.alerts |
/dupesight reset (player) | Clear one player’s evidence, violations and fingerprints. There is no undo. | dupesight.admin |
/dupesight stats | Storage and runtime counters, and whether the conservation check is active. | dupesight.admin |
/dupesight reload | Re-read config.yml and messages.yml without a restart. | dupesight.admin |
Before you buy
Will it flag my players for normal crafting?
No. Crafting is weight-neutral by construction — the inputs and the output are worth the same, so nine diamonds and one diamond block both read as 9. Anvils, smithing tables, villager trades, furnaces, enchanting tables and crafting grids are excluded from the check entirely, because they legitimately turn one thing into another.
What if another plugin on my server hands out valued items?
That is the one real source of false positives, and there are two dials for it. Raise min-unexplained-value above whatever your crate or quest plugin pays out, or remove that material from material-values so it stops being weighed. Finding this out is exactly what the report-only first day is for.
Does it ban people automatically?
Not unless you tell it to. Every punishment action is false out of the box. When you enable them they run as console commands, through whatever punishment plugin you already use.
Can I add my own valued items?
Yes, with one rule: if you add a material, its crafting inputs must also be listed at the same total weight. Add netherite ingots at 4 without listing scrap at 1 and every legitimate craft will read as creation.
Does it stop dupes, or just report them?
It reports. DupeSight tells you a duplication happened, who did it and when, with a timeline you can act on. It is not an anti-cheat and it does not patch the exploits themselves — it is the thing that tells you which exploit to go and close.
What happens to the evidence if I restart?
It survives. Everything lives in a SQLite database with write-ahead logging, written on a dedicated thread so it never touches your tick. Retention runs on a six-hour cycle.