Polymart is now Voxel Shop! We're upgrading many features of the site, and during this open beta you will experience 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


