Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
LumoAiDetector
A free Minecraft anti-cheat that trains its own AI model inside your server. It records combat rotation windows, throws out the bad data, trains a Random Forest model in Java, and warns your staff when a player starts to look suspicious.
I built this for my own server first. After a while I decided to share it. There are free anti-cheats and a few ML experiments around, but I could not find one that does this exact loop: record your own dataset, train a local model, manage the model files in game, and keep every message editable.
No pre-trained model ships with the plugin. You train yours. Better data means a better detector, and your players are not the same as mine.
What it actually does
The plugin watches combat rotations, not random mouse movement. A window only reaches the model when every gate passes:
- The player recently attacked or swung.
- A living target is nearby and inside the player's aim cone.
- The mouse moved enough across the 15 tick window.
- Tick timing stayed inside the configured network range.
Each valid window turns into 120 numbers (15 ticks times 8 values: dx, dy, dt, v, a, j, err, derr). The label is just 0 for legit and 1 for cheater.
Why train your own model
Servers differ. Different players, clients, ping, arenas, PvP styles, and cheat settings. A model trained on one tiny private setup can look amazing in a demo and still fall apart on your server.
So record boring normal fights. Record cracked aim and smooth aim. Record bad players, good players, high and low sensitivity, jumping, strafing, panic flicks, missed hits. The model gets smarter when the dataset stops being too clean.
Features
- Works on Bukkit, Spigot, Paper, Purpur and Folia.
- Java 8 bytecode target. No NMS or ProtocolLib needed.
- Editable
config.ymlandmessages.yml. - Dataset recording for legit and cheater samples.
- Async Random Forest training with dated model files and metadata.
- Model activation, deactivation, and temporary backups in game.
- Staff alerts above a configurable suspicion percent, with per-player alert history.
- Auto punishment support, off by default.
- SHA-256 integrity check on model load.
- Per-world disable, UUID whitelist, and a bypass permission.
New in 0.1.2
- Reproducible training. Set
training.seedto a fixed value and the same dataset produces the same model. - Automatic class balancing for uneven datasets, so a small cheater sample is not drowned out.
- Honest metrics. When there is no validation holdout, the plugin says the numbers came from training data instead of pretending they are an independent estimate.
/lad models compare <a> <b>to put two models side by side.- A separate prediction thread pool so model inference does not block dataset writing.
- Optional ping band to skip windows recorded under unusual latency.
- Streaming dataset counting and trimming, so status and trim commands no longer load the whole file into memory.
Commands
| Command | What it does |
|---|---|
/lad record legit|cheater <player> |
Start or stop recording a player. |
/lad record stop <player|all> |
Stop one or all recordings. |
/lad train |
Train a model on the current dataset. |
/lad active <model> |
Load and activate a model. |
/lad deactivate |
Turn off the active model. |
/lad models [page] |
List trained models. |
/lad models info <model> |
Show model metrics. |
/lad models compare <a> <b> |
Compare two models. |
/lad delete <model> |
Move a model to backup. |
/lad backup list|restore|purge |
Manage backups. |
/lad check <player> [history] |
Check suspicion or view alert history. |
/lad status |
Plugin, detector, model and dataset status. |
/lad dataset info |
Dataset rows, balance and file size. |
/lad dataset trim <rows> |
Keep only the last N rows. |
/lad reload |
Reload configs and messages. |
Getting started
- Drop the jar into your
pluginsfolder and start the server once. - Record some legit play:
/lad record legit <you>. Move around, jump, flick, track smoothly, miss sometimes, change sensitivity. - Record cheat profiles:
/lad record cheater <you>. Try fast aim, slow smoothing, obvious Killaura, subtle rotations. - Train:
/lad train. - Activate:
/lad active <model>.
The default config is conservative. Alerts are on, auto punishment is off. That is on purpose. Do not turn on punishments until you have trained and tested your own model.
License
Apache License 2.0. Copyright 2026 Lumo (Lumskyy).
Forks, fixes, and ports are welcome. Please use a clearly different name and say your build is based on LumoAiDetector by Lumo (Lumskyy). Do not reupload it under my name or branding.


