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
Smart and configurable AFK management for your server!
AntiAFKPlus v2.9.4
Release Date: January 2026
Summary
This version drastically reduces false positives in pattern detection. Players will no longer be kicked for running in a straight line (forests, tunnels, paths) or moving normally around their bases.
New Features
Linear Movement Exclusion
Players running in a straight line will no longer be flagged as AFK.
Activity Grace Period
Players who have been recently active (commands, jumping, looking around) get a grace period where pattern detection is temporarily suspended.
modules: pattern-detection: activity-grace-period-ms: 60000Improved Defaults
Setting Previous New
water-circle-radius 4.0 5.0
min-samples-for-pattern 30 40
confined-space-threshold 8.0 12.0
repetitive-movement-threshold 0.9 0.95
max-pattern-violations 5 8
Upgrade Guide
Option 1: Regenerate config (Recommended)
Delete your config.yml and restart the server. A new one with all v2.9.4 defaults will be generated.
Option 2: Manual Update
Add this to your modules.pattern-detection section:
New in v2.9.4
linear-movement-exclusion: truelinear-movement-threshold: 0.3min-direction-variance: 0.15activity-grace-period-ms: 60000# Updated valueswater-circle-radius: 5.0min-samples-for-pattern: 40confined-space-threshold: 12.0repetitive-movement-threshold: 0.95max-pattern-violations: 8Bug Fixes
Compatibility
API Changes
New methods in ConfigManager:
Release type: Feature & Bugfix Compatibility: Minecraft 1.16 – 1.21.11 | Java 17+
pattern-detection-settings sectionplaceholder-status-afk, placeholder-status-active, and related placeholders now work correctly& color codes now display properly in tab lists and other PlaceholderAPI integrations/afk command) and Auto AFK (automatic detection)Add to your config.yml:
modules:
player-protection:
enabled: true # Enable the protection system
player-protection:
# Movement Protection
prevent-movement-while-afk: false # Set to true to prevent forced movement
movement-restriction-message: true
# Damage Protection
invulnerability-enabled: true
invulnerability-delay-ms: 5000
damage-types-blocked:
- "FALL"
- "DROWNING"
- "FIRE"
- "LAVA"
prevent-pvp-invulnerability: true # Prevents PvP against AFK players
# Interaction Control
block-inventory-access: true
block-command-execution: false
command-whitelist:
- "/afk"
- "/help"
- "/spawn"
prevent-block-interaction: true
Add to your config.yml:
modules:
pattern-detection:
enabled: true
# ... other pattern detection settings ...
# v2.9.3 NEW: Notification control system
notifications:
notify-player-on-detection: false # Silent by default
notify-player-on-violation: false # No spam on violations
notify-player-on-action: false # No message when action executed
send-to-admins: true # Admins receive alerts
admin-notification-permission: "antiafkplus.notify.patterns"
New Permission: antiafkplus.notify.patterns
Grant this permission to staff members who should receive pattern detection alerts.
Add to your messages.yml:
messages:
# PlaceholderAPI status messages (supports color codes)
placeholder-status-afk: "AFK"
placeholder-status-active: "ACTIVE"
placeholder-status-manual-afk: "MANUAL AFK"
placeholder-status-auto-afk: "AUTO AFK"
# Protection system messages
protection-invulnerable: "&a[AntiAFK] You are now invulnerable while AFK."
protection-vulnerable: "&c[AntiAFK] You are no longer invulnerable."
protection-movement-blocked: "&e[AntiAFK] Movement blocked while AFK."
protection-pvp-blocked: "&c[AntiAFK] You cannot attack AFK players."
protection-pvp-protected: "&a[AntiAFK] You are protected from PvP while AFK."
protection-inventory-blocked: "&e[AntiAFK] Inventory access blocked while AFK."
protection-interaction-blocked: "&e[AntiAFK] Block interaction blocked while AFK."
protection-command-blocked: "&e[AntiAFK] Command execution blocked while AFK. Use /afk to return."
PvP Servers:
player-protection:
prevent-movement-while-afk: true # Prevent combat advantage abuse
prevent-pvp-invulnerability: true # Full PvP protection
invulnerability-enabled: true # Environmental protection
Survival/SMP Servers:
player-protection:
prevent-movement-while-afk: false # Allow natural movement
prevent-pvp-invulnerability: true # Prevent griefing
invulnerability-enabled: true # Protect from mobs/environment
Creative/Build Servers:
player-protection:
prevent-movement-while-afk: false
prevent-pvp-invulnerability: false # PvP usually disabled anyway
block-inventory-access: false # Allow building while AFK
prevent-block-interaction: false
AntiAFKPlus v2.9.3/plugins folderconfig.ymlmessages.ymlFrom v2.9.2 or earlier:
player-protection section to your config.yml (see configuration above)messages.yml (see configuration above)/afkplus status⚠️ Important: This version requires manual configuration updates. The plugin will work without them, but protection features will be disabled.
placeholder-status-afk: "&7[AFK]" messages now work correctlypattern-detection-settings section causing confusion/afkmodules.player-protection.enabled: true in config.ymlVersion: 2.9.3
Release Date: December 30, 2025
Compatibility: Minecraft 1.16 - 1.21.11
Java: 17+
credit-system:[code=YAML]credit-system:
Release type: Bugfix Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+
enhanced-detection.pattern-detection stops analysis and prevents flags/actions./afkplus reload cleanly restarts or shuts down pattern analysis to reflect updated settings without a server restart.AntiAFKPlus v2.9.1./afkplus reload or restart.modules.pattern-detection and pattern-detection-settings values; they are now enforced.Version: 2.9.1
Release Date: 15/11/2025
Compatibility: Minecraft 1.16 - 1.21.10
Java: 17+
Release type: Feature Update Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+
Configurable Time Ranges: Define daily hour ranges where AFK actions are paused or modified
Multiple Behaviors: Choose how the plugin handles AFK detection during configured windows:
SKIP_ACTIONS: Suppress all warnings, countdowns, and kicksMESSAGE_ONLY: Suppress actions and send informational messageEXTEND_THRESHOLD: Delay final action by configurable secondsDEFAULT: Normal AFK enforcement (used outside windows)Timezone Support: Use server timezone or specify any IANA timezone ID (e.g., America/New_York, Europe/London)
Wrap-Around Ranges: Support for overnight ranges (e.g., 22:00-02:00)
Bypass Permission: Staff can ignore windows with antiafkplus.window.bypass
afk-windows:
enabled: true
timezone: "SERVER" # or explicit IANA ID like "America/New_York"
ranges:
- "08:00-12:00"
- "20:00-23:00"
behavior-inside-window: "SKIP_ACTIONS"
behavior-outside-window: "DEFAULT"
extend-seconds: 900 # used when behavior is EXTEND_THRESHOLD
bypass-permission: "antiafkplus.window.bypass"
/afkplus reload updates window settings without restartantiafkplus.window.bypass: Allows players to ignore AFK windows and receive normal enforcementantiafkplus.* wildcardAntiAFKPlus v2.9afk-windows section in config.yml to enable time-based protectionafk-window-active message in messages.yml for localization2.9 if using the API:<dependency>
<groupId>com.github.koyere</groupId>
<artifactId>AntiAFKPlus</artifactId>
<version>2.9</version>
<scope>provided</scope>
</dependency>
No configuration changes are required. The plugin works with your existing setup. AFK windows are disabled by default.
API Version: 2.9 (unchanged from 2.8, no breaking changes)
The time window system is internal and transparent to the API. Developers using the API will benefit from the improved flexibility without code changes.
Version: 2.9 Release Date: 14/11/2025 Compatibility: Minecraft 1.16 - 1.21.10 Java: 17+
ServerStateUtil and wrapped every repeating task scheduled through PlatformScheduler so they no longer spin while Paper/Folia is paused or running in auto-pause mode. This eliminates the repeated CPU spikes reported when the server was suspended.These fixes are fully backwards compatible with the v2.8 API—only internal scheduling and AFK state transitions were touched.
Release Date: 2025-10-20 Type: Bugfix Release Compatibility: Paper 1.21.8, Spigot, Folia, Purpur (MC 1.16-1.21.8)
Issue: Pattern detection events were being fired asynchronously, causing IllegalStateException on Paper 1.21.8 and preventing external API listeners from receiving events.
Fixed:
player.getLocation() now called in main thread)Impact:
api.registerPatternDetectionListener() now receive events correctlyFiles Changed:
PatternDetector.java - Complete threading model refactorrunTaskForEntity for player-specific operationsFully compatible with v2.8 API - No breaking changes for developers.
Developers can now safely use:
AntiAFKPlusAPI api = AntiAFKPlusAPI.getInstance();
api.registerPatternDetectionListener(event -> {
// This now works correctly on Paper 1.21.8+
System.out.println("Pattern detected: " + event.getPattern().getType());
});
Maven:
<dependency>
<groupId>com.github.koyere</groupId>
<artifactId>AntiAFKPlus</artifactId>
<version>2.8.1</version>
<scope>provided</scope>
</dependency>
Gradle:
compileOnly 'com.github.koyere:AntiAFKPlus:2.8.1'
None reported in this release.
Release type: Feature & API Upgrade Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+
getActivityInfo, getActivityStatistics, getAFKStatistics, getPlayerStatistics, and getAFKHistory consume the internal tracking system (no more placeholders).registerWarningListener, registerPatternDetectionListener) can modify messages or cancel actions before the plugin kicks/teleports players.isAFKAllowedAt, getAFKZoneAt) resolve zone-management settings and WorldGuard regions on the fly.setAFKDetectionEnabled, persisting the change to config.yml.2.8, ready for your integrations.AntiAFKPlus v2.8.2.8 (Maven/Gradle snippet in the README).No configuration changes are required. Everything works with your existing
config.yml/messages.yml.
AntiAFKPlus v2.7 — Critical Bug Fixes
Release type: Bug Fix Release Compatibility: Minecraft 1.16 – 1.21.9+ | Java 17+
What's Fixed
Credit System Teleportation (CRITICAL FIX)
Problem: AFK zone teleportation worked only 1-2 times, then stopped working. Players would see AFK warnings but never get teleported.
Solution: Fixed credit system logic to properly teleport players when credits are exhausted.
What this means for you:
Disabled Worlds Cleanup (CRITICAL FIX)
Problem: Players still received AFK warnings in disabled worlds, even when those worlds were added to disabled-worlds configuration.
Solution: Plugin now completely clears AFK state when players enter disabled worlds.
What this means for you:
Pattern Detection Errors (TECHNICAL FIX)
Problem: Server logs showed ConcurrentModificationException errors during pattern analysis.
Solution: Implemented thread-safe pattern detection across all detection methods.
What this means for you:
⚙️ Credit System Isolation (ENHANCEMENT)
Problem: Credit system could potentially interfere with standard AFK detection even when disabled.
Solution: Complete isolation of credit system when disabled in configuration.
What this means for you:
Configuration Examples
Fix #1: Enable AFK Zone Teleportation with Credits
modules:
credit-system:
enabled: true
credit-system:
enabled: true
afk-zone:
enabled: true
world: "world"
location: "0,100,0"
Fix #2: Disable AFK Detection in Specific Worlds
disabled-worlds:
- "luna-afk-1"
- "creative-world"
- "lobby"Upgrade Instructions
No configuration changes required - all fixes are automatic!
For Server Owners
Critical Fixes:
Performance:
Compatibility:
Need Help?
Version: 2.7 Release Date: October 12, 2025 Type: Critical Bug Fix Release
What’s New
Server Transfer (Bungee/Velocity)
Countdown & Titles/Sounds
Scripted Action Pipeline
Robustness & Fallbacks
How It Works (Action Order)
If the player becomes active mid-flow, any countdown/pipeline is cancelled.
Configuration
Global settings:
server-transfer:
enabled: true
target-server: "lobby"
proxy-channel: "auto" # auto | bungeecord | namespaced
# Fallbacks
fallback-action: "KICK" # KICK | TELEPORT | NONE
fallback-teleport-location: "world,0,100,0"
# Retry policy
retry-attempts: 0
retry-delay-ticks: 10
# Countdown
countdown:
enabled: false
seconds: 10
title: "&cYou are AFK"
subtitle: "&eMoving in {seconds}s"
sound:
enabled: true
name: "ENTITY_EXPERIENCE_ORB_PICKUP"
volume: 1.0
pitch: 1.0
# Scripted pipeline
pipeline:
enabled: false
actions:
- "TITLE: &cYou are AFK"
- "SUBTITLE: &eMoving in {seconds}s"
- "SOUND: ENTITY_EXPERIENCE_ORB_PICKUP,1.0,1.0"
- "WAIT: 1s"
- "MESSAGE: &7Transferring..."
- "TRANSFER: lobby"
Zone-based transfer example:
zone-management:
enabled: true
zones:
spawn:
kick-action: "TRANSFER"
transfer-server: "lobby"
Messages
Add or customize in messages.yml:
messages:
server-transfer:
transferring: "&7[AntiAFK+] &aTransferring you to &f{server}&a..."
unavailable: "&7[AntiAFK+] &cServer transfer unavailable."
failed: "&7[AntiAFK+] &cCould not transfer you."
Permissions & Commands
No new commands or permissions in v2.6. The feature is fully configurable via config.yml.
Compatibility & Notes
Migration
Testing Checklist
AntiAFKPlus v2.5 — Release Notes
AFK Credit System - Earn Time to Be Away
New Feature Overview
Revolutionary AFK Credit System: Players can now earn AFK time by being active! For every X minutes of active gameplay, players earn Y minutes of AFK allowance before being teleported to a designated AFK zone.
What’s New
1. AFK Credit Earning System
2. Credit-Based AFK Protection
AFK Credit System
WorldGuard Integration
AFK Zone Protection
SQL History (Optional)
New Placeholder
How It Works
Configuration (added)
modules: credit-system: enabled: falsecredit-system: enabled: false credit-ratios: default: "5:1" vip: "4:1" premium: "3:1" admin: "2:1" max-credits: default: 120 vip: 180 premium: 240 admin: 480 earning-requirements: minimum-session-minutes: 5 activity-threshold: 0.3 afk-zone: enabled: true world: "world" location: "0,100,0" notifications: credit-earned: true credit-consumed: true credit-exhausted: true return-command: enabled: true cooldown-seconds: 10
Messages (added)
messages: credit-system: earned: "&a+ &f{minutes}m &7AFK credits earned! &8(&f{total}m &7total)" consuming-start: "&eUsing AFK credits to delay action..." consumed: "&c- &f{minutes}m &7AFK credits used &8(&f{remaining}m &7left)" exhausted: "&c❌ &7AFK credits exhausted. You will be moved." zone-teleport: "&7[AntiAFK+] &aTeleported to AFK zone." errors: invalid-location: "&7[AntiAFK+] &cInvalid AFK zone location configured."Permissions (declared)
Execution Flow
Compatibility & Performance
Credit System Logic Flow
1. Credit Earning Process:
Player Active (5 minutes) → Activity Validation → Credit Calculation → Credit Award
↓
Activity Score Check → Pattern Detection → Anti-Abuse Validation → Credit Storage
2. AFK Detection with Credits:
Player Goes AFK → Check Credit Balance → Has Credits?
↓
Yes: Consume Credits → Continue Monitoring
↓
No: Save Location → Teleport to AFK Zone → Enable Return Command
3. Return Process:
Player Uses /afkback → Validate in AFK Zone → Check Original Location Safety
↓
Safe: Teleport Back → Clear AFK Status → Success Message
↓
Unsafe: Teleport to Spawn → Warning Message
✅ Benefits and Features
Player Benefits:
Server Owner Benefits:
Technical Benefits:
Integration Points
Existing System Integration:
Testing Scenarios
Core Functionality Tests:
Edge Case Testing:
Compatibility
Migration and Upgrade
Automatic Migration:
Manual Configuration:
Version: 2.5
Release Date: 11/09/2025
Compatibility: Minecraft 1.16 - 1.21.8+
Java: 17+
AntiAFKPlus v2.4.2 Changelog
Complete Folia 1.21.8 Compatibility
Problem Resolved
Issue: The plugin failed to initialize on Folia 1.21.8 with UnsupportedOperationException (due to BukkitScheduler usage) and reflection errors in runAtFixedRate.
Root Cause: PlatformScheduler was using incorrect method signatures for Folia's GlobalRegionScheduler API, causing reflection failures during task scheduling.
Technical Solution Implemented
Correct Folia Method Signatures
️ Stronger Fallback
⚡ Additional API Fixes
What’s Fixed
Compatibility
Version: 2.4.2
Release Date: 2025-09-09
Compatibility: Minecraft 1.16 - 1.21.8
Java: 17+
Upgrade Instructions
Issue: Players were bypassing AFK detection by creating large AFK pools (20x10+ blocks) that circumvented existing detection systems.
Root Cause:
1. Keystroke Timeout Detection
2. Large AFK Pool Pattern Recognition
3. Enhanced Movement Analysis
Files Modified:
MovementListener.java: Added keystroke detection and movement analysisPatternDetector.java: Implemented large pool detection algorithmsconfig.yml: Added configuration options for new detection methodsNew Configuration Options:
pattern-detection-settings:
large-pool-threshold: 25.0 # Maximum area for large AFK pools
keystroke-timeout-ms: 180000 # 3 minutes without manual input
automatic-movement-velocity-threshold: 0.15 # Water current detection
Large AFK Pool Detection Criteria:
Only triggers AFK when ALL criteria are met, ensuring legitimate gameplay is not affected.
Version: 2.4
Release Date: 2025-08-07
Compatibility: Minecraft 1.16 - 1.21.8 Java: 17+
Bug Fix Release - Essential Improvements
/afkplus reload command - Now properly reloads all configuration files and settingsAntiAFKPlus v2.0
Major Release - Complete Plugin Redesign
What's New
️ Modular Architecture
Multi-Platform Support
Bedrock Edition Support
⚡ Performance Improvements
Zero-Lag Operation
Real-Time Monitoring
Advanced Detection Features
Pattern Recognition
Behavioral Analysis
Enhanced Configuration
⚙️ Simplified Setup
️ Advanced Options
Integrations & API
New Integrations
Professional API
️ Player Protection Features
AFK Player Safety
Reward System
Visual & UI Improvements
✨ Enhanced Effects
Mobile-Friendly Interface
Quality of Life Improvements
Better Commands
Enhanced Analytics
Bug Fixes & Stability
️ Major Fixes
Security Improvements
Migration & Compatibility
Automatic Migration
✅ Backward Compatibility
Installation Notes
Installation Steps:
Minimum Requirements:
Links & Support
Download AntiAFKPlus v2.0 now and experience the most advanced AFK management system for Minecraft!