WHAT IS IT?
Oreo Scanner Pro detects client-side mods in real-time using packet-level translation-key probing. When a player joins, their client is silently scanned. Detected mods trigger configurable actions — kick, ban, alert, or broadcast — all without chat spam or player commands to give you away.
DETECTION
7 mods detected. All checks run 24/7 in the background.
HOW IT WORKS
- Player joins server
- Plugin sends 5-packet silent probe to their client
- Client responds with translation-key list if mod is loaded
- Server intercepts the UPDATE_SIGN packet response
- Detection fires — immediate action (alert / broadcast / kick / ban / console command)
- Report sent to requester (staff / console) with full scan results
Zero chat noise. Zero command spam. Just silent, accurate detection.
FEATURES
Scanning
Code:
• Auto-Join Scan Every player is probed on entry
• Manual Command /modcheck <player> scan on demand
• Scan Queue One player at a time (no server lag)
• Full Report All 7 mods shown — detected in red, clean in white
• Timeout Guard No response = flagged as timeout (amber)
Actions
Code:
• Per-Mod Config Each mod can have different actions
• Kick Immediate disconnect with custom message
• Ban Profile ban via Bukkit's BanList
• Alert Staff Send staff alert to staff-only channel
• Broadcast Announce detection to all players
• Message Player Whisper to detected player
• Console Commands Execute custom commands on detection
Safety
Code:
• Queue System One scan active, others queue (prevents CPU spike)
• Folia Safe Async-safe threading for both Paper & Folia
• Configurable Turn off actions per-mod or globally
• No Dependencies Ships with everything except PacketEvents
• License Gate Free key via Discord (no paywall)
Reporting
Code:
• MiniMessage UI Color-coded in-game messages
• Console Audit Full detection log with timestamps
• Queue Status View who's scanning / who's waiting
• Per-Player Summary Detailed report on command execution
CONFIGURATION:
YAML:
# ─── Detected Mods (customize per mod) ────────────────────────────────────────
disallowed-mods:
Meteor:
translation-key: "key.meteor-client.open-gui"
actions:
kick: true
ban: false
message-player: false
alert-staff: true
broadcast: true
messages:
player-message: "<#E5E7EB>Meteor Client is not allowed."
staff-alert: "<#A8C5E5>%player% <#9CA3AF>flagged for <#A8C5E5>Meteor"
broadcast: "<#A8C5E5>%player% <#9CA3AF>was removed for <#A8C5E5>Meteor Client"
console-commands: []
Freecam:
translation-key: "key.freecam.toggle"
actions:
kick: true
ban: false
message-player: false
alert-staff: true
broadcast: true
messages:
player-message: "<#E5E7EB>Freecam is not allowed."
staff-alert: "<#A8C5E5>%player% <#9CA3AF>flagged for <#A8C5E5>Freecam"
broadcast: "<#A8C5E5>%player% <#9CA3AF>was removed for using <#A8C5E5>Freecam"
console-commands: []
Item Scroller:
translation-key: "itemscroller.gui.button.config_gui.generic"
actions:
kick: false
ban: false
message-player: true
alert-staff: true
broadcast: false
messages:
player-message: "<#E5E7EB>Item Scroller detected. Replay disabled."
staff-alert: "<#A8C5E5>%player% <#9CA3AF>flagged for <#A8C5E5>Item Scroller"
broadcast: ""
console-commands: []
Accurate Block Placement:
translation-key: "text.autoconfig.accurateblockplacement.title"
actions:
kick: false
ban: false
message-player: true
alert-staff: true
broadcast: false
messages:
player-message: "<#E5E7EB>Accurate Block Placement detected."
staff-alert: "<#A8C5E5>%player% <#9CA3AF>flagged for <#A8C5E5>ABP"
broadcast: ""
console-commands: []
Tweakeroo:
translation-key: "tweakeroo.gui.button.config_gui.generic"
actions:
kick: false
ban: false
message-player: false
alert-staff: true
broadcast: false
messages:
player-message: ""
staff-alert: "<#A8C5E5>%player% <#9CA3AF>flagged for <#A8C5E5>Tweakeroo"
broadcast: ""
console-commands: []
MiniHUD:
translation-key: "minihud.gui.button.config_gui.generic"
actions:
kick: false
ban: false
message-player: false
alert-staff: true
broadcast: false
messages:
player-message: ""
staff-alert: "<#A8C5E5>%player% <#9CA3AF>flagged for <#A8C5E5>MiniHUD"
broadcast: ""
console-commands: []
Litematica:
translation-key: "litematica.gui.button.config_gui.generic"
actions:
kick: false
ban: false
message-player: false
alert-staff: true
broadcast: false
messages:
player-message: ""
staff-alert: "<#A8C5E5>%player% <#9CA3AF>flagged for <#A8C5E5>Litematica"
broadcast: ""
console-commands: []
# ─── Scanner Options ──────────────────────────────────────────────────────────
scanner:
enabled: true
probe-timeout-ticks: 60
join-scan-delay-ticks: 40
max-queue-size: 50
disconnect-screen:
- "<#A8C5E5>Client Mod Detection"
- "<#9CA3AF>Detected: <#F87171>%mod%"
- ""
- "<#9CA3AF>Visit <#60ECE0>discord.gg/vsyRNWApUm"
# ─── Messages ──────────────────────────────────────────────────────────────────
messages:
prefix: "<#60ECE0>▪ <#A8C5E5>Oreo <#9CA3AF>|</#> "
scan:
started: "Scanning %player%... Position: %count%"
complete: "Scan complete. %detected% mod(s) detected."
report:
header: "<#A8C5E5>Scan Report <#9CA3AF>| <#E5E7EB>%player%"
detected: "<#F87171> x %mod% detected"
clean: " v %mod% not detected"
timeout: "<#FCD34D> ? %mod% no response"
footer: "<#9CA3AF>Scan complete in <#A8C5E5>%duration% <#9CA3AF>ms"
queue:
added: "You are queued. Position: #%position%"
started: "Now scanning: %player%"
player-left: "Scan cancelled (player left)."
# ─── License ───────────────────────────────────────────────────────────────────
license:
# Enter your key below. Get a free key from: discord.gg/vsyRNWApUm
# When empty or invalid, plugin loads in RED (unlicensed mode) with alerts only.
key: ""
COMMANDS
Code:
/modcheck <player> — Scan a player and show full 7-mod report
/modcheck queue — View active scan + waiting queue
/modcheck alerts — Toggle staff alerts for yourself
/modcheck reload — Reload all configs and messages
Aliases: /oreocheck, /ocheck
All commands have permission checks (ops by default, customizable).
CONSOLE OUTPUT EXAMPLE
Code:
[14:23:01] O R E O S C A N N E R P R O
[14:23:01] ██████████ LICENSED ██████████
[14:23:01] 7 mod definitions loaded • discord.gg/vsyRNWApUm
[14:23:15] [OREO] PlayerName queued • Position #1
[14:23:16] [OREO] Starting scan: PlayerName
[14:23:16] [OREO] Probing Meteor...
[14:23:17] [ALERT] PlayerName detected Meteor Client
[14:23:17] [ACTION] PlayerName kicked (Meteor Client)
[14:23:17] [REPORT] Scan complete: Meteor=DETECTED, Freecam=NOT_DETECTED, ...
PlayerName left the game [Meteor Client detected]
Every detection logged. Every action timestamped. Full audit trail in console.
SCREENSHOTS
In-Game Report:
Code:
▪ Oreo | Scan Report | PlayerName
x Meteor detected
v Freecam not detected
v Item Scroller not detected
v Accurate Block Placement not detected
v Tweakeroo not detected
v MiniHUD not detected
v Litematica not detected
Scan complete in 847 ms
Queue Status:
Code:
▪ Oreo | Scan Queue
Now scanning: Player1
#1 waiting: Player2
#2 waiting: Player3
#3 waiting: Player4
REQUIREMENTS
- Paper / Folia 1.21.x
- Java 17+
- PacketEvents v2.7.0+ (separate plugin install)
LICENSE
FREE — Get your license key on Discord: discord.gg/vsyRNWApUm
Unlicensed mode (red console banner): Alerts only, no detection actions.
Licensed mode (cyan console banner): Full scanning + actions active.
© zVault — Do not decompile, redistribute, or resell. License valid for one network.
