
EzAfk
Modern, lightweight AFK management plugin that keeps your staff informed while gently nudging idle players back into the action
Автор: Shadow484022,2 тыс.8обновлён 27 июл. 2026 г.
ЭкономикаУправлениеОбщение
Описание
EzAfk
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.1.1 · Minecraft 1.21+ · Java 21+ · 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 whitelist <add|remove|list> [player] | Manage the persistent bypass whitelist | ezafk.bypass.manage |
/afk bypass blacklist <add|remove|list> [player] | Manage the persistent bypass blacklist | ezafk.bypass.manage |
/afk bypass <player> | Toggle per-session 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
Последние версии
Все версии →release
EzAfk 3.1.2
3.1.227 июл. 2026 г.733Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
### Fixed
- Chat messages (AFK broadcast, return, zone enter/exit, etc.) now support
MiniMessage tags (e.g. `<red>`, `<gradient>`) in PlaceholderAPI placeholder values in addition to legacy
`&`-color codes, matching the formatting already available for item lore.
- Resolved a Paper/Folia smoke-test CI issue where version *group* keys
(e.g. `26.1`) were passed directly to fill.papermc.io's build-lookup
endpoint, which requires a concrete version (e.g. `26.1.2`); resolution
now looks up the newest concrete version for a given group automatically.
- Fixed the Spigot smoke-test BuildTools step copying the wrong jar
filename when `--rev` resolved to a different concrete version than the
literal matrix value (e.g. `26.1` building `spigot-26.1.2.jar`).
### Changed
- Restructured the project into a multi-module Maven build
(`ezafk-api`, `ezafk-core`, `ezafk-folia`, `ezafk-paper-26.1`, `ezafk`)
to better isolate platform-specific (Paper/Folia) code paths. The
published plugin remains a single shaded jar with no change to
installation or configuration.
release
EzAfk 3.1.1
3.1.16 июл. 2026 г.111Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
[Modrinth](https://modrinth.com/plugin/ezafk/version/3.1.1)
### Fixed
- AFK broadcast and return messages now resolve PlaceholderAPI placeholders
with the AFK player's context, so integrations like LuckPerms prefixes work
correctly in `messages.yml`.
---
release
EzAfk 3.1.0
3.1.028 июн. 2026 г.84Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
[Modrinth](https://modrinth.com/plugin/ezafk/version/3.1.0)
### Added
- **Bypass whitelist and blacklist** - Two persistent lists (stored in
`bypass-lists.yml`) let admins fine-tune who bypasses AFK detection:
- **Whitelist** — players that *always* bypass, regardless of the
`afk.bypass.enabled` config flag or whether they hold the `ezafk.bypass`
permission.
- **Blacklist** - players that are *never* allowed to bypass, even when they
hold `ezafk.bypass` (useful for ops/admins who want to be subject to AFK
detection and zone rewards for testing or fairness).
- Blacklist takes precedence over whitelist.
- Managed in-game with `/afk bypass whitelist <add|remove|list> [player]`
and `/afk bypass blacklist <add|remove|list> [player]`
(requires `ezafk.bypass.manage`).
- Tab completion is provided for all three argument depths.
- Lists are reloaded on `/afk reload`.
- **AFK zone entry / exit messages** - Players now receive a chat message when
they enter or leave an AFK zone (`afkzone.enter` / `afkzone.exit` message
keys in `messages.yml`; both support the `%zone%` placeholder).
- **AFK zone reward countdowns via EzCountdown** - When
[EzCountdown](https://github.com/ez-plugins/EzCountdown) is installed,
players in AFK zones see a live countdown to their next reward (action bar,
title, boss bar, scoreboard, or dialog — configurable per zone). The countdown
resets automatically after each payout.
- **Global zone reward defaults** - A top-level `defaults.reward` block in
`zones.yml` lets you configure economy reward amount, interval, and
notification settings once for all zones. Individual zones can still override
any value. When Vault is present and `defaults.reward.enabled: true`, all
zones automatically grant small economy rewards without per-zone configuration.
- **Session reward stats per player per zone** - EzAfk now tracks how many
rewards and how much currency each player has received in each zone for the
current server session (resets on restart). Available via PlaceholderAPI:
- `%ezafk_zone_rewards_grants%` - total grants across all zones
- `%ezafk_zone_rewards_amount%` - total currency earned across all zones
- `%ezafk_zone_reward_<zone>_grants%` - grants in a specific zone
- `%ezafk_zone_reward_<zone>_amount%` - currency earned in a specific zone
- New notification config fields on zone rewards:
`reward.notification.enabled`, `reward.notification.displays`,
`reward.notification.message`, `reward.notification.duration`.
### Fixed
- Duplicate `reward:` YAML key under `afkzone:` in `messages.yml` — the second
block (`failed:`) was silently overwriting the first (`granted.*`), making all
reward granted messages fall back to their hardcoded defaults.
[EzCountdown](https://github.com/ez-plugins/EzCountdown) plugin. Detected
automatically when present (`integration.ezcountdown: auto`).
- **Configurable kick-warning display types** — `kick.warnings.displays` accepts
a list of display types: `CHAT`, `TITLE`, `ACTION_BAR`, `BOSS_BAR`. Multiple
types can be active at once (e.g. `[ACTION_BAR, BOSS_BAR]`). When the list is
empty the legacy `kick.warnings.mode` value is used for backward compatibility.
- New message keys `kick.warning.action_bar` and `kick.warning.boss_bar` in
`messages.yml` for the new display types.
### Changed
- `CompatibilityUtil` now handles `sendActionBar`, `showBossBarWarning`, and
`removeWarningBossBar` via reflection - safe on servers without the BossBar
API (pre-1.9) or without the action-bar method available.
- **Java 21+ is now required.** `maven.compiler.release` raised from `11` to
`21`; the plugin JAR targets Java 21 bytecode (class file version 65).
Servers running Minecraft 1.21+ already require Java 21, so this is a no-op
for all supported server versions.
- Minimum supported Minecraft version is now **1.21** (was 1.19). Older
versions are no longer tested or guaranteed to work.
### Removed
- Paper 1.20.4 / Java 17 legacy CI smoke test (not needed after dropping Java 17
support).
---
release
EzAfk 3.0.0
3.0.026 апр. 2026 г.176Minecraft: 26.1, 26.1.1, 26.1.2bukkit, paper, purpur, spigot
Что нового
- Updated plugin to Java 25
- Updated to Paper 26.1
- Integrated [Jaloquent](https://github.com/EzFramework/Jaloquent) for the storage
- Added optional Jaloquent logging
release
EzAfk 2.4.1
2.4.125 апр. 2026 г.216Minecraft: 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
* fix: solved issue in WorldGuard integration passing null parameter in https://github.com/ez-plugins/EzAfk/pull/33
* Docs/GitHub pages documentation in https://github.com/ez-plugins/EzAfk/pull/34
* docs: fix table format in https://github.com/ez-plugins/EzAfk/pull/35
* docs: fix format of other tables in https://github.com/ez-plugins/EzAfk/pull/36
* fix: only register economy when enabled in https://github.com/ez-plugins/EzAfk/pull/38
release
EzAfk 2.4.0
2.4.026 мар. 2026 г.150Minecraft: 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
- Added Japanese translations (`ja`)
- Added German translations (`de`)
- Fixed issue, making it possible to create custom language files and use them
release
EzAfk 2.3.3
2.3.318 февр. 2026 г.174Minecraft: 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
- Fixed issue in TAB integration
release
EzAfk 2.3.2
2.3.29 февр. 2026 г.91Minecraft: 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
**Feature changes**
- Fixed bug in WorldGuard being required, error on server startup when WorldGuard not available
**Code changes**
- Fixed MockBukkit testing
- Added automated test tools
- Added feature tests for all commands
release
EzAfk 2.3.1
2.3.18 февр. 2026 г.37Minecraft: 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
- Added new sound for when player comes back from being AFK.
```yaml
unafk:
sound:
enabled: true
# Path to the MP3 file to play when returning from AFK (relative to plugin folder)
file: "mp3/ezafk-sound.mp3"
```
release
EzAfk 2.3.0
2.3.029 янв. 2026 г.74Minecraft: 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
- Added AFK zones
- Added AFK zone rewards
- Added WorldEdit integration for adding AFK zones
```yaml
regions:
- world: world
z1: -877.0
name: zone1
y1: 62.0
z2: -844.0
x1: 100.0
y2: 69.0
x2: 140.0
reward:
enabled: true
interval-seconds: 60
amount: 5.0
type: economy
max-stack: 0
limit: 10
limit-cooldown-seconds: 60
```
- Improved WorldGuard flag registering