Polymart is now Voxel Shop! We're upgrading many features of the site, and during this open beta you will experience occasional bugs. Learn more  
AFK Control icon

AFK Control 1.0.3

Lightweight AFK detector with warnings and kicks.

AFKControl-Header.png
 
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
  1. Drop the jar in /plugins and start your server once.
  2. Edit config.yml and messages.yml to your liking.
  3. (Optional) Define an AFK Pool region: /afkcontrol select then left-click pos1 and right-click pos2.
  4. 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
Owned
Ready to download
This resource is already attached to your account. You can download the latest file any time.