On this page
Commands and permissions
The main command is /afkwarden, and /afkw is its short alias: it works in every command on this page (/afkw list is the same as /afkwarden list). If another plugin registers the same name, type /afkwarden:afkwarden or /afkwarden:afkw. In game, type commands with a slash (/afkwarden list); in the server console, without it (afkwarden list).
There are no player commands: EssentialsX already provides /afk, and AFK Warden never overrides it.
Staff commands #
Every subcommand needs afkwarden.admin and also works from the console. /afkwarden alone shows the usage line. Tab completion offers the subcommands, the players online for status and the license subcommands; it never suggests a key.
| Command | What it does |
|---|---|
/afkwarden status [player] | Shows one player's state: how long they have been idle, whether they are marked AFK, which entry of the ranks section applies to them (or the global settings) and, if they are exempt, why: the afkwarden.bypass permission, a rank with bypass: true, their game mode or their world. On Free with more than one entry in ranks, it also says which entry applies and which are ignored. Without a player it shows your own; from the console the player is required. |
/afkwarden list | Lists the players marked AFK right now, with how long each one has been idle. |
/afkwarden reload | Reloads config.yml and the messages file without a restart. The idle timers are kept and every player's rank is resolved again. A changed license.key is picked up too (the old key's activation is released first), and telemetry.enabled and update-check take effect at once. If a file is not valid YAML, the command says so and the previous values stay in use. |
/afkwarden license [status] | Shows the license: the tier (Free, Pro or Pro Lifetime) and its state (no key, valid, offline grace, refused or not verified yet), the masked key and its kind, the expiry, the last check and the last successful one, the reason of a refusal, this server's install id (Install: and 12 hexadecimal characters) and how many ranks entries are in effect. |
/afkwarden license activate <key> | Checks the key and, when it is accepted, makes it this server's license and saves it under license.key in config.yml (comments kept). The answer arrives a moment later. A refused key changes nothing, and a key already active here is released only after the new one is accepted. See Licensing. |
/afkwarden license deactivate | Releases this server's activation so the key can be used on another server, removes license.key from config.yml and goes back to Free. |
/afkwarden telemetry | Shows whether the anonymous usage report is on, where it goes, the random report id (send it to us to have this server's data deleted), when the last report was sent and how it went, when the next one is due, and the exact data of the last report. |
afkwarden list
afkwarden status Alex
afkwarden license activate AWPRO-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
afkwarden license
afkwarden telemetry
/afkw status
Lowering kick-after with a reload does not kick anyone on the spot: players already past the new value are warned first and kicked no sooner than warn-before-kick later. Switching sync-with-essentials off clears every EssentialsX AFK status AFK Warden had set.
License keys stay out of the log #
Keys are masked in every log line. Still, prefer the console for license activate: from chat, the server writes every command into its log before any plugin sees it. AFK Warden removes that line from the log when the server logs through Log4j, as Spigot and Paper do, and says so at startup when it cannot.
Environment variable #
| Variable | What it does |
|---|---|
AW_LICENSE_KEY | The license key, instead of license.key in config.yml; it takes precedence when set. license activate then uses the key for this run only and leaves config.yml as it is, and license deactivate ignores the variable until the next restart. |
Permissions #
In the Default column, "op" means operators have it and "nobody" means nobody has it until you grant it.
| Permission | What it allows | Default |
|---|---|---|
afkwarden.admin | Every /afkwarden subcommand (status, list, reload, license, telemetry), and the update notice in chat when joining. | op |
afkwarden.bypass | Never marked AFK, never warned, never kicked, on every tier. The player is still tracked, so /afkwarden status works for them. | nobody |
Nobody is exempt by default, not even operators. essentials.afk.kickexempt does not apply to AFK Warden, and a rank with bypass: true in the ranks section of config.yml behaves exactly like afkwarden.bypass.
With LuckPerms #
From the console:
lp group staff permission set afkwarden.bypass true
lp group admin permission set afkwarden.admin true
When a player belongs to several groups listed under ranks, the one with the highest LuckPerms weight applies. To see or set a group's weight:
lp group vip info
lp group vip setweight 10
PlaceholderAPI #
When PlaceholderAPI is installed, the plugin registers the afkwarden expansion on its own, and it survives /papi reload.
| Placeholder | Value | Example |
|---|---|---|
%afkwarden_afk% | true when the player is marked AFK, otherwise false. | false |
%afkwarden_idle_seconds% | Seconds since the player was last active. | 270 |
%afkwarden_afk_count% | How many players are marked AFK right now (needs no player). | 3 |
%afkwarden_rank% | The ranks entry that applies to the player, or none. | vip |
For a player who is not online the per-player placeholders are empty. To check a value from the console, use PlaceholderAPI's own command:
papi parse Alex %afkwarden_idle_seconds%