AntiAFKPlus Premium
Smart, configurable, and battle-tested AFK management — built for serious servers.
✦ Spigot & Paper 1.16–1.21+ ✦ Folia ✦ BungeeCord & Velocity ✦ Bedrock/Floodgate ✦
✦ Designed for Spigot ✦
AntiAFKPlus is a premium AFK management plugin that goes far beyond a simple kick timer. It detects AFK farming, autoclickers, water-circle exploits, and repetitive movement patterns — then acts on them automatically.
Built with a modular architecture, every feature is independently toggleable. You only run what you need. No bloat, no wasted resources.
Whether you run a small Survival server or a large network with BungeeCord, AntiAFKPlus has a configuration for you.
- Smart pattern detection — identifies water circles, AFK pools, confined movement loops, and repetitive paths
- Autoclick detection — flags suspiciously fast or rhythmic clicking patterns
- Configurable sensitivity — tune thresholds for water-circle radius, min samples, pattern similarity, max violations
- False positive reduction — linear movement exclusion, activity grace period, direction variance filters
- Activity scoring — weighted scoring per activity type (movement, chat, combat, interaction, crafting, etc.)
- Detection profiles — one-click presets: Conservative / Balanced / Aggressive
- Earn credits through active play — configurable ratios (e.g. 5 active minutes = 1 AFK credit)
- Spend credits to delay kicks when going AFK
- Transfer credits between players with /afkcredits transfer
- Leaderboard — /afkcredits top to see top credit holders
- Credit multiplier events — admins can run temporary 2x/3x credit events
- Credit expiry — optional decay system with configurable expiry days
- Per-rank ratios & caps — VIP, Premium, Admin all have independent limits
- Full 54-slot settings panel — configure everything without touching YAML
- Live TPS and memory stats visible in the GUI
- Module toggles — enable/disable any feature module with a single click
- Detection profile selector — switch between Conservative, Balanced, Aggressive
- Open with /afkplus gui
- Define regions where AFK is allowed, restricted, or managed differently
- Per-zone timeouts, reward multipliers, teleport actions
- Players earn credits in the AFK zone — then return with /afkback
- Region inheritance support
- Particle effects — any Bukkit particle type above AFK players
- TAB list prefix + suffix — e.g. §7[AFK] PlayerName — fully color-coded
- Display name prefix + suffix — visible in chat and above the player
- Holograms (DecentHolograms) — floating [AFK] text above players
- Invulnerability when AFK — block fall, fire, lava, and drowning damage
- Block inventory access while AFK
- PvP protection — optional PvP invulnerability for AFK players
- Movement restriction — prevent AFK players from being moved
- Command whitelist while AFK (e.g. allow /afk, /spawn)
- PlaceholderAPI — 9 built-in placeholders for TAB plugins, scoreboards, and chat formatters
- Vault — economy integration for the reward system
- DiscordSRV — AFK state change notifications sent to Discord automatically
- WorldGuard — zone-based AFK management
- BungeeCord / Velocity — transfer AFK players to another server instead of kicking
- Folia — full compatibility with Folia's regional threading model
- Floodgate / Bedrock — works seamlessly with Java and Bedrock players
- Time-based rewards — run commands at configurable AFK intervals (5 min, 15 min, etc.)
- Anti-abuse — daily reward caps, required playtime, account age, IP-based limits
- Requires active time before AFK rewards are earned
- AFK Time Windows — restrict AFK actions to specific hours of the day
- Per-world control — enable or disable AFK checks per world
- Per-permission timeouts — VIP gets 10 min, Staff gets 30 min, etc.
- Multi-warning system — warn at 60s, 30s, 10s before kick (fully configurable)
- Manual AFK toggle — players can go AFK on demand with /afk
- Broadcast toggles — control who sees AFK enter/exit messages
English · Spanish · French · German · Portuguese · Russian · Chinese · Japanese · Korean · Italian
All ~150 message keys are fully editable. Add your own language by dropping a .yml in the languages/ folder.
Use these in any TAB, chat, or scoreboard plugin that supports PlaceholderAPI:
| Placeholder | Description | Example |
| %antiafkplus_status% | AFK status (localized) | AFK / ACTIVE |
| %antiafkplus_afktime% | Seconds since last activity | 120 |
| %antiafkplus_credits% | Credit balance (minutes) | 45 |
| %antiafkplus_credits_hours% | Credit balance (hours) | 2 |
| %antiafkplus_max_credits% | Max credits for player | 120 |
| %antiafkplus_credit_ratio% | Credit earning ratio | 5:1 |
| %antiafkplus_in_afk_zone% | Whether in AFK zone | true / false |
| %antiafkplus_credits_expire_days% | Days until credits expire | 5 |
| %antiafkplus_credits_rank% | Leaderboard position | 3 |
| Command | Description | Permission |
| /afk | Toggle manual AFK mode | antiafkplus.afk |
| /afk list | List all AFK players | antiafkplus.list |
| /afk status [player] | Check a player's AFK status | antiafkplus.status.check |
| /afkplus reload | Reload configuration | antiafkplus.reload |
| /afkplus gui | Open in-game settings GUI | antiafkplus.reload |
| /afkplus status | Plugin status & analytics | antiafkplus.stats |
| /afkplus performance | Performance metrics (TPS, memory) | antiafkplus.stats |
| /afkplus event credits [mult] [min] | Start a credit multiplier event | antiafkplus.reload |
| /afkcredits | Check your credit balance | antiafkplus.credit.check |
| /afkcredits transfer [player] [min] | Send credits to another player | antiafkplus.credit.transfer |
| /afkcredits top [limit] | Credit leaderboard | antiafkplus.credit.check |
| /afkcredits give/take/set [player] [min] | Admin credit management | antiafkplus.credit.admin |
| /afkcredits reset [player] | Reset a player's credits | antiafkplus.credit.admin |
| /afkcredits history [player] [limit] | Credit transaction history | antiafkplus.credit.admin |
| /afkback | Return from AFK zone | antiafkplus.credit.return |
| Permission | Description |
| antiafkplus.bypass | Exempt player from all AFK checks |
| antiafkplus.afk | Use /afk to toggle manual AFK |
| antiafkplus.list | View the AFK player list |
| antiafkplus.status.check | Check AFK status of any player |
| antiafkplus.reload | Reload config / open GUI / run events |
| antiafkplus.stats | View plugin stats and performance |
| antiafkplus.notify.patterns | Receive pattern detection alerts |
| antiafkplus.credit.check | View own credit balance and leaderboard |
| antiafkplus.credit.transfer | Transfer credits to other players |
| antiafkplus.credit.admin | Give/take/set/reset credits for any player |
| antiafkplus.credit.return | Use /afkback to return from AFK zone |
| antiafkplus.window.bypass | Bypass AFK time window restrictions |
| antiafkplus.time.vip | 10-minute AFK timeout |
| antiafkplus.time.premium | 15-minute AFK timeout |
| antiafkplus.time.donator | 20-minute AFK timeout |
| antiafkplus.time.staff | 30-minute AFK timeout |
Code:
# Seconds before a player is considered AFK
default-afk-time: 300
# Warning times (seconds before kick)
afk-warnings:
- 60
- 30
- 10
# Per-rank timeouts (override default)
permission-times:
"antiafkplus.time.vip": 600
"antiafkplus.time.staff": 1800
"antiafkplus.time.premium": 900
"antiafkplus.time.donator": 1200
# Per-world control
enabled-worlds:
- "world"
- "world_nether"
- "world_the_end"
Code:
modules:
pattern-detection:
enabled: true
water-circle-radius: 5.0
min-samples-for-pattern: 40
repetitive-movement-threshold: 0.95
max-pattern-violations: 8
large-pool-detection: true
keystroke-timeout-seconds: 180
linear-movement-exclusion: true
activity-grace-period-seconds: 60
Code:
visual-effects:
particles:
enabled: true
type: "CLOUD"
count: 5
tab-list:
enabled: true
afk-prefix: "&7[AFK] "
afk-suffix: ""
name-tags:
enabled: false
afk-prefix: "&7[AFK] "
afk-suffix: ""
holograms:
enabled: false
provider: "DecentHolograms"
lines:
- "&c[AFK]"
- "&7{player}"
- "&eAFK for {time}"
Code:
credit-system:
enabled: true
credit-ratios:
default: "5:1" # 5 active min = 1 AFK credit
vip: "4:1"
premium: "3:1"
admin: "2:1"
max-credits:
default: 120
vip: 180
premium: 240
admin: 480
credit-decay:
enabled: false
expire-after-days: 7
AntiAFKPlus exposes a clean, thread-safe API for plugin developers. Available via JitPack.
XML:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.koyere</groupId>
<artifactId>AntiAFKPlus</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Java:
AntiAFKPlusAPI api = AntiAFKPlusAPI.getInstance();
// Check AFK status
boolean isAfk = api.isAFK(player);
AFKStatus status = api.getAFKStatus(player); // ACTIVE, AFK_IDLE, AFK_WARNED, AFK_VOLUNTARY
// Activity info
Duration inactive = api.getTimeSinceLastActivity(player);
PlayerActivityInfo info = api.getActivityInfo(player);
// Pattern detection
if (api.hasSuspiciousPatterns(player)) {
List<DetectedPattern> patterns = api.getDetectedPatterns(player);
}
// Credit system
long balance = api.getCreditBalance(player);
api.addCredits(player, 15);
api.consumeCredits(player, 5);
// Listen to events
api.registerAFKStateListener(event -> {
// fires on AFK state changes
});
api.registerPatternDetectionListener(event -> {
if (event.getPattern().getConfidence() > 0.9) {
event.getPlayer().kickPlayer("Bot detected");
}
});
All events fire synchronously on the main thread. Async methods (*Async()) available for heavy operations. Full documentation in API.md on GitHub.
- Purchase and download the latest AntiAFKPlus-3.0.jar
- Drop it into your /plugins/ folder
- Restart your server (or use /reload — restart preferred)
- Configure /plugins/AntiAFKPlus/config.yml as desired
- Use /afkplus reload to apply changes without restarting
Optional dependencies: PlaceholderAPI · WorldGuard · Vault · DiscordSRV · DecentHolograms · Floodgate
AntiAFKPlus uses bStats to collect anonymous usage statistics. You can disable it in /plugins/bStats/config.yml.
✦ Keep your server clean, fair, and professional. ✦
