Sueta

FakeModBlocker [1.8.x-26.3] Folia&Floodgate Support | Lightw

1.10.0

A lightweight, fully customizable, no dependencies plugin that detects some mods and known clients.

·Plugin

FakeModBlockerBanner.png
FakeModBlocker

A lightweight, fully customizable, and cross-version friendly mod detection plugin that monitors plugin message channels to identify mods such as Xaero's World Map, Replay Mod, and mod loaders like Fabric and Forge.

NEW:
FakeModBlocker now includes an optional advanced sign translation detection module for additional mod detection on supported server implementations.

✨ Features
✔ Lightweight — no unnecessary overhead
✔ Fully customizable behavior and messages via messages_xx.yml
✔ Supports HEX color codes on 1.16+ servers (&#00ffcc)
✔ No dependencies — just drop the jar in your plugins folder
✔ Works across a wide range of server versions (1.8 – 26.1+)
✔ Multi-language support (en, cn, or your own language file)
✔ Supports /modblocker reload
✔ Supports Spigot / Paper / Purpur / Folia / PandaSpigot
✔ Optional sign translation key detection module for extra mod detection

How detection actually works

FakeModBlocker ships two independent detectors. Knowing which one catches which type of mod is critical to configuring it right:

DetectorMatches onCatches
forbiddenListPlugin-channel names, e.g. xaeroworldmap, servux:tweaksMods that open a plugin channel with the server (most Forge/Fabric mods that talk to the server, Xaero, Servux-based, Axiom, etc.)
extra-detections.sign-translation.modsClient-side translation keys, e.g. key.freecam.togglePurely client-side mods that never open a channel — most cheat clients, HUD mods, minimaps, keybind-only utilities

Common mistake: putting a mod's display name into forbiddenList and expecting it to catch a client-side mod. If the mod doesn't register a plugin channel, forbiddenList cannot see it — you must add one of its translation keys under sign-translation.mods instead. Enable logger: true and join the server once with the mod: every channel and plugin message the client sends is printed to console, so you can copy the real channel name from there.

Since 1.7.0, a single sign-translation.mods entry can list multiple keys via detect.keys: [...] — useful for mods that expose several keybinds or whose key names change between versions.

Sign-translation requirements

The virtual-sign detector needs Player#openVirtualSign(Position, Side), which was added to the Paper API in 1.21.5. Paper 1.21.4 and older, Spigot, and some Paper forks (Purpur / Pufferfish / Leaves) don't have this method, so the feature auto-disables at startup and prints exactly which class or method is missing. Channel-based detection, PacketEvents integration, and Floodgate skip work regardless.

Detection Methods
1️⃣ Plugin Channel Detection
This is the main detection method.

When a player joins, FakeModBlocker checks the plugin message channels that the client registers.
Many mod loaders and mods automatically register channels that can be detected by the server.

2️⃣ Optional Sign Translation Detection
FakeModBlocker also provides an optional advanced detection module.

It works by opening a sign editor with translation keys and checking whether the client translates them, which may reveal the presence of certain mods.

Possible actions:

NOTICE
KICK
BAN
IGNORE

⚠ This feature requires server support for the sign editor API.
If the current server implementation does not support it, FakeModBlocker will automatically skip this module safely.

⚠ Limitations
FakeModBlocker is not a full mod detection or anti-cheat system.

Limitations include:

✘ Cannot detect every mod or hacked client
✘ Some clients can hide their plugin channels
✘ Only works if the client exposes detectable behavior
✘ Not designed to replace an anti-cheat plugin

⚙ Requirements
FakeModBlocker is compiled using Java 21.
Java 21 or newer is required to run this plugin.

Tested Environments
The plugin has been tested on:

  • Spigot 1.8.8
  • PandaSpigot 1.8.8
  • Paper 1.21+
  • Folia 1.21.4/1.21.11

Other versions and forks may also work, but full compatibility cannot be guaranteed.

The plugin is designed to theoretically support 1.8 – 26.1+ servers.

⚠ Do not rename the plugin jar file, otherwise the plugin may fail to enable.

Installation

  1. Put the .jar file into the plugins/ folder
  2. Start the server once to generate configuration files
  3. Edit config.yml and the language files
  4. Run /modblocker reload to apply changes
  5. Adjust the predefined mod rules in config.yml if needed

Commands

/modblocker reload
Reloads configuration and language files
Permission: fakemodblocker.admin

/modblocker check <player>
Shows plugin/mod channel information of a player
Permission: fakemodblocker.admin

Permissions

fakemodblocker.admin
Allows use of reload and check commands

fakemodblocker.bypass
Completely bypasses all detection

fakemodblocker.kickbypass
Prevents the player from being kicked,
but detected channels will still be logged

❓ FAQ
Q: Can this detect hacked clients like Vape or LiquidBounce?
A: No.
Many hacked clients intentionally avoid registering detectable plugin channels.

FakeModBlocker is mainly designed to detect mod loaders and some mods, not hacked clients.

Q: Is this an anti-cheat plugin?
A: No.
FakeModBlocker is a mod presence detector, not a cheat detection system.

Q: How does it work?
A: FakeModBlocker checks which plugin message channels a client registers when joining the server.

Many mods and mod loaders automatically register channels, which allows the plugin to detect them.

On supported servers, FakeModBlocker can also use sign translation key detection as an additional detection method.

Q: Does the sign detection work on every version?
A: No.

The sign detection module depends on public sign editor API support.
If the server implementation does not support it, FakeModBlocker will automatically skip that module.
————————————————————
⭐ Support
upload_2026-3-12_0-52-47.png

If you like this plugin:
⭐ Leave a star on GitHub
⭐ Leave a 5-star review on Spigot

Bug Reports
Please do NOT report bugs in the review section.

Instead:
• Open an issue on GitHub
• Use the Discussion section
• Contact via Discord

Similar projects

Plugin →