
AFK Control 1.0.2
Lightweight AFK detector with warnings and kicks.

Overview
• Detects inactive players and warns/kicks based on configurable thresholds
• Optional AFK Pool region where players are exempt from kicks (with capacity limit)
• Fully configurable messages, kick screen, and admin GUI panel
• Supports 1.8.x → 1.21.x. No dependencies
Features
- Inactivity thresholds with separate warn and kick timers.
- Admin-selectable AFK Pool region (left-click = pos1, right-click = pos2), with timeout.
- Capacity limit for number of exempt players in pool.
- Optional admin bossbar pulse when pool is toggled.
- Read-only in-game panel showing live config values.
- Kick screen and formatting in messages.
- Console logs
- Update checker: notifies admins in-game when a new build release is posted.
Commands
/afkcontrol # Show help (also works with aliases: /afk, /afkc, /ac, /acontrol)
/afkcontrol reload # Reload config.yml and messages.yml
/afkcontrol select # Get wand to select AFK Pool (pos1 = left click, pos2 = right click)
/afkcontrol reset # Clear current AFK Pool region (restores normal kick logic)
/afkcontrol panel # Open in-game read-only overview panel
Permissions
- afkcontrol.use – Base permission for the command (default: true)
- afkcontrol.admin – Access to admin subcommands and panel (default: op)
- afkcontrol.exempt – Player is exempt from AFK checks (default: false)
Quick Start
- Drop the jar in
/plugins
and start your server once. - Edit
config.yml
andmessages.yml
to your liking. - (Optional) Define an AFK Pool region:
/afkcontrol select
then left-click pos1 and right-click pos2. - Reload:
/afkcontrol reload
or restart the server.
config.yml (key options)
enabled: true
# Inactivity thresholds (seconds)
afkThresholdSeconds: 120 # Mark player as AFK after this many seconds
warnAtSeconds: 90 # Warn before kick (0 = disabled)
kickAtSeconds: 150 # Kick after this many seconds (0 = disabled)
# Scan frequency (ticks); 20 ticks = 1 second
scanIntervalTicks: 20
# AFK Pool region and behavior
pool:
enabled: true
capacity: 10 # Max exempt players inside pool
wandMaterial: GOLD_AXE # Wand material given on /select (auto-fallbacks)
selectTimeoutSeconds: 60 # Timeout for region selection
region:
pos1: "" # Stored as "world:x:y:z"
pos2: ""
# Admin bossbar pulse when pool is toggled (best-effort on older versions)
adminBossbarWhenToggled: true
# Update checker (SpigotMC via Spiget)
updates:
enabled: true
spigotResourceId: 123456 # <-- set your real resource ID
checkHours: 12
notifyPermission: afkcontrol.admin
downloadUrlOverride: ""
lastNotified: ""
# Fallback kick reason (use messages.yml kickScreen for multi-line)
kickReason: "Kicked for being AFK too long."
# Actions on warn/kick
actions:
titleOnWarn: true
actionbarOnWarn: true
soundOnWarn: true
messages.yml (highlights)
# Supports MiniMessage-like tags and &-codes. Multi-line arrays allowed.
prefix: "<gold><bold>[AFK Control]</bold></gold> <gray>»</gray> "
# Generic
noPerm: "<red>You lack permission.</red>"
onlyPlayers: "<red>Players only.</red>"
unknownSub:
- "<red>Unknown subcommand.</red>"
- "<gray>Usage:</gray> <white>/afkcontrol reload|select|reset|panel</white>"
# Lifecycle
nowAfk: "<yellow>You are now marked as AFK.</yellow>"
back: "<green>Welcome back! You are no longer AFK.</green>"
warn: "<gold>You have been inactive. You will be kicked soon.</gold>"
# Selection flow
selectStart:
- "<yellow>Selection started.</yellow>"
- "Left-click = <aqua>pos1</aqua>; Right-click = <aqua>pos2</aqua>."
selectTimeout: "<red>Selection timed out after {seconds}s.</red>"
selectAlready: "<red>You already have an active selection.</red>"
selectGaveWand: "<gray>Gave you the AFK pool wand: <white>{material}</white></gray>"
selectTooSmall: "<red>Region is too small. It cannot be 1x1x1.</red>"
selectSaved:
- "<green>AFK pool region saved.</green>"
- "<gray>Size:</gray> <white>{size}</white> blocks."
# Reset
resetDone:
- "<yellow>AFK pool region cleared.</yellow>"
- "<gray>Auto-kick rules restored.</gray>"
# Panel
panelOpen: "<yellow>Opening AFK Control panel…</yellow>"
# Multi-line kick screen (shown on kick)
kickScreen:
- "<red><bold>AFK Timeout</bold></red>"
- "<gray>You were inactive for too long.</gray>"
- "<gray>Rejoin any time!</gray>"
# Updater
updateAvailable: "<yellow>A new version is available: <white>{latest}</white> <gray>(you have {current})</gray></yellow>"
updateLinkLabel: "Click here to open the SpigotMC download page."
Compatibility
• Servers: Spigot/Paper 1.8.x → 1.21.x
• Java: Java 8 (for broad compatibility)
Support & Feedback
If you find an issue or want a feature, please open a discussion or review with details (server version, steps, console output) ❤ Sergeant Fuzzy