Server-side client and mod fingerprinting plugin: tracks plugin channels and visible payloads, matches configurable rules, and runs staff alerts, kicks, bans, or console commands. Built for busy SMPs that want visibility without client mods. Paper and Folia 1.21 - 26.x
Support
Report bugs and get support here: https://discord.gg/VvM6k2eBDa
Features
• Folia support – Runs on Folia-compatible Paper forks.
• Channel & payload probe – Collects registered channels, brand payloads, and optional payload previews; evaluates on join, follow-up passes, channel register, and (with ProtocolLib) custom payloads across Play/Configuration/Login.
• ProtocolLib integration (optional) – Stronger capture: multi-slot payloads, minecraft:register parsing (null-delimited, length-prefixed chain, regex fallback), minecraft:unregister handling.
• Configurable rules – Categories (e.g. mod-loader hints, Lunar, Bedrock/Floodgate), named channel-checks (brands and common client/mod channels), forge-mod policy, and generic regex rules on brand, payload, or combined sources; per-rule actions, silent mode, and webhook tier.
• Actions – alert, kick, ban (vanilla or console command template), console command; token placeholders for player, uuid, world, detail, rule, category, name, ip; optional first-violation education kick with policy/discord URLs; alert rate limiting.
• Brand hardening – Normalization with homoglyph map, bidi/zero-width stripping, whitespace collapse.
• Discord webhooks – Default and tiered URLs; optional duplicate suppression window per player + rule (in-game alerts unchanged).
• Database logging – Detections and optional stored channel fingerprints (SHA-256 of brand + sorted channels) for join summaries; SQLite default, MySQL optional; circuit breaker on write failures.
• Staff UX – Join notify line for staff (optional fingerprint token, hint text, notify only on fingerprint change); /check with pagination, namespace grouping, hidden-namespace filters; /fingerprint for live hash vs DB; /stats for evaluation metrics; per-staff alert mute toggle.
• Safety valves – Bypass permission, UUID and world whitelists; optional recheck on world change; queued evaluations with caps; join capture boost and delayed passes for slow-registering clients; optional plugin-message flag handoff for network setups.
• Player self-view – /clientguard shows own brand, Bedrock flag, and filtered channel preview with disclaimer.
• Messages – MiniMessage-based messages.yml; many action strings overridable in config.
Commands
/clientguard – Show your own client summary (brand, Bedrock, channels preview) (perfclientguard.use)
/perfclientguard reload – Reload config and messages (perfclientguard.admin)
/perfclientguard help – Show admin usage (perfclientguard.admin)
/perfclientguard status (player) – Online probe summary and recent DB flags (perfclientguard.admin)
/perfclientguard check (player) [page] – Paginated channel view, payload preview sample, recent flags (perfclientguard.admin)
/perfclientguard fingerprint (player) – Live SHA-256 fingerprint and DB comparison (online players only) (perfclientguard.admin)
/perfclientguard stats – Evaluation and queue statistics (perfclientguard.admin)
/perfclientguard toggle – Mute or unmute staff detection alerts for yourself (perfclientguard.admin and perfclientguard.alert)
Database
• SQLite (default, file perfclientguard.db)
• MySQL (configurable via database.type)
• Tables: detection history; optional per-player channel fingerprints for join notifications
