A lightweight Paper plugin that blocks known scanning bots from joining your Minecraft server, using name matching, IP heuristics, reputation scoring, rate limiting, auto-blacklisting, entropy detection, CIDR blocking, and external blocklists.
- Pre-login blocking — rejected during handshake, before loading chunks
- Exact + regex name matching — block
MCScans,Notch,Test\d{3,}, etc. - IP pattern + CIDR blocking — block hosting ranges, proxy ASNs, Tor exit nodes
- Rate limiting — max N joins per IP per time window
- Auto-blacklisting — temp-ban IPs that trigger too many blocks
- Entropy detection — catch randomly-generated scanner names automatically
- External blocklists — fetch community-maintained lists via HTTP
- Reputation scoring — weighted score system, smarter than binary matching
- Database bans —
/dnssms ban <name>persists to H2, SQLite, MariaDB, MySQL, PostgreSQL, Redis, or MongoDB - Structured logging — fail2ban-compatible
[SCAN]log lines or JSON - Config reload —
/dnssms reload, no restart needed
- Download
Do-Not-Scan-My-Server-*.jarintoplugins/ - Restart server — zero-config built-in defaults protect immediately
- Run
/dnssms statusto see what's active
| Command | Permission | Description |
|---|---|---|
/dnssms reload |
dnssms.reload |
Reload config.yml |
/dnssms ban <name> |
dnssms.ban |
Persistently ban a name |
/dnssms unban <name> |
dnssms.unban |
Remove a database ban |
/dnssms status |
dnssms.status |
Show plugin state and active heuristics |
/dnssms checkip <ip> |
dnssms.status |
Check if an IP matches any block rule |
plugins/Do-Not-Scan-My-Server/config.yml — see docs/CONFIGURATION.md.
./gradlew build
# → build/libs/Do-Not-Scan-My-Server-1.0.0.jar- Paper 1.21–1.26.1.2
- Java 21+
- GitHub: https://github.com/VOMLabs/anti-scan
- Discord: https://dc.devflare.de
- Report new bots: Open an issue or PR on GitHub