Links
Tags
Creators
Details
All versions
0.0.1
Release
AntiRaidSystem 0.0.1last year 143
Compatibility
Minecraft: Java Edition
1.21–1.21.8
Platforms
Bukkit
Paper
Spigot
Changes
EN / English
Protection plugin against offline-mode raid/scanner attacks for Spigot/Paper 1.21.x.
Features
- Nickname ⇄ IP lock with multi-IP grace and optional /24 subnet allowance
- Player/IP allowlists
- New-player restrictions (blocked commands + command cooldown)
- Global block for dangerous commands (e.g., execute)
- RU/EN i18n with auto locale detection
- Strict protection mode for admin nicknames (only pre-authorized IPs)
Compatibility
- Spigot/Paper 1.21 – 1.21.x (
api-version: 1.21)
Installation
- Place
build/libs/AntiRaidSystem-0.0.1.jarintoplugins. - Start server to generate the config.
- Adjust
config.ymlto your needs.
Quick start (routine steps)
- Keep strict defaults (1 IP, no /24, trust after 24h).
- Add your admin nicknames to
protected.players(or use/ars protect <player>). - On first admin logins, authorize their IPs via
/ars authorize <player> <ip>. - For users with frequently changing IPs, either use
/ars authorizeas needed or increasegeneral.ip_lock_auto_learn_up_to. - Watch plugin logs for pre-login and command blocks.
Scenarios & solutions
- Player with dynamic IP:
- Default behavior: kick on IP change. Solution:
/ars authorize <nick> <new-ip>. - Changes often? Increase
general.ip_lock_auto_learn_up_to(e.g., 2–3) or enable/24(ip_lock_allow_same_subnet_24: true).
- Default behavior: kick on IP change. Solution:
- Admin nickname targeted:
- Add to
protected.players. Only pre-authorized IPs may join.
- Add to
- New players spamming commands:
- Raise
security.command_cooldown_seconds(e.g., 2–3).
- Raise
- Attempts to abuse WorldEdit:
- Untrusted already blocked for
//and common WE commands. Keep them untrusted (24h) or grant trust manually/ars trust <player>.
- Untrusted already blocked for
- Curious users checking plugins/version:
- Untrusted blocked for
pl/plugins/version/help. Extendsecurity.blocked_for_untrustedif needed.
- Untrusted blocked for
- Need to quickly allow full commands to a user:
- Grant trust:
/ars trust <player>(adds totrusted.nicknames). Revoke:/ars untrust <player>.
- Grant trust:
Commands
/ars reload— reload config/ars authorize <player> <ip>— authorize IP for a nickname/ars allowplayer <player>— add allowed player/ars allowip <ip>— add allowed IP/ars protect <player>— enable strict protection for nickname/ars unprotect <player>— disable strict protection
Permission: ars.admin (default: OP).
Config (highlights)
general.ip_lock_enabled: enable nickname ⇄ IP lockgeneral.ip_lock_auto_learn_up_to: auto-learn up to N IPs per nicknamegeneral.ip_lock_allow_same_subnet_24: allow same /24 subnetgeneral.allowlist_players_only/general.allowlist_ips_only: strict allowlist modesgeneral.block_dangerous_commands_globally: block commands for allsecurity.command_cooldown_seconds: per-player command cooldownsecurity.blocked_for_untrusted: blocked commands for new players (WorldEdit/FAWE, scoreboard, plugin info)protected.players: nicknames with strict protectionmessages: RU/EN messages, bilingual kick texts for unknown locale
See config.yml for fully documented options (RU/EN comments).
License (short)
- Allowed: use the plugin; redistribute the original, unmodified JAR with attribution.
- Prohibited: selling; modifying/decompiling/forking and distributing derivatives; removing attribution; changing the license.
- You may modify source code only for personal use on your own servers. Publishing/distributing modified versions is prohibited.
See
LICENSEfor details.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:Ar6YGrDd:RaUQ5wEO"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Ar6YGrDd:RaUQ5wEO"
}

