Sueta

Omni Anticheat

1.0.1

Anti-cheat for Minecraft 1.8–26.x on Spigot, Paper and Purpur. Java and Bedrock, 63 checks, staff tools. One jar, commented config, a normal plugin nothing remote.

·Plugin

Omni Anticheat

Server-side anti-cheat and staff tools for Minecraft 1.8.8 through 26.x on Spigot, Paper, Purpur and their forks (Pufferfish, Leaf, ...).

One jar for every version. Java players and Bedrock players (Geyser/Floodgate) both work. Checks that your version does not have (elytra, totems, crystals, anchors, maces, spears) switch themselves off.

This is a normal plugin you drop in plugins/. It does not phone home, does not run remote code, and does not replace /ban or /kick unless you add those aliases yourself.


What's new in 1.0.2

  • Neural checks you train yourself. Neural (combat) and NeuralMove (movement) are small neural networks that learn what legit and cheating players look like on your server. They are always learning: windows where a trusted rule-based check (Reach, KillAura, Fly, Speed, ...) confidently alerted become cheat samples, long clean play becomes legit samples, and the models retrain in the background every 30 minutes (a retrain that loses accuracy keeps the old model). You can also record known players with /omni ml record <player> legit|cheat and train right away with /omni ml train. They only alert and never auto-punish.
  • Purpur crash fixed: the "failed main thread check: getNearbyEntities" error from crystal attacks with PacketEvents on Purpur/Paper is gone.
  • Wind charges: launching yourself up with a wind charge no longer sets you back to the ground.
  • Reach (Ray): no more false flags when the hit was in range but the look ray crossed the far side of the hitbox (common on 26.x and in mid-air mace fights).
  • Mace and spear: normal mace flicks are no longer treated as auto look-down smashes; mace and spear bursts no longer cause movement setbacks.
  • Purpur rideable mobs and controllable minecarts are no longer flagged by the Vehicle check.
  • Config upgrades keep your settings again (custom values could be reset to defaults when upgrading an old config). Config version 60.
  • Paper/Purpur forks are shown by name; hybrid servers (Mohist, Arclight, Youer) load with a warning.

What it checks

64 detections plus 3 mitigations (AntiESP and AntiInfo on by default; OreObfuscator off, prefer Paper anti-xray).

  • Movement: speed, strafe, fly, long jump, step, nofall, jesus, swim, climb, phase, teleport, sprint / omni-sprint / keep-sprint, noslow, inventory move, timer, blink, velocity, elytra, vehicles and mounts
  • Combat: reach, wall hits, backtrack, hitboxes, killaura, rotation, aim, heuristics, autoclicker, criticals, autoblock, item swaps, auto mace / spear / pearl, crystal aura, auto anchor, surround / burrow, bow aimbot, fast use
  • Player: auto totem, regen, potion saver, chest steal, inventory actions, auto fish, auto actions
  • World: scaffold, build patterns, fast place / break, break delay, nuker / ghost hand, x-ray statistics
  • Packets: client brand, bad packets, protocol, illegal items, exploits
  • Neural (trainable): combat (aim, clicks, accuracy, distance) and movement (speed, gravity, ground, hover, timing), trained on your own recorded players

Optional PacketEvents makes Timer, Blink, Reach, HitBox, AutoBlock and KeepSprint more precise. Without it the plugin still loads and every Bukkit-level check runs.


How it behaves

Prevention is on, but only once a check is confident: movement is set back, illegal hits / breaks / places / clicks are cancelled, NoFall applies the avoided fall damage. Statistical checks (AutoClicker, Aim, XRay, ...) only alert.

Automatic kicks and bans follow an escalation ladder (punishments.enabled). They need repeated evidence. You can turn them off.

Checks pause during join, teleport, world change and respawn, when TPS is low, and after server lag. A player's own lag or high ping only pauses timing checks. Movement physics, Reach and HitBox keep running, so fake lag is not a bypass. Bedrock and ViaVersion players get extra tolerance.

The Neural checks score windows of 20 hits or 100 moves and need a 90% cheat score on 2 of the last 3 windows to alert. Their models are only as good as your labels, so only record a player as cheat when you are sure.

config.yml is fully commented. Every value is validated on /omni reload; a typo never silently disables protection. Older configs are upgraded and keep your settings. Any check option can also be set per client version (1.8, 1.9 to 1.21.1, 1.21.2+, Bedrock) in the check's versions: block, and AutoClicker ships with separate limits for each.


Staff tools

Alerts with check, VL, ping, TPS and client version. /omni gui, /omni stats, /omni debug, /omni ml (record, train and score the Neural checks). Staff mode, vanish, freeze, ban / mute / kick / warn (/omniban and friends, so they never steal Essentials' /ban), notes, invsee, locate, X-ray suspects, /watch, help requests, Discord webhook (async, never lags the server), PlaceholderAPI.

Optional Anti-VPN is off. When you enable it, joining IPs are sent over HTTPS to the provider you pick.


Install

  1. Put OmniAnticheat-1.0.2.jar in plugins/ (remove the old jar).
  2. Start once. Data folder is plugins/OmniAnticheat/. An old plugins/AntiCheat/ folder is moved there automatically.
  3. Edit config.yml if you need to, then /omni reload.

Main command: /omnianticheat
Aliases: /omni, /omniac, /oac

Permissions: omniac.*
oneac.* and 1.x antisystem.* nodes still work as aliases. omniac.bypass is never given to anyone by default, not even ops.

ServerJava
1.8.8 - 1.16.58+
1.17 - 1.20.417+
1.20.5 - 1.21.x21+
26.x25+

Every Bukkit API the plugin uses is checked against Spigot 1.8.8 to 26.3, Paper 1.20.6 to 26.3 and Purpur 1.16.5 to 26.3 (0 missing references). Paper/Purpur forks such as Pufferfish and Leaf work. Hybrid servers (Mohist, Arclight, Youer) load with a warning, because mods can change physics. Folia and its forks are not supported.

Optional: PacketEvents 2.x, PlaceholderAPI 2.12.3+, ViaVersion, Floodgate / Geyser.


Coverage of a popular cheat client's modules

Honest status per module: what a server can actually see. Module names are from a public client list (names only; no cheat code was used).

Covered = a check targets the module's core server-visible behaviour.
Partial = only some modes are visible, or the signal is statistical.
Not detectable = the client only changes what it renders or decides.

Blatant

ModuleStatusCheck(s)Notes
AntiBotNot detectable-Client-side filter that ignores server NPCs/bots.
AntiFMLPartialClientBrandHides the Forge handshake; flagged only when brand and registered channels disagree.
AntiFallPartialFly, NoFall, Blink, ScaffoldVoid-save via air jumps/teleports/ground spoof is flagged; a look-down block clutch in the air is Scaffold (Clutch).
AutoAnchorCoveredAutoAnchor1.16+ (respawn anchors). Place-charge-detonate timing, several charges per tick, no-look use.
AutoHealPartialItemSwap, RegenInstant swap-to-heal-item-and-back; abnormal regen rates.
AutoLadderPartialClimb, FastPlace, ScaffoldLadder speed and placement timing; perfect ladder placing itself looks human.
BacktrackPartialBacktrack, BlinkHits that only fit older target positions; withheld/burst movement.
BlinkCoveredBlink, TimerMovement gaps and bursts (tick-end aware on 1.21.2+ with PacketEvents).
ClutchCoveredScaffold, ItemSwap, NoFallAir look-down snap onto a block underfoot, hidden-face / no-look placements and instant swaps.
DiscardedBlinkPartialBlinkGaps are seen; discarded (never sent) movement looks like a teleport/rubber-band.
FlyCoveredFlyGravity prediction, air jumps, hover.
HitBoxesCoveredHitBox, ReachHits that miss the real hitbox are cancelled after a confirmed miss.
InvWalkCoveredInvMove, InventoryActions, ChestStealMovement/rotation with a container open; the player's own inventory is tracked from its clicks.
KeepSprintCoveredSprint1.21.2+: a charged sprint hit on a player must drop speed to 60%. Older clients: illegal sprint states only.
KillAuraCoveredKillAura, Rotation, Aim, HitBoxMulti-target, through walls, out of view, hitting past the entity under the crosshair (target priority), with GUI open, combat jitter, teleport-look snaps, rotation analysis.
KnockbackTestPartialVelocityReduced/modified knockback.
LongJumpCoveredLongJump, Speed, Fly
NoFallCoveredNoFallGround spoof and missing fall damage. Water, hay, slime, beds, cobwebs, powder snow, ladders and vines are respected.
NoSlowdownCoveredNoSlowUsing items, sneaking, cobwebs.
OmniSprintCoveredSprintSprinting sideways/backwards.
PhaseCoveredPhaseMoving through solid blocks.
PotionSaverPartialPotionSaver, Blink1.8 servers (frozen timers); on 1.9+ only the movement gaps are visible.
RegenCoveredRegen
SafeWalkPartialSafeWalkEdge clamping without sneaking (heuristic).
ScaffoldCoveredScaffold, SafeWalk, FastPlaceHidden faces, look-ray miss, no-rotation underfoot, 1.8 hit-vector centres, tower speed.
SpeedCoveredSpeed
StepCoveredStep, Fly
StrafeCoveredStrafe, SpeedAir acceleration above vanilla air control.
TimerCoveredTimerPacket balance with lag-burst credit.

Combat

ModuleStatusCheck(s)Notes
AimAssistPartialAimSensitivity-grid (GCD) analysis and perfect-aim ratio; smooth humanised assists can pass.
AutoMaceCoveredItemSwap, AutoMace1.21+. Swap-smash, spoofed fall, grounded smash, wind/pearl smash, look-down smash.
BlockHitCoveredAutoBlockAttacking while blocking/using an item; 1.21.2+ unblock-attack-reblock in one tick is cancelled. Manual block-hitting is legal.
BowAimbotPartialBowAimbotArrows aimed at the predicted target position with machine precision.
ClickerModCoveredAutoClickerCPS, interval deviation, kurtosis/skewness, outliers, tick-aligned bursts.
CrystalAuraCoveredCrystalAura, Surround1.9+. Same-tick and break-before-visible hits, multi-break, place rate/reach/walls.
HitFlickPartialAimLarge yaw snaps immediately before hits.
HitSelectCoveredKillAuraWaiting to click until the target's hurt-time allows damage, then hitting that first legal tick.
HitSwapCoveredItemSwap
JumpResetPartialVelocityShare of knockbacks answered with a same-tick jump.
KnockbackDelayPartialVelocity, BlinkKnockback applied much later than ping explains.
LeftClickerCoveredAutoClicker
NoItemReleasePartialAutoBlock, FastUse
ReachCoveredReachPing-compensated history, X/Y/Z and look-ray range, per-entity hitboxes, Bedrock extra. Hits over vanilla + 0.03 are cancelled; 3.11+ flags on the first hit.
RightClickerCoveredAutoClickerRight-click CPS.
ShieldBreakerCoveredItemSwapInstant swap to an axe against shields.
SilentAuraCoveredKillAura, AimHits far outside the view direction.
SprintPartialSprintAuto-sprint itself equals toggle-sprint; impossible sprint states are flagged.
TriggerbotCoveredAim15 hits within one tick of the crosshair reaching the target, with no missed swings.
VelocityCoveredVelocityHorizontal/vertical knockback ratios after a transaction sandwich, ignored packets, 0% motion, round velocity modifiers. Remaining knockback is teleported and resent.
WTapCoveredSprintReleasing and re-pressing the forward key with identical tick timing after 9 of 10 sprint hits (1.21.2+ clients). Manual W-taps and the vanilla sprint reset on hit pass.

Utility

ModuleStatusCheck(s)Notes
ArmorSwitchCoveredInventoryActions
AutoArmorCoveredInventoryActionsInstant shift-click armour equips.
AutoFishCoveredAutoFishReaction and re-cast timing deviation.
AutoHotbarCoveredInventoryActions
AutoPearlCoveredAutoPearl, ItemSwapFlick-up throws (first throw), pearls before the 1.9+ cooldown, wind-charge then pearl while looking straight up, flying while a pearl is still in the air.
AutoToolPartialItemSwapSwap-dig-swap timing; hotkey users can look similar.
AutoTotemCoveredAutoTotem1.11+. Re-totem time after a pop vs ping; closed-inventory refills.
BlockInCoveredScaffold, SurroundMany blocks around the player within a few ticks.
InvCleanerCoveredInventoryActions
InventoryFillPartialInventoryActions
InventoryManagerCoveredInventoryActions
MLGPartialScaffold, ItemSwap, NoFallBucket/block placements without looking, instant swaps.
PanicNot detectable-Client-side "turn everything off" key.
ParkourNot detectable-Jumping at block edges looks like a good player.
PearlCatchPartialItemSwap
RefillCoveredInventoryActions
ThrowDebuffCoveredItemSwapSwap-throw-swap timing.
ThrowpotCoveredItemSwap
WindChargeCoveredAutoPearl, ItemSwap1.21+. Flick-up throws and wind-then-pearl combos.

World

ModuleStatusCheck(s)Notes
AntiAFKNot detectable-Produces normal-looking input. Use an AFK plugin that checks for real activity.
BedBreakerCoveredBlockInteractBreaking beds out of reach or with every face hidden behind blocks.
ChestStealCoveredChestStealFirst-click delay, take interval and regularity; closed-container clicks.
FakeLagPartialFakeLag, Blink, Timer, BacktrackStatistical gaps plus ICMP to their IP vs a Minecraft ping every 10s. Real lag looks similar, so thresholds are lenient.
FastPlaceCoveredFastPlace
MurderFinderNot detectable-Reads held items the server already sends to every client.
XRayPartialXRay (+ OreObfuscator)Hidden-vein ratio statistics; for prevention use Paper's anti-xray or the optional OreObfuscator.

Render

Render modules only change what the client draws. The server cannot flag them, but AntiESP stops sending the hidden entity or block so they have nothing to draw.

ModuleStatusMitigation
ESP, Chams, Tracers, NameTags, Health, IndicatorsMitigatedAntiESP (on): players fully behind walls are not sent to the viewer. They stay in the tab list.
Health ESP, health nametags, ArmorHUD, armor durability/enchant ESP, ShulkerPeek, stack countersMitigatedAntiInfo (on): other players' health is sent as full, absorption as zero, and armor, held and dropped items lose durability, enchantment levels, names, lore, contents and stack size. Glint, dye and trims stay.
Search, StorageESP, SpawnerFinder, ItemESP, BedPlatesMitigatedAntiESP hides chests, shulkers, spawners, beds and items behind walls; OreObfuscator / Paper anti-xray hides buried ores.
Fullbright, Freecam, Trajectories, Arrows, Explosions, AntiDebuff, PropHuntNot detectableNone.

Notes

No anti-cheat is perfect. Review alerts before you lean on automatic punishments. If you report a false flag, include the check name, VL, ping, TPS, client version (all in the alert) and what the player was doing.

Similar projects

Plugin →