
Decoy
Silent honeypot anti-cheat for catching x-rayers, killaura, ESP, and reach cheaters.
Decoy
Silent honeypot anti-cheat for catching x-rayers, killaura, ESP, and reach cheaters.
How It Works
Decoy places invisible traps around players that are completely undetectable during normal gameplay. Fake ore veins, hidden entities, and bait chests are scattered underground on a repeating cycle. Legitimate players will never encounter them. Cheaters using x-ray, killaura, ESP, or reach hacks will interact with these traps and get flagged silently — they receive no warning or alert.
All traps use vanilla-accurate generation. Ore veins match real Minecraft blob shapes and per-ore sizes (diamonds spawn in veins of 4-8, emeralds as singles, etc). Traps are placed behind solid walls so only cheaters can find them.
Features
- Ore Traps — Fake ore veins using vanilla blob generation with correct sizes per ore type. Depth-aware placement (deepslate variants below Y=0, nether ores in the nether). Blocks give no drops and revert instantly on break.
- Entity Traps — Invisible armor stands that catch killaura and reach. Flags players who hit entities they shouldn't be able to see or reach beyond 4 blocks.
- NPC Traps — Invisible stands with floating player nametags. Only visible to ESP/entity radar cheats.
- Chest Traps — Bait chests buried in stone with valuables inside. Inventory never opens for the player — they get flagged on interaction.
- Nether Support — Ancient debris, nether gold, and quartz traps in nether worlds with correct block replacement (netherrack, basalt, blackstone).
- Flag Threshold — 1 flag marks a player as suspicious. 3+ flags (configurable) marks them as confirmed. Severity shows in all alerts and commands.
- Mining Path Tracking — Tracks recent block breaks per player. Calculates how many blocks a player mined in a straight line toward a trap (beeline detection).
- Discord Webhooks — Rich embed alerts with player head thumbnail, severity color coding, flag history breakdown, location, and beeline data. Fully async, won't lag your server.
- Auto Punish — Configurable command tiers that execute at specific flag counts. Set up automatic kicks, tempbans, and bans with
{player}and{count}placeholders. - SQLite Storage — All detections logged with player UUID, name, type, coordinates, timestamp, and approach distance. Persists across restarts.
- Crash Recovery — Active trap blocks are tracked in the database and restored to their original state on server restart.
Commands
| Command | Description |
|---|---|
/decoy status | Plugin overview (active traps, total detections) |
/decoy check <player> | View player flags with type breakdown and severity |
/decoy recent [count] | Recent detections across all players |
/decoy clear <player> | Wipe all flags for a player |
/decoy test | Force deploy traps around you (admin testing) |
/decoy near [range] | List nearby trap ores |
/decoy tp | Teleport to nearest trap ore |
/decoy reload | Reload configuration and restart trap cycle |
/decoy purge | Remove all active traps and stop the cycle |
Permissions
| Permission | Description | Default |
|---|---|---|
decoy.admin | Access to all /decoy commands | op |
decoy.notify | Receive in-game detection alerts | op |
decoy.bypass | Exempt from all traps | false |
Configuration
Everything is configurable in config.yml. Key settings:
- traps.interval — How often traps refresh around players (default: 90 seconds)
- traps.ore.veins — Number of ore veins placed per player per cycle (default: 25)
- traps.ore.radius — Placement radius around each player (default: 48 blocks)
- flags.confirm-threshold — Flags needed to mark a player as confirmed (default: 3)
- discord.webhook — Your Discord webhook URL for alerts
- punish.tiers — List of flag thresholds with commands to execute
- worlds.blacklist — Worlds where traps won't be placed
Discord Setup
Set discord.enabled: true and paste your webhook URL. Alerts are sent asynchronously and include player avatars, severity levels, flag breakdown, and coordinates.
Auto Punish Setup
Set punish.enabled: true and configure tiers in config. Works with any punishment plugin — just use the console commands you'd normally run.
punish:
enabled: true
tiers:
- flags: 3
commands:
- "kick {player} Suspicious activity detected"
- flags: 5
commands:
- "tempban {player} 1d Automated ban - xray detected ({count} flags)"
- flags: 10
commands:
- "ban {player} Confirmed cheating - xray ({count} flags)"
