AntiAFK
Advanced AFK detection, challenge system & macro protection - built for servers that take quality seriously.
Your server deserves better than /afk and a timer.
Most AFK plugins do one thing: kick idle players after X seconds. That worked in 2015. Your players are smarter now - they tab-out, run macros, and exploit basic timers. Your economy inflates, your TPS stays pinned, and the players who actually play get a worse experience because of the ones who don't.
AntiAFK is the response to all of that. It detects inactivity accurately, challenges suspicious players intelligently, catches macro movement, and gives you full administrative control - without configuration headaches.
Features
Detection & AFK Tracking
- Precise inactivity detection - Tracks position, yaw, and pitch simultaneously. Players cannot fool it by spinning in place or making minimal movements.
- Grace period on join - Configurable cooldown after a player connects, eliminating false AFK triggers on reconnect.
- Per-world settings - Different inactivity thresholds per world. Nether can have stricter rules than your lobby. End can be excluded entirely.
- Disabled worlds - Remove AFK checking from specific worlds with a single line in config.
Punishment Pipeline
- Fully sequential, threshold-based punishment chain - Define exactly what happens at 60s, 90s, 120s, 150s, 180s. Each step is independent and configurable.
- Available actions: MESSAGE, SOUND, TITLE, CHALLENGE, BOSSBAR, KICK, BUNGEE_SEND, COMMAND, FINE
- Vault economy fine - Deduct money from AFK players instead of kicking them. Perfect for economy servers.
- BungeeCord transfer - Send AFK players to a dedicated AFK server instead of kicking them. Zero player loss on networks.
- Console command execution - Trigger any server command when a threshold is reached. Compatible with any plugin.
Challenge System
- Four challenge types - GUI (click the glowing slot), CHAT (type a random code), MATH (solve a calculation), SHIFT (press sneak within a time limit). Each one catches a different type of AFK abuser.
- Configurable timeout - Players who fail to respond within your defined window are kicked automatically.
- Challenge failure statistics - Every failed challenge is recorded per player for audit purposes.
Macro Detection
- Pattern recognition engine - Analyzes position history to detect repeating movement sequences that indicate macro or bot usage.
- Configurable sensitivity - STRICT, NORMAL, or LOOSE. Tune false positive rate to match your player base.
- Three response actions - WARN, CHALLENGE, or KICK. Escalate based on how confident you want to be before punishing.
- Console logging - Every macro detection event is logged for manual review.
- Discord webhook notification - Macro detections can be posted directly to your moderation channel.
Display & UX
- Boss bar countdown - Visible, configurable warning bar showing remaining time before kick. Color and style are fully adjustable.
- Action bar countdown - Secondary countdown line displayed above the hotbar. Both can run simultaneously.
- Tab list AFK prefix - AFK players are clearly marked in the player list. Configurable prefix and color.
- AFK broadcast messages - Server-wide announcements when a player goes AFK or returns, with optional reason display.
- AFK Room - Teleport AFK players to a dedicated location (a lobby, holding area, anything) instead of kicking them.
- Teleport-back on return - Players are automatically returned to their original location when activity resumes.
Administration
- Admin GUI panel - Paginated GUI showing all online players with their AFK status, exempt state, and inactivity time. Force AFK, toggle exemption, and check status - all without commands.
- AFK exemption system - Exempt specific players from all AFK checks via command or permission node. Persistent across restarts.
- Force AFK command - Manually set any player as AFK from the console or in-game.
- Player statistics - Per-player data: total AFK time, kick count, challenge failures, last seen date. Persistent storage with auto-save.
- Hot reload - Reload all configuration and locale files without restarting the server.
Integrations
- PlaceholderAPI - Expose AFK status and statistics to any plugin that reads PAPI placeholders (scoreboards, holograms, chat formatters).
- Vault - Economy fines for AFK players using any Vault-compatible economy plugin.
- BungeeCord / Velocity - Native plugin messaging channel support for network-wide AFK server transfers.
- Discord Webhooks - Real-time notifications for AFK, return, kick, challenge fail, and macro detection events. Built-in embed formatting, no additional bot required.
Localization
- Full multi-language support - Every player-facing message lives in a locale file. English and Polish included out of the box.
- Zero hardcoded strings - Add your own language file and set it in config. No plugin edits required.
Why AntiAFK over other solutions
| Feature | AntiAFK | Typical free alternatives |
|---|---|---|
| Multi-type challenge system | GUI, CHAT, MATH, SHIFT | Single type or none |
| Macro / bot detection | Pattern recognition engine | Not present |
| Punishment pipeline | Sequential, fully configurable | Kick only or single action |
| BungeeCord AFK server | Built-in | Rare, usually broken |
| Discord webhooks | 5 event types, no bot needed | Not present |
| Economy fines | Vault-native | Not present |
| Per-world configuration | Threshold overrides per world | Global only |
| Player statistics | Persistent, per-player | Not present |
| Admin GUI panel | Paginated, real-time | Not present |
Commands & Permissions
- /afk [reason] - Toggle your own AFK status (antiafk.self)
- /antiafk list - List currently AFK players (antiafk.use)
- /antiafk check <player> - View a player's AFK status (antiafk.check)
- /antiafk setafk <player> - Force a player into AFK mode (antiafk.setafk)
- /antiafk exempt <player> - Toggle AFK exemption for a player (antiafk.exempt)
- /antiafk stats [player] - View AFK statistics (antiafk.stats / antiafk.stats.others)
- /antiafk gui - Open the admin panel (antiafk.gui)
- /antiafk reload - Reload configuration and locale files (antiafk.reload)
Who is this built for
AntiAFK is designed for servers where player behavior actually matters:
- Economy & survival servers - Stop AFK farming from inflating your economy or overloading your farm chunks.
- RPG & roleplay servers - Keep your world populated with active players, not idle accounts.
- Networks & BungeeCord setups - Route idle players to a dedicated server instead of dropping them.
- Competitive & minigame servers - Remove AFK players from queues and active sessions automatically.
- Any server running 24/7 - Overnight idle players, farm bots, and macro users are handled without manual intervention.
If you run a server with more than a handful of regular players and you care about performance, fairness, and player experience - this plugin belongs in your setup.
Technical
- Supports Paper / Spigot 1.21+
- Optional soft dependencies: PlaceholderAPI, Vault
- Thread-safe internals - all player data handled via ConcurrentHashMap, async where safe
- Data persistence across restarts - exempt status and statistics survive server reboots
- Configurable auto-save interval for statistics
- All player-facing strings in external locale files - no recompilation needed to change any message
Stop ignoring the AFK problem.
Every minute an idle player sits on your server is a minute your performance degrades, your economy erodes, and your active players get a worse experience.
AntiAFK gives you the tools to handle it - precisely, automatically, and without babysitting your server.
Buy it once. Configure it once. Let it run.
