Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
1.7.x
Platforms
Creators
Details
Licensed ARR
Published 3 months ago
Keep AFK management simple.
EzAfk is a modern, lightweight AFK management plugin for Paper and Spigot servers. It automates AFK detection, rewards or charges players based on idle state, gives staff a real-time overview panel, and integrates with the tools you already run, all without sacrificing performance.
v3.0.0 · Minecraft 26.1+ · Java 25 · Paper / Spigot / Bukkit / Purpur
Feature Highlights
| Feature | Summary |
|---|---|
| AFK Detection | Idle timeout with configurable broadcasts, titles, animations, display-name changes, and a blindness-blur overlay |
| Anti-Bypass | Block infinite water flow, vehicle riding, and bubble column tricks from resetting idle timers |
| AFK Kick | Kick idle players after a configurable period, optionally only when the server is full |
| Kick Warnings | Multi-stage countdown messages (chat and/or title) at custom intervals before the kick fires |
| Staff GUI | /afk gui panel showing all AFK players with one-click kick, message, teleport, and custom command buttons |
| AFK Zones | Cuboid regions where players earn rewards (economy, commands, or items) for being AFK |
| Economy Costs | Charge a one-time entry fee and/or a recurring fee while AFK via any Vault economy plugin |
| AFK Leaderboard | Per-player cumulative AFK time, /afk top leaderboard, persisted across restarts |
| PlaceholderAPI | 16 placeholders for status, session time, totals, counts, prefix/suffix, and playtime |
| Multi-language | EN, ES, NL, RU, ZH, DE, fully overridable per server |
| Storage backends | YAML (default), SQLite, or MySQL |
| Simple Voice Chat | Play a custom MP3 sound when a player goes AFK |
Installation
- Download
EzAfk-x.x.x.jarfrom the files tab above. - Drop it into your server's
plugins/folder. - Restart the server. EzAfk generates all config files automatically.
- Edit
plugins/EzAfk/config.ymlto configure your desired features. - Run
/afk reloadin-game to apply changes without a restart.
Commands
| Command | Description | Permission |
|---|---|---|
/afk |
Toggle your own AFK status | (none) |
/afk reload |
Reload all configuration files | ezafk.reload |
/afk gui |
Open the AFK staff overview panel | ezafk.gui |
/afk toggle <player> |
Force a player's AFK state | ezafk.toggle |
/afk bypass <player> |
Toggle AFK bypass for a player | ezafk.bypass.manage |
/afk info <player> |
View a player's AFK session details | ezafk.info |
/afk time [player] |
View total AFK time | ezafk.time |
/afk time reset <player> |
Reset a player's AFK time | ezafk.time.reset |
/afk top |
Show the AFK time leaderboard | ezafk.top |
/afk zone pos1 / pos2 |
Select zone corners | ezafk.zone.manage |
/afk zone add <name> |
Create an AFK zone | ezafk.zone.manage |
/afk zone remove <name> |
Remove an AFK zone | ezafk.zone.manage |
/afk zone list |
List all zones | ezafk.zone.list |
Aliases: /ezafk, /ea, /afktime, /afktop
Permissions
| Node | Default | Description |
|---|---|---|
ezafk.reload |
OP | Reload configuration |
ezafk.bypass |
OP | Never be marked AFK automatically |
ezafk.bypass.manage |
OP | Toggle bypass for other players |
ezafk.toggle |
OP | Toggle other players' AFK state |
ezafk.info |
OP | View AFK details for other players |
ezafk.kick.bypass |
OP | Never be kicked by EzAfk |
ezafk.gui |
OP | Open the staff GUI |
ezafk.gui.view-active |
OP | View non-AFK players in the GUI |
ezafk.gui.actions |
OP | Use action buttons in the GUI |
ezafk.time |
all | View own AFK time |
ezafk.time.others |
OP | View another player's AFK time |
ezafk.time.reset |
OP | Reset a player's AFK time |
ezafk.top |
OP | View the leaderboard |
ezafk.economy.bypass |
OP | Skip economy AFK charges |
ezafk.zone.list |
OP | List AFK zones |
ezafk.zone.manage |
OP | Create and remove zones |
PlaceholderAPI Placeholders
Requires PlaceholderAPI. The expansion registers automatically. No extra setup needed.
| Placeholder | Returns |
|---|---|
%ezafk_status% |
AFK or ACTIVE |
%ezafk_status_colored% |
&cAFK or &aACTIVE |
%ezafk_since% |
Seconds since AFK session started (empty if not AFK) |
%ezafk_last_active% |
Seconds since last player activity |
%ezafk_total_seconds% |
Total lifetime AFK seconds |
%ezafk_total% |
Total AFK time HH:MM:SS |
%ezafk_total_formatted% |
Verbose, e.g. 2 hours 15 minutes |
%ezafk_prefix% |
Configured AFK display-name prefix |
%ezafk_suffix% |
Configured AFK display-name suffix |
%ezafk_playtime_active_seconds% |
Active (non-AFK) playtime in seconds |
%ezafk_playtime_active% |
Active playtime HH:MM:SS |
%ezafk_playtime_active_formatted% |
Active playtime verbose |
%ezafk_afk_count% / %ezafk_afk_players% |
Number of AFK players |
%ezafk_active_count% / %ezafk_active_players% |
Number of non-AFK players |
Configuration Overview
EzAfk's settings are spread across focused files for clarity:
config.yml AFK detection, kick, anti-bypass, economy, integrations
gui.yml Staff GUI layout and action buttons
zones.yml AFK zone definitions with coordinates and rewards
mysql.yml Database connection (only when storage.type: mysql)
messages/ Language files: en.yml, es.yml, nl.yml, ru.yml, zh.yml, de.yml
Core settings (config.yml)
afk:
timeout: 300 # seconds of inactivity → AFK
broadcast:
enabled: true # announce AFK in chat
title:
enabled: true # show title to the AFK player
anti:
infinite-waterflow: false
infinite-vehicle: false
bubble-column: false
kick:
enabled: false # kick AFK players
enabledWhenFull: false # only kick when server is at capacity
timeout: 600 # seconds AFK before kick
warnings:
enabled: true
intervals: [60, 30, 10]
mode: both # chat | title | both
economy:
enabled: false
cost:
enter:
enabled: true
amount: 25.0
storage:
type: yaml # yaml | sqlite | mysql
flush-interval-seconds: 30
Integrations
| Integration | Notes |
|---|---|
| Vault / Economy | Required for economy costs and zone economy rewards |
| PlaceholderAPI | Auto-detected; provides 16 AFK placeholders |
| WorldGuard | Adds afk-bypass region flag; use /rg flag <region> afk-bypass allow |
| TAB | Delegate tab-list AFK prefix formatting to the TAB plugin |
| Simple Voice Chat | Play MP3 sounds on AFK state changes |
| bStats | Anonymous usage statistics (opt-out in config.yml) |
| Spigot update checker | Console reminder when a new version is available |
Links
- Documentation: full configuration guide, feature pages, and API reference
- Discord: support, bug reports, and feature requests
- GitHub: source code and issue tracker
- Developer API:
PlayerAfkStatusChangeEventandAfkReasonenum



