AntiAFKPlus 2.9.4
release28 января 2026 г.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.
modules:
pattern-detection:
linear-movement-exclusion: true
linear-movement-threshold: 0.3
min-direction-variance: 0.15
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: 60000
Improved 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: true
linear-movement-threshold: 0.3
min-direction-variance: 0.15
activity-grace-period-ms: 60000
# Updated values
water-circle-radius: 5.0
min-samples-for-pattern: 40
confined-space-threshold: 12.0
repetitive-movement-threshold: 0.95
max-pattern-violations: 8
Bug Fixes
- False positives when running through forests, tunnels, and paths
- Incorrect kicks when exploring own bases
- Violation accumulation during normal gameplay
Compatibility
- Minecraft: 1.16 - 1.21.11
- Servers: Bukkit, Spigot, Paper, Purpur, Folia
- Java: 17+
- Breaking Changes: None
API Changes
New methods in ConfigManager:
getActivityGracePeriodMs()getLinearMovementThreshold()getMinDirectionVariance()isLinearMovementExclusionEnabled()
AntiAFKPlus 2.9.3
release31 декабря 2025 г.AntiAFKPlus v2.9.3 — AFK Player Protection System & PlaceholderAPI Fix
Release type: Feature & Bugfix Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+
What's New
🛡️ Complete AFK Player Protection System
- Full Protection: AFK players are now completely protected from external interference
- PvP Protection: Other players cannot attack or damage AFK players
- Movement Protection: Prevents forced movement from knockback, explosions, and player pushing
- Damage Immunity: Configurable protection from fall damage, fire, drowning, lava, and other environmental hazards
- Interaction Control: Optional blocking of inventory access, block interactions, and command execution while AFK
- Smart Detection: Distinguishes between player-initiated movement and forced movement (knockback, pushing)
🔕 Pattern Detection Notification Control System
- Granular Control: Configure when and to whom pattern detection messages are sent
- Silent by Default: Players no longer receive spam messages about pattern detections
- Admin Alerts: Optional notifications to staff members with specific permission
- Three Notification Types: Control messages on detection, violation, and action execution independently
- Customizable Permission: Configure which permission is required for admin notifications
- Solves Spam Issue: Addresses user reports of repetitive "[AntiAFK] Suspicious movement pattern detected" messages
🎯 Improved Pattern Detection Defaults & Configuration
- Reduced False Positives: Adjusted detection thresholds based on user feedback
- Confined space: 5.0 → 8.0 blocks (allows small builds without triggering)
- Repetitive movement: 0.8 → 0.9 similarity (90% required, fewer false positives)
- Pattern violations: 3 → 5 (more tolerant before taking action)
- Water circle radius: 3.0 → 4.0 blocks (allows small legitimate pools)
- Min samples: 20 → 30 (~2.5 minutes of data for reliable detection)
- Comprehensive Documentation: Every setting now includes:
- Recommended value ranges
- Detailed explanations of how it works
- Impact on false positives vs detection accuracy
- Eliminated Configuration Confusion: Removed duplicate
pattern-detection-settingssection - Quick Start Guide: Added helpful guide at top of config.yml with common adjustments
- Zone Management Safety: Disabled by default to prevent unsafe teleports (was enabled)
🔧 PlaceholderAPI Custom Messages Fix
- Fixed Custom Placeholders:
placeholder-status-afk,placeholder-status-active, and related placeholders now work correctly - Supports Color Codes: Custom messages with
&color codes now display properly in tab lists and other PlaceholderAPI integrations - Enhanced Status Detection: Distinguishes between Manual AFK (
/afkcommand) and Auto AFK (automatic detection)
Configuration
Player Protection Settings
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
Pattern Detection Notification Settings
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.
Custom PlaceholderAPI Messages
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."
Use Cases
🎯 Recommended Settings for Different Server Types
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
Compatibility
- Minecraft: 1.16 – 1.21.10
- Platforms: Bukkit, Spigot, Paper, Purpur, Folia (fully compatible)
- Java: 17+
- PlaceholderAPI: Enhanced support with custom messages
- Fully Backward Compatible: Existing configurations continue to work
Installation & Upgrade
New Installations
- Download
AntiAFKPlus v2.9.3 - Place in
/pluginsfolder - Restart server
- Configure protection settings in
config.yml - Customize messages in
messages.yml
Upgrading from Previous Versions
From v2.9.2 or earlier:
- Replace JAR file with v2.9.3
- Manual Config Update Required: Add the new
player-protectionsection to yourconfig.yml(see configuration above) - Manual Messages Update Required: Add the new protection messages to your
messages.yml(see configuration above) - Restart server
- Verify protection is working with
/afkplus status
⚠️ Important: This version requires manual configuration updates. The plugin will work without them, but protection features will be disabled.
Fixed Issues
PlaceholderAPI Problems
- ✅ Fixed: Custom
placeholder-status-afk: "&7[AFK]"messages now work correctly - ✅ Fixed: Color codes in placeholder messages are properly applied
- ✅ Fixed: Tab list and other PlaceholderAPI integrations show custom messages instead of hardcoded "AFK/ACTIVE"
AFK Player Vulnerability
- ✅ Fixed: AFK players can no longer be easily removed from AFK state by other players
- ✅ Fixed: Prevents griefing through forced movement (pushing, knockback)
- ✅ Fixed: Configurable protection from environmental damage
- ✅ Fixed: PvP protection prevents combat abuse
Pattern Detection Spam Messages
- ✅ Fixed: Players no longer receive repetitive "[AntiAFK] Suspicious movement pattern detected" messages
- ✅ Fixed: Notification spam when pattern violations accumulate
- ✅ Fixed: Added granular control over when notifications are sent
- ✅ New: Admin-only alerts with customizable permission system
Pattern Detection False Positives
- ✅ Fixed: Players flagged incorrectly for "repetitive movement" during normal gameplay
- ✅ Fixed: "Confined space" detection triggering in outdoor areas and small builds
- ✅ Fixed: Overly aggressive detection thresholds causing legitimate players to be marked AFK
- ✅ Improved: All thresholds adjusted to more conservative values based on user feedback
- ✅ Improved: Detection now requires more samples (30 vs 20) for reliable pattern identification
Configuration Issues
- ✅ Fixed: Duplicate
pattern-detection-settingssection causing confusion - ✅ Fixed: Unclear which configuration section to edit (now clearly documented)
- ✅ Fixed: Missing value ranges and explanations for pattern detection settings
- ✅ Fixed: Zone management enabled by default with unsafe teleport coordinates
- ✅ New: Quick start guide at top of config.yml with common troubleshooting
- ✅ New: Comprehensive documentation for every pattern detection setting
For Server Administrators
Testing the Protection System
- Set yourself AFK with
/afk - Have another player try to hit you (should be blocked)
- Try taking fall damage (should be blocked if configured)
- Test forced movement prevention (if enabled)
- Check that protection messages appear correctly
Performance Impact
- Minimal: Uses efficient event handling with cooldown systems
- Folia Compatible: Thread-safe implementation
- Memory Efficient: Automatic cleanup on player disconnect
Troubleshooting
- Protection not working: Verify
modules.player-protection.enabled: truein config.yml - PlaceholderAPI issues: Ensure messages.yml contains the new placeholder entries
- Folia compatibility: No special configuration needed, works out of the box
Version: 2.9.3
Release Date: December 30, 2025
Compatibility: Minecraft 1.16 - 1.21.11
Java: 17+
AntiAFKPlus 2.9.2
release19 декабря 2025 г.AntiAFKPlus v2.9.2 — Dynamic Credit Group Detection & Multi-Server Documentation
Release type: Bugfix & Enhancement Compatibility: Minecraft 1.16 – 1.21.11 | Java 17+
What's Fixed
🔧 Credit System Group Detection
- Dynamic Group Reading: Plugin now automatically detects ALL groups defined in
credit-ratiosandmax-creditsconfig sections - No More Hardcoded Limitations: Previously only supported
admin,premium, andvipgroups — now supports unlimited custom groups - Custom Group Support: Works with any group name:
sponsor,premium+,vip+,owner,member, etc. - Permission Format: Uses
antiafkplus.credit.ratio.<groupname>pattern (e.g.,antiafkplus.credit.ratio.sponsor) - Priority System: Implements configurable group priority order (admin > owner > sponsor > premium+ > vip+ > premium > vip > default)
📝 Technical Improvements
- Added dynamic
ConfigurationSectionreading for group detection - Implemented intelligent caching system for group priority calculations
- Cache automatically clears on
/afkplus reloadfor instant config updates - Enhanced debug logging to show matched groups per player
- Improved error handling with fallback to default values
What's Documented
🌐 Multi-Server Credit System Setup
- Fully Documented: Complete documentation for running multiple servers (Skyblock, Survival, etc.) with separate credit systems sharing one database
- Table Prefix Feature: Use
table-prefixconfig option to separate credit tables per server - Configuration Examples: Step-by-step guides added to
config.ymlandREADME.md - New Documentation File:
MULTI_SERVER_DOCUMENTATION.mdwith complete setup guide, troubleshooting, and security best practices
How It Works:
- Each server uses a different
table-prefix(e.g.,skyblock_,survival_) - All servers connect to the same MySQL/SQLite database
- Credits are completely independent per server
- No code changes needed — configuration only!
Configuration Example
credit-system:
credit-ratios:
default: '5:1'
vip: '4:1'
premium: '3:1'
premium+: '2:1'
sponsor: '1:30' # ✅ Now works!
owner: '1:60' # ✅ Custom groups supported!
max-credits:
default: 120
vip: 180
premium: 240
sponsor: 500
owner: 1000
# Optional: Customize priority order
group-priority-order:
- owner
- admin
- sponsor
- premium+
- vip+
- premium
- vip
Multi-Server Setup Example
Skyblock Server (config.yml):
credit-system:
database:
enabled: true
table-prefix: "skyblock_" # Skyblock tables
database:
type: "MySQL"
mysql:
host: "localhost"
database: "antiafkplus"
Survival Server (config.yml):
credit-system:
database:
enabled: true
table-prefix: "survival_" # Survival tables
database:
type: "MySQL"
mysql:
host: "localhost"
database: "antiafkplus" # Same database!
Result: Independent credit systems (skyblock_credits, survival_credits) in one shared database.
Permission Setup (LuckPerms Example)
/lp group sponsor permission set antiafkplus.credit.ratio.sponsor true
/lp group premium+ permission set antiafkplus.credit.ratio.premiumplus true
Note: Plus signs (+) in group names convert to plus in permission nodes.
Compatibility
- Minecraft: 1.16 – 1.21.11
- Platforms: Bukkit, Spigot, Paper, Purpur, Folia
- Java: 17+
- Permission Plugins: LuckPerms, PermissionsEx, GroupManager, etc.
- Fully Backward Compatible: Existing configurations continue to work
Upgrade Notes
- Replace the old JAR with
AntiAFKPlus v2.9.2 - Update LuckPerms (or other permission plugin) with new group permissions:
- Format:
antiafkplus.credit.ratio.<groupname>
- Format:
- Optional: Customize group priority order in
config.yml - NEW: Check
config.ymlfor multi-servertable-prefixexamples if you run multiple servers - Reload with
/afkplus reloadto apply changes - Enable
debug: truein config to verify group detection
Existing
admin,premium, andvipgroups continue to work without changes. New custom groups require permission node setup.
Multi-Server Users: If you want to separate credit systems across multiple servers, configure different
table-prefixvalues in each server'sconfig.yml(see documentation).
For Developers
API Version: 2.9.2 (unchanged API, internal improvements only)
No breaking changes to the public API. The credit system now uses dynamic group detection internally, improving flexibility for server administrators.
Version: 2.9.2 Release Date: 19/12/2025 (Documentation Update) Compatibility: Minecraft 1.16 - 1.21.11 Java: 17+
AntiAFKPlus 2.9.1
release17 ноября 2025 г.AntiAFKPlus v2.9.1 — Pattern Detection Respecting Config
Release type: Bugfix Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+
What's Fixed
- Pattern Detection now fully honors config/module toggles; disabling the module or
enhanced-detection.pattern-detectionstops analysis and prevents flags/actions. - Detector uses all configured thresholds (interval, sample counts, repetitive/area limits, large-pool and keystroke toggles) instead of hardcoded defaults.
/afkplus reloadcleanly restarts or shuts down pattern analysis to reflect updated settings without a server restart.
Upgrade Notes
- Replace the old JAR with
AntiAFKPlus v2.9.1. - Reload with
/afkplus reloador restart. - Verify your
modules.pattern-detectionandpattern-detection-settingsvalues; they are now enforced.
Version: 2.9.1
Release Date: 15/11/2025
Compatibility: Minecraft 1.16 - 1.21.10
Java: 17+
AFK Time Windows
release14 ноября 2025 г.AntiAFKPlus v2.9 — AFK Time Windows
Release type: Feature Update Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+
What's New
🕒 AFK Time Windows
-
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
📝 Configuration Example
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"
🎮 Use Cases
- Peak Hours Protection: Disable AFK kicks during busy server hours
- Event Periods: Pause AFK enforcement during special events
- Off-Hours Flexibility: Allow extended AFK times during late night/early morning
- Regional Adaptation: Use different timezones for international servers
🔧 Technical Details
- TimeWindowService: Minute-level granularity with intelligent caching
- AFKManager Integration: Evaluates windows before warnings and final actions
- Countdown/Transfer Compatibility: Pipelines and sequences respect window controls
- Reload Support:
/afkplus reloadupdates window settings without restart
✨ New Permission
antiafkplus.window.bypass: Allows players to ignore AFK windows and receive normal enforcement- Automatically included in
antiafkplus.*wildcard - Useful for staff testing and development accounts
- Automatically included in
Compatibility
- Minecraft: 1.16 – 1.21.10
- Platforms: Bukkit, Spigot, Paper, Purpur, Folia
- Java: 17+
- Backward Compatible: All existing configurations work without changes
Upgrade Notes
- Replace the old JAR with
AntiAFKPlus v2.9 - Optional: Configure
afk-windowssection inconfig.ymlto enable time-based protection - Optional: Customize the
afk-window-activemessage inmessages.ymlfor localization - Update your dependency to
2.9if 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.
For Developers
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+

