- Native Minecraft Version:
- Legacy (< 1.13)
- Tested Minecraft Versions:
- Source Code:
Hawk does not and will not support MC versions 1.9+
This video is outdated. In the future, a new promotional video showcasing the rewritten version of Hawk will replace this video.
Sponsored by Apex Hosting
Questions, support, bug reporting, and discussion:
If you have any questions or if you stumble across something that doesn't seem right, please let me know! I encourage you to PM me, talk in the discussion thread, or join the Discord server by clicking the logo below.
What is Hawk Anti-Cheat?
Hawk is an anti-cheat plugin for Spigot servers. It attempts to verify and enforce that players' actions follow vanilla Minecraft logic. On top of that, it also attempts to detect some forms of input fabrication.
Why choose Hawk Anti-Cheat?
There are not many anti-cheat systems supporting older, yet still popular Minecraft versions (i.e. little support for MC 1.7.10). Hawk is focused on supporting these versions, which is why it is aimed to be a thorough solution to prevent cheating in Minecraft. If a bypass is found, it will become the highest priority to solve for the development of Hawk.
Hawk currently contains 29 modules which check players for suspicious combat, interaction, movement, and malicious exploitation within the protocol. Hawk's checks will only observe the players' actions and collect statistics based on the observations. No checks test for cheats by interrupting the game experience, such as spawning NPCs or applying knock-back.
By default, Hawk’s checks perform on the networking thread. This allows for precise checking without adding significant load on the main thread. In other words, when you get high traffic, Hawk won’t drop your TPS.
Asynchronous checking ability:
For users who strive for performance, Hawk is able to function on a dedicated thread, independent from the networking thread. Although this option disables the ability to prevent cheating in real time, this can be beneficial to servers with very high traffic.
Hawk fully runs without any dependencies, since it takes advantage of Netty and NMS code. Say goodbye to ProtocolLib.
Free & open-sourced:
Yes! Many anticheats running at the packet level charge over 100 USD. Hawk is free, open-source, and licensed under GPLv3. If you don’t like a check or feature, feel free to modify it or contribute to the project.
Simple, but powerful framework:
Hawk’s framework allows developers to easily implement new checks and make use of powerful utilities.
Hawk features strict movement checks to ensure players are moving correctly. It stops the exploitation of common anti-cheat bypasses such as B-Hop, Y-Port, skip phase, etc...
Hawk's combat cheat detection is spectacular. In addition to blocking most combat cheats, Hawk can detect basic forms of triggerbot and aimbot within a minute, without the use of NPCs or machine learning. Using the latest methods of cheat detection, a handful of clients can be detected for killaura within a few seconds.
Mouse Recording Functionality:
Hawk features a mouse recording function which records and graphs player mouse movement. This is a new addition to Hawk which helps users manually identify combat cheaters on their server.
From enabling or disabling to editing specific values of a check, Hawk's configuration provides the user with great freedom to modify checking behavior, messages, and the execution of punishments.
Flags from Hawk checks can be forwarded to staff members on other Spigot servers in a BungeeCord network using HawkAlertsBungee.
Hawk allows logging to a SQL database server. This can be very useful for multi-server networks that wish to track violations more efficiently.
Detected or Blocked Hacks:
- Packet sneak
- Omnidirectional sprint
- Any other cheat interacting through walls or out of sight
- Usage Speed
- High CPS
- Fast Bow
- Aimbot (to some extent)
Commands & Permissions:
- /hawk - Display menu & GUI
- /hawk kick <player> <reason> - Kick player (recommended for auto-kick)
- /hawk talerts - Toggle alerts
- /hawk mouserec <player> [duration in seconds] - Record a player's mouse movements
- /hawk reload - Reload configuration and modules
- /hawk unmute - Unmute a Hawk muted player
- /hawk unban - Unban a Hawk banned player
- hawk.admin - bypass kicks and bans
- hawk.cmd - /hawk
- hawk.cmd.* - access to all administrative commands
- hawk.cmd.<command name>- access to a specific administrative command
- hawk.alerts - Receive alerts
- hawk.bypass.<check> - Bypass specific checks
- hawk.bypass.* - Bypass all checks
- hawk.gui - Access the graphical user interface
There is currently no "API" for Hawk, although it is possible to play around with the anticheat. Unfortunately, this means that developers will be interacting with implemented code that may change through versions without notice (think NMS code). You have been warned!
Hawk has some useful features that developers can use. Start off by getting a reference to the Hawk plugin instance:
From there you will find many useful methods and modules that you can tinker with. Just look at the getter methods located near the bottom of the class. The source code to the class is located here:Code (Text):Hawk hawkPlugin = (Hawk)Bukkit.getPluginManager().getPlugin("Hawk");
It may also be useful to make use of Hawk's Bukkit events:
- Once downloaded, move the jar to your "plugins" folder in your server's root directory.
- Start or reload the server to enable Hawk Anti-Cheat.
- Modify the configuration in "plugins/Hawk/config.yml" if necessary. Restart or reload to apply changes.
- Java 8 or higher
- Craftbukkit/Spigot (or other derivatives) 1.7.10 or 1.8.8
Hawk Anti-Cheat may not be compatible with the following:
- Network modification
- Inbound packet interception and modification before Hawk's position in the channel pipeline
- Outbound packet interception and modification after Hawk's position in the channel pipeline
- Sending packets to de-synchronize the client from the server (fake entities, fake blocks, etc. These will set off false flags if the player tries to interact with them)
- Other anticheat plugins
- Any Minecraft client other than versions 1.7.X and 1.8.X
- Therefore it is strongly discouraged to use ProtocolSupport, ViaVersion, etc.
- Client game logic modification
- Modification of the client's movement or interaction with terrain or entities
- Overloaded server (rounded TPS average below 20) or client (FPS/TPS lower than 20)
- Poor server-client connection quality
Frequently Asked Questions:
Q: How do I edit the check configurations?
A: Great question! The configurations for every check can be found in the "checks.yml" file in the Hawk folder. Every check has at least a few options. An example check is Inertia, which has the minimum options for a check:
Some checks may have additional options to configure.
- Boolean "enabled" enables/disables the check.
- Integer "cancelThreshold" indicates the minimum violation level (VL) that the player must reach for the check to discard the player's actions. Set it to -1 to disable.
- Integer "flagThreshold" indicates the minimum violation level (VL) that the player must reach for the check to send alerts to staff members.
- Floating-point "vlPassMultiplier" indicates the value that is multiplied to the player's violation level (VL) every time they pass the check. This is used to reduce the player's VL when they pass the check. It should be between 0 and 1 so that the VL can decay exponentially.
- Integer "flagCooldown" indicates the minimum time interval in milliseconds that the check must wait before sending an alert about the player. This reduces flood in chat. Higher values will reduce the rate of the flags.
- String-list "punishCommands" may contain a list of commands to execute. The next question gives a brief tutorial on how to use this.
Q: How do I set up Hawk to execute commands on violations?
A: The "checks.yml" file in the Hawk folder contains the configuration for every check. Every check has a string-list called "punishCommands." Each entry in the string-list is split up into three parts separated by colons.
violation level : delay in seconds : command to run
Here's an example configuration for the flight check
You can also use placeholders such as %player% %tps% %vl% and %check%Code (Text):fly:
- "10:0:msg %player% stop hacking"
- "20:0:kick %player%"
Q: How do I set up ban/punish waves?
A: Hawk provides a function called the Punishment Scheduler. The system can be accessed using the command "/hawk punish". You can configure it in the "config.yml". Here is an example configuration:
requireAuthorization is a setting that when enabled, forces administrators to run "/hawk punish authorize <player>" before Hawk can punish the player.Code (Text):punishmentScheduler:
command: ban %player% %reason%
defaultReason: Illegal game modification
schedule: 'SUNDAY * 32'
schedule is the schedule that the system will run on. The first argument is the day of the week, the second argument is the hour of the day (0 through 23), and the third argument is the minute of the hour (0 through 59). You can enter * for any argument to specify that any value can work. In this example, the system will run every Sunday, every hour of that day, at 32 minutes of that hour.
Reporting Issues & Posting Reviews
Feel free to post a review. If you have a bug that you want to report, please PM me, post in the discussion thread, discuss on Discord, or open an issue on the GitHub. Please do not post errors in your review. Reviews containing errors are annoying and will likely be removed by a moderator.
Hawk Anticheat (MC 1.7.10 & 1.8.8) BETA 1911
A free anticheat for legacy versions of Spigot.