Skip to content

Repository files navigation

       __  ___      _     _____   ______     
      /  |/  /___  (_)___/ /   | / ____/
     / /|_/ / __ \/ / __  / /| |/ /     
   / /  / / /_/ / / /_/ / ___ / /___   
 /_/  /_/\____/_/\__,_/_/  |_\____/  

Passive client-side mod/hack detection engine + network-level anti-ESP for Paper/Folia 26.x

License

MoidAC silently fingerprints players on join and on-demand using invisible sign-based vectors, combined with a packet-level anti-ESP to hide underground content from x-ray/ESP hacks.


📦 Requirements
Dependency Required Purpose
Paper 26.x / Folia 26.x Server software (1.21.11 API)
Java 21+ (25 recommended) Runtime
PacketEvents 2.13.0+ ⚠️ Anti-ESP only Packet interception for chunk masking, entity/particle filtering, light data masking
SQLite JDBC ✅ Bundled Embedded database
Gson ✅ Bundled JSON serialization

PacketEvents is a soft dependency — mod detection and language checks work without it. Only anti-ESP requires it.

🔧 Features
Category Description
Mod Detection Invisible signs with mod-specific translation keys — modded clients leak themselves
Language Detection Detects client game language via sign text rendering
Brand Detection Intercepts minecraft:brand to catch hacked clients faking vanilla
Plugin Channel Detection Reads minecraft:register to detect mod loaders
Anti-ESP Strips underground blocks, entities, particles, and light data at the packet level
Folia-Native Region-aware entity/location schedulers, fully thread-safe
Anticheat Hooks Auto-triggers checks when Grim/Vulcan/Spartan flags a player
SQLite Database All scan results persisted with per-mod detail
Discord Webhooks Formatted detection reports
Multi-Language 8 language files for server messages
Plugin APIs MiniMessage formatting
🎯 Detection Methods

Sign Translation Vulnerability (MC-265322)

The server sends fake signs containing mod-specific translation keys. Vanilla clients show the raw key; modded clients resolve it to the localized string. The player never sees a sign — you detect them without them knowing.

Modes: METEOR (Meteor-specific keys), TRANSLATE (generic keys mods override), KEYBIND (keybind entries mods register).

Plugin Channel Detection

Reads minecraft:register packets at login to detect mod loaders (Fabric, Forge, NeoForge, Quilt) and cheat clients.

Brand String Analysis

Intercepts minecraft:brand to identify real brands vs spoofed "vanilla".

Client Type Detection

Combines all methods to fingerprint: VANILLA, FABRIC, FORGE, NEOFORGE, QUILT, LUNAR, BADLION, LABYMOD, METEOR, WURST, ARISTOIS, IMPACT, LIQUIDBOUNCE, INERTIA, LAMBDA, RUSHERHACK, BARITONE, BLEACHHACK and more.

🛡️ Anti-ESP System

Network-level anti-ESP preventing x-ray resource packs, wallhacks, and entity ESP. Operates at the packet level via PacketEvents.

Chunk Masking — Intercepts CHUNK_DATA packets. Sections below hide-below-y are replaced in-flight:

  • Uniform Mode (recommended): Replaces all blocks below threshold with a configurable block. Uses singleton palette for performance.
  • Selective Mode: Replaces specific blocks (ores, water, etc.) at the bottommost section.

Tile entities below the threshold are stripped. Light data is masked to prevent cave-location inference.

Packet Filtering — Cancels particles, block changes, block entities, entity spawns, and metadata below the threshold.

Proximity Reveal — When a player descends below reveal-at-y, real chunks are re-sent instantly.

🎯 Detectable Mods (31+)

Configured in checkhacks.yml — add your own without plugin updates.

Mod Mode
Meteor Client METEOR
LiquidBounce TRANSLATE
Freecam KEYBIND
Wurst Client KEYBIND
XRay (Fabric) KEYBIND
ChestESP KEYBIND
KillAura (Fabric) KEYBIND
AutoFish KEYBIND
Lumina KEYBIND
AutoSwitch KEYBIND
BleachHack TRANSLATE
Aristois TRANSLATE
Coffee Client TRANSLATE
World Downloader TRANSLATE
AutoClicker (Fabric) TRANSLATE
AntiAFK TRANSLATE
Auto Clicker (p1k0chu) KEYBIND
Baritone METEOR
Impact TRANSLATE
Inertia TRANSLATE
Kami Blue TRANSLATE
RusherHack TRANSLATE
Lambda TRANSLATE
OpSec KEYBIND
NoChatReports KEYBIND
Xaero's Minimap TRANSLATE
Xaero's World Map KEYBIND
JourneyMap KEYBIND
Tweakeroo KEYBIND
...and more
📋 Commands

All commands under /moidac:

Command Permission Description
/moidac moddetect <player> [mods...] moidac.check Check a player for mods
/moidac checklang <player> [langs...] moidac.checklang Detect client language
/moidac alerts moidac.alerts Toggle alert messages
/moidac antiesp reload moidac.antiesp.reload Reload anti-ESP config
/moidac reload moidac.reload Reload all configs & messages
/moidac moidac.use Root command with tab completion
🔐 Permissions
Permission Default Description
moidac.use OP Use /moidac
moidac.check OP Check players for mods
moidac.reload OP Reload configuration
moidac.alerts OP Receive alerts
moidac.checklang OP Check player language
moidac.antiesp.bypass OP Bypass anti-ESP
moidac.antiesp.reload OP Reload anti-ESP
moidac.* Wildcard
🏗️ Building
git clone https://github.com/yourusername/MoidAC.git
cd MoidAC
./gradlew build
# Output: build/libs/MoidAC-<version>.jar

Install:

  1. Drop the jar into plugins/
  2. (Optional, for anti-ESP) Drop PacketEvents jar into plugins/
  3. Restart or reload
  4. Edit plugins/MoidAC/config.yml
  5. Run /moidac reload
⚙️ Configuration

Generated on first run:

File Purpose
config.yml Webhooks, brand-check action, bedrock skip, language
checkhacks.yml Hack definitions, auto-check settings, webhook/command triggers
checklang.yml Language detection: 63 locale mappings, auto-check settings
antiesp.yml Anti-ESP: thresholds, mask modes, block replacements, world whitelist
lang/ Message files in 8 languages (MiniMessage format)

MIT Dio_M, opencode

About

Passive client-side mod/hack detection engine + network-level anti-ESP for Paper/Folia 26.x

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages