Vexor Studios docs
Docs / Plugins

HackDetector

Identifies cheat clients and disallowed mods, and only punishes when the evidence holds up.

v1.0Minecraft 1.21.11 (Paper and Folia)Premium

HackDetector works out what a player is running. It does not watch how players move, aim or click; that is what a movement anti-cheat (GrimAC, Vulcan and others) does. The two work well together, and HackDetector can read their flags and tell staff when both agree.

Features

  • Five independent detection methods: client brand, plugin channels, data packs, translations and key bindings, and resource-pack replies
  • Nobody is punished on one hint: a mod has to be identified by at least 2 different methods before anything happens
  • 31 cheat clients are kicked on sight, and 11 more mods (minimaps, fullbright and similar) are reported to staff instead
  • /hd control panel: detected, suspicious and online players, profiles with all evidence, staff log and stats
  • Kick, tempban, warn and false-positive buttons right on a player's profile
  • Bans go to LiteBans, AdvancedBan or VexCore when one is installed
  • Discord webhooks per type, with a role ping on confirmed cheats
  • New cheat-client signatures arrive from our licence server every 6 hours, with no jar update needed
  • Bedrock players (Floodgate): device, input and account checks for the review queue
  • Messages in English, Spanish, German, French, Portuguese and Russian

Requirements

  • Paper 1.21.11 or Folia, Java 21
  • PacketEvents 2.14 or newer, installed as its own plugin
  • Optional: PlaceholderAPI, Floodgate/Geyser, LiteBans or AdvancedBan

Install

  1. Install PacketEvents first, then put HackDetector-1.0.jar in plugins and start the server once.
  2. Open plugins/HackDetector/config.yml and put your licence key in license.key (see Getting started). Leave server and secret as they are.
  3. Restart the server and run /hd selftest. It checks the licence, PacketEvents, signatures, your ban plugin, Discord and PlaceholderAPI.
  4. Give your staff hackdetector.notify so they see alerts, then type /hd in game.
Warning

Cheaters are punished by default. For your first day you can watch alerts only: set punish-cheaters: false in config.yml or run /hd enforcement alerts-only.

Commands

/hd is short for /hackdetector. Typing /hd in game opens the control panel, where everything below is also a button.

CommandWhat it doesPermission
/hdControl panelhackdetector.gui
/hd view <player>A player's profile: what they run and the evidencehackdetector.gui
/hd info <player>The verdict and every piece of evidence in chathackdetector.use
/hd listOnline players and their verdictshackdetector.use
/hd recent [page]Latest detections; click one to open ithackdetector.use
/hd history <player>Every detection on a player, online or offlinehackdetector.use
/hd clientsEvery blocked client and modhackdetector.use
/hd alerts [sounds]Mute or unmute alerts (or just the sound) for yourselfhackdetector.use
/hd probesWhich detection methods are producing evidencehackdetector.use
/hd envServer, plugins, anti-cheats and hook statushackdetector.use
/hd selftestChecks the whole setuphackdetector.use
/hd enforcement [alerts-only|enforce]Show or switch punishing on and offhackdetector.admin to change
/hd learnBlock every mod jar placed in the learn folderhackdetector.admin
/hd suggestWrite a tuning reporthackdetector.admin
/hd reloadReload every filehackdetector.admin
/hacksdetected [page]Menu of players that were detected and acted onhackdetector.gui
/hackssus [page]Menu of suspicious players that were never acted onhackdetector.gui

Permissions

PermissionDefaultWhat it allows
hackdetector.useopUse /hd
hackdetector.notifyopSee detection alerts
hackdetector.guiopOpen the review menus (includes hackdetector.use)
hackdetector.punishopKick, tempban, warn, clear strikes and false-positive buttons
hackdetector.adminopChange enforcement, reload, learn mods, tuning reports
hackdetector.bypassnobodyNever punished (still detected and logged)

Configuration

config.yml is only a few lines: your licence, punish-cheaters, repeat-offender bans, the kick message and a Discord webhook. Every other setting is listed, with what it does, in reference.yml. To change one, copy its line into config.yml.

FileWhat it holds
config.ymlThe settings most servers change
blockedcontrol.ymlWhich mods are kicked, alerted or off, plus your own blocked mods
messages.ymlEvery message, alert, sound and kick screen
lang/The same messages in other languages
gui/Every menu: titles, items, slots, lore and sounds
reference.ymlEvery advanced setting, explained (rewritten on each start)

To block a mod that isn't on the list, put its jar in the learn folder and run /hd learn. The jar is read, never run.

Discord and placeholders

  • Put a webhook URL in discord-webhook, or give each type its own channel under webhook.urls in reference.yml.
  • PlaceholderAPI: %hackdetector_client%, %hackdetector_status%, %hackdetector_strikes%.

Good to know

Tip

Treat a detection as strong evidence, not proof. Everything a client sends can be faked or held back, and a client built to leave no trace looks like a plain Fabric install. That is why HackDetector waits for two independent methods, and why pairing it with a movement anti-cheat gives the best coverage.

Bedrock players can't be checked for mods (a Bedrock client has none), so HackDetector never kicks them. It reports impossible device data to the review queue instead.

Can't find the answer?

Ask the plugin assistant, or open a ticket in our Discord.

Open Discord
Esc