Voxel Shop beta is live. Expect occasional bugs. Learn more
Smart and configurable AFK management for your server!

AntiAFKPlus is a premium AFK management plugin that goes far beyond a simple kick timer. It detects AFK farming, autoclickers, water-circle exploits, and repetitive movement patterns — then acts on them automatically.
Built with a modular architecture, every feature is independently toggleable. You only run what you need. No bloat, no wasted resources.
Whether you run a small Survival server or a large network with BungeeCord, AntiAFKPlus has a configuration for you.
🔍 Intelligent AFK Detection
💳 Credit System
🎮 In-Game GUI
🌍 WorldGuard AFK Zones
🎨 Visual Effects
🛡️ Player Protection
🌐 Integrations
🏆 Reward System
⏰ Advanced Controls
🌎 10 Built-In Languages
English · Spanish · French · German · Portuguese · Russian · Chinese · Japanese · Korean · Italian
All ~150 message keys are fully editable. Add your own language by dropping a .yml in the languages/ folder.
Use these in any TAB, chat, or scoreboard plugin that supports PlaceholderAPI:
| Placeholder | Description | Example |
| %antiafkplus_status% | AFK status (localized) | AFK / ACTIVE |
| %antiafkplus_afktime% | Seconds since last activity | 120 |
| %antiafkplus_credits% | Credit balance (minutes) | 45 |
| %antiafkplus_credits_hours% | Credit balance (hours) | 2 |
| %antiafkplus_max_credits% | Max credits for player | 120 |
| %antiafkplus_credit_ratio% | Credit earning ratio | 5:1 |
| %antiafkplus_in_afk_zone% | Whether in AFK zone | true / false |
| %antiafkplus_credits_expire_days% | Days until credits expire | 5 |
| %antiafkplus_credits_rank% | Leaderboard position | 3 |
⌨️ Commands
[SPOILER=Click to view all commands]
| Command | Description | Permission |
| /afk | Toggle manual AFK mode | antiafkplus.afk |
| /afk list | List all AFK players | antiafkplus.list |
| /afk status [player] | Check a player's AFK status | antiafkplus.status.check |
| /afkplus reload | Reload configuration | antiafkplus.reload |
| /afkplus gui | Open in-game settings GUI | antiafkplus.reload |
| /afkplus status | Plugin status & analytics | antiafkplus.stats |
| /afkplus performance | Performance metrics (TPS, memory) | antiafkplus.stats |
| /afkplus event credits [mult] [min] | Start a credit multiplier event | antiafkplus.reload |
| /afkcredits | Check your credit balance | antiafkplus.credit.check |
| /afkcredits transfer [player] [min] | Send credits to another player | antiafkplus.credit.transfer |
| /afkcredits top [limit] | Credit leaderboard | antiafkplus.credit.check |
| /afkcredits give/take/set [player] [min] | Admin credit management | antiafkplus.credit.admin |
| /afkcredits reset [player] | Reset a player's credits | antiafkplus.credit.admin |
| /afkcredits history [player] [limit] | Credit transaction history | antiafkplus.credit.admin |
| /afkback | Return from AFK zone | antiafkplus.credit.return |
[/SPOILER]
[SPOILER=Click to view all permissions]
| Permission | Description |
| antiafkplus.bypass | Exempt player from all AFK checks |
| antiafkplus.afk | Use /afk to toggle manual AFK |
| antiafkplus.list | View the AFK player list |
| antiafkplus.status.check | Check AFK status of any player |
| antiafkplus.reload | Reload config / open GUI / run events |
| antiafkplus.stats | View plugin stats and performance |
| antiafkplus.notify.patterns | Receive pattern detection alerts |
| antiafkplus.credit.check | View own credit balance and leaderboard |
| antiafkplus.credit.transfer | Transfer credits to other players |
| antiafkplus.credit.admin | Give/take/set/reset credits for any player |
| antiafkplus.credit.return | Use /afkback to return from AFK zone |
| antiafkplus.window.bypass | Bypass AFK time window restrictions |
| antiafkplus.time.vip | 10-minute AFK timeout |
| antiafkplus.time.premium | 15-minute AFK timeout |
| antiafkplus.time.donator | 20-minute AFK timeout |
| antiafkplus.time.staff | 30-minute AFK timeout |
[/SPOILER]
[SPOILER=Core AFK Settings]
# Seconds before a player is considered AFK
default-afk-time: 300
# Warning times (seconds before kick)
afk-warnings:
- 60
- 30
- 10
# Per-rank timeouts (override default)
permission-times:
"antiafkplus.time.vip": 600
"antiafkplus.time.staff": 1800
"antiafkplus.time.premium": 900
"antiafkplus.time.donator": 1200
# Per-world control
enabled-worlds:
- "world"
- "world_nether"
- "world_the_end"
[/SPOILER]
[SPOILER=Pattern Detection]
modules:
pattern-detection:
enabled: true
water-circle-radius: 5.0
min-samples-for-pattern: 40
repetitive-movement-threshold: 0.95
max-pattern-violations: 8
large-pool-detection: true
keystroke-timeout-seconds: 180
linear-movement-exclusion: true
activity-grace-period-seconds: 60
[/SPOILER]
[SPOILER=Visual Effects]
visual-effects:
particles:
enabled: true
type: "CLOUD"
count: 5
tab-list:
enabled: true
afk-prefix: "&7[AFK] "
afk-suffix: ""
name-tags:
enabled: false
afk-prefix: "&7[AFK] "
afk-suffix: ""
holograms:
enabled: false
provider: "DecentHolograms"
lines:
- "&c[AFK]"
- "&7{player}"
- "&eAFK for {time}"
[/SPOILER]
[SPOILER=Credit System]
credit-system:
enabled: true
credit-ratios:
default: "5:1" # 5 active min = 1 AFK credit
vip: "4:1"
premium: "3:1"
admin: "2:1"
max-credits:
default: 120
vip: 180
premium: 240
admin: 480
credit-decay:
enabled: false
expire-after-days: 7
[/SPOILER]
AntiAFKPlus exposes a clean, thread-safe API for plugin developers. Available via JitPack.
[SPOILER=Maven / Gradle dependency]
jitpack.io
https://jitpack.io
com.github.koyere
AntiAFKPlus
3.0
provided
[/SPOILER]
[SPOILER=API usage example]
AntiAFKPlusAPI api = AntiAFKPlusAPI.getInstance();
// Check AFK status
boolean isAfk = api.isAFK(player);
AFKStatus status = api.getAFKStatus(player); // ACTIVE, AFK_IDLE, AFK_WARNED, AFK_VOLUNTARY
// Activity info
Duration inactive = api.getTimeSinceLastActivity(player);
PlayerActivityInfo info = api.getActivityInfo(player);
// Pattern detection
if (api.hasSuspiciousPatterns(player)) {
List patterns = api.getDetectedPatterns(player);
}
// Credit system
long balance = api.getCreditBalance(player);
api.addCredits(player, 15);
api.consumeCredits(player, 5);
// Listen to events
api.registerAFKStateListener(event -> {
// fires on AFK state changes
});
api.registerPatternDetectionListener(event -> {
if (event.getPattern().getConfidence() > 0.9) {
event.getPlayer().kickPlayer("Bot detected");
}
});
[/SPOILER]
All events fire synchronously on the main thread. Async methods (*Async()) available for heavy operations. Full documentation in API.md on GitHub.
[LIST=1]Purchase and download the latest AntiAFKPlus-3.0.jarDrop it into your /plugins/ folderRestart your server (or use /reload — restart preferred)Configure /plugins/AntiAFKPlus/config.yml as desiredUse /afkplus reload to apply changes without restarting
[/LIST]
Optional dependencies: PlaceholderAPI · WorldGuard · Vault · DiscordSRV · DecentHolograms · Floodgate


