AvAAntiCheat: Simple & Effective Minecraft Anti-Cheat
AvAAntiCheat is a lightweight, easy-to-use anti-cheat plugin designed for Minecraft Java servers running on the Bukkit/Spigot API (aka, Bukkit, Spigot,Paper,Purpur). It helps maintain a fair and clean environment for players.
It is confirmed to work with any Minecraft version 1.21.X.
Core Features / Detections
The anti-cheat actively monitors and logs several common unfair advantages:
- Movement Hacks: Flying, Wall Climbing, Speed Hacks, Spider, Phase detection
- Combat Evasion: Combat Logging
- Unfair Automation: Auto Clicking
- Chat Abuse: Chat Spamming
- Exploits: Select types of Packet Manipulation
- Mod Banner: Able to kick players from the game if they try to join with a banned mod (Banned mods can be set in the config file)
- Hardware Tester: Tests the hardware the Anti-Cheat is running on to determine if it can use complex heavy math checks or if it's only able to do lighter math checks
- Only Kicks Players: No bans are issued just incase of false positives
- Bedrock Support: Detects if you have Geyser on your server and if you do, it will use the Geyser API to better detect ping for Bedrock players
- More detections are comming soon
Note on Logging: The system employs a violation counter. Detections are logged (e.g., first violation for minor flying) even if no immediate action is taken, allowing staff to track repeat offenders.
Installation
Installing the plugin is straightforward:
1. Download the Plugin File
Choose your preferred method to obtain the .jar file:
- GitHub: Download the latest compiled version from the GitHub Releases page.
- Plugin Sites: Get the
.jarfile from Modrinth (or other supported sites). - Manual Compilation (For Developers):
- Clone the repository:
git clone https://github.com/nsharp-collab/AvAAntiCheat.git - Run the Maven command:
mvn clean package - The compiled file will be in your local
/targetdirectory.
- Clone the repository:
2. Server Setup
- Place the
AvAAntiCheat.jarfile into your server's/pluginsfolder. - Restart your server.
- Verify installation using the command
/ac status.
Usage & Commands
For a full list of commands, permissions, and configuration options, please refer to the project Wiki.
[https://github.com/nsharp-collab/AvAAntiCheat/wiki/Commands]
Troubleshooting / Known Issues
Incorrect Version Display
If the /ac status command or startup messages report an incorrect Minecraft version (e.g., "1.8.8" when the file name says "1.9"):
- Reason: This is typically a display error where the developer forgot to update the version string in the plugin's internal configuration.
- Action: Please create a GitHub Issue detailing the version mismatch. The functionality of the anti-cheat itself should remain correct for the listed supported version.
Support, Issues, and Contribution
- Reporting Issues: If you find a bug, a crash, or a bypass, please open a detailed Issue Ticket on GitHub or on Discord.
- Contributing: Guidelines for submitting feature suggestions and pull requests can be found in the separate CONTRIBUTING.md file.
- Questions/Server Help?: Join the Discord Here if you have any questions or want any help with the Anti-Cheat
Privacy & Data Collection
AvA Anti-Cheat values transparency. Please be aware of the following:
- bStats Metrics: This plugin uses bStats to collect anonymous usage data (such as server version and active Anti-Cheat mode) to help improve development.
- Local Logging: Detections and administrative actions are logged locally to
anticheat_log.txtwithin the plugin folder. This data stays on your server and is not shared with the developer. - Full Details: For a complete list of third-party dependencies and licensing information, please refer to our Notice.md.
All Versions
+ Add Version- TEST BUILD ONLY** — Unfinished and actively being tested. Use at your own risk!
- Changes & Fixes:**
- Refactored code structure: Split the monolithic main Java file into organized individual files.
- Fixed auto-updater mislabeling version numbers.
- Fixed speed check grace periods to better handle player lag.
- In a previous update a "/ac info <player> <true|false (show perms)>" command was added, which lets you put the name of a player and get some useful mod info off them.
Additions & Changes:
- Added Smart Hardware Profiling. The plugin now runs a short startup benchmark to test your CPU. Fast processors will automatically use the new strict vector math, while budget or ARM hosts will fall back to the classic lightweight checks to preserve TPS.
- Added the /ac perf <high|light|auto> command, allowing server owners to manually override the hardware profile.
- Integrated native Bedrock support via the Geyser API. Bedrock players automatically receive a slight leniency buffer on movement checks to account for packet translation jitter, reducing false positives.
- Rewrote the Speed check for high-performance mode to use Time-Delta calculations. It now measures the time elapsed between packets rather than just flat distance, preventing players from saving up lag to teleport.
- Added Vector Gravity Prediction to the Flight check. It now calculates the exact expected Y-velocity using Minecraft's internal gravity formula to catch hover and slow-fall cheats.
- Upgraded the Phase check with Vector Ray-Tracing to detect horizontal clipping (H-Clip) through walls, even if the start and end blocks are both air.
- Implemented a strict Terminal Velocity limit to instantly block vertical downward clipping (V-Clip).
- Cleaned up the Maven pom.xml dependencies to ensure the plugin stays lightweight without pulling in unnecessary Geyser UI libraries.
- Added customizable combat timer UI positions (ActionBar, BossBar, Subtitle).
- # I have been hacking away at some very cool new features, this took forever and still is only a dev build as i guaranty you there is a bug somewhere
Build THIS IS A DEV BUILD, EXPECT BUGS AND BE WARNED WHEN USING
Fix: Added grace period after elytra unequip to prevent false speed kick violations. Players landing from flight now have 7 seconds (configurable) of exemption from speed checks to allow residual velocity to dissipate naturally.
Dev: Implemented glideEndTime tracking in PlayerData to monitor when players stop gliding.
Dev: Made elytra grace period duration configurable via speed-check.grace-period-ms in config.yml.
Fixed phasing punishing normal people
Version 1.9.4
Added phasing detection so if someone phases through a wall it will rubber band them back.
Fixed some false detections and made some peformence updates
Added phasing detection so if someone phases through a wall it will rubber band them back.
Fixed some false detections and made some peformence updates
New Features & Console Improvements
Delayed Startup Sequence: The ASCII Word Art banner now appears 3 seconds after the server finishes loading. This prevents the banner from being "buried" or split up by other plugins loading in the console.
Live Changelog Integration: Added a system to fetch and display the latest changes directly from the GitHub repository.
Update Awareness: When an update is detected, OPs will now see the specific changelog in-game so they know exactly what has been fixed before restarting.
Critical Anti-Cheat Fixes
Bedrock/Geyser Ladder Fix: Resolved a major issue where Bedrock players were kicked for "Flight" while climbing. The anti-cheat now checks a larger vertical area (including the block below the feet) to account for Bedrock's different hitbox positioning on ladders and vines.
Elytra "Grace Period": Added a 3-second immunity timer that triggers the moment a player stops gliding. This prevents "Speed" and "Flight" kicks caused by high-velocity landings or momentum carry-over.
Wind Charge & Breeze Support: * Added detection for ENTITY_EXPLOSION damage.
Successfully launching yourself with a Wind Charge now grants a 4-second "Movement Immunity" to allow for high-arc jumps without being flagged for flying.
Mace & Spear Optimization: * Holding a Mace or the new Spear (v. 1.21.11) now dynamically increases the speed threshold.
Combat checks have been relaxed specifically for these items to allow for "Smash Attacks" and "Lunges" without triggering "Illegal Attack Sequence" kicks.
Combat & Gameplay Logic
Restored Combat Log Logic: Fully restored the verbose item-dropping loop. If a player quits during combat, the plugin now manually iterates through every inventory slot and armor slot to ensure items are dropped at the player's location before they are killed.
Version Compatibility: The "Spear" detection logic has been written to be "Fail-Safe." It will look for the item name/ID if it exists, but the plugin will remain fully functional and crash-free on 1.21.10 servers.
Enhanced Velocity Tracking: Improved the lastVelocityTime tracker to distinguish between player-initiated movement (cheats) and environmental knockback (Wind charges, explosions, or being hit by a mob).
Technical Changes
Added ProjectileHitEvent and EntityToggleGlideEvent listeners for more precise state tracking.
Cleaned up PlayerData hashmap handling to prevent memory leaks during long sessions.
Increased the default "Velocity Grace Period" from 2.0s to 4.0s to accommodate 1.21.11's high-mobility meta.
- 1.9.2.5*
pretty sure thats it for now :)
- Dev:** Added a lightweight version-check notification so server operators are informed when the plugin is out of date.
- Fix:** Prevented false kicks caused by Breeze charge attacks and related interactions; improved wall-climbing detection to avoid incorrect flags.
- Code:** Implemented new wall-climbing detection logic to better differentiate legitimate climbing from exploit-like behavior, reducing false positives. (so kicks people if they are climbing a non climbable source)
- Release:** This version is intended for regular use.
fixed a glitch with a player riptide trident getting kicked for flying.
thats it