- Native Minecraft Version:
- Legacy (< 1.13)
- Tested Minecraft Versions:
THIS IS NOT AN ANTI-CHEAT ON ITS OWN
We are getting a lot of negative feedback about the fact that our software is not a good anti-cheat due to detection rates and manual checks being a requirement. The fact is, this is not an anti-cheat on its own. Normal anti-cheats detect 95% of the cheaters, which is completely what most servers want. Our software attempts to flag the leftover 5% using deep learning models that analyze the combats thoroughly. The problem is that these models require lots of computational power, which makes manual requesting a must. You can let only staff use the check command, or also allow your players / donators to use it. CombatAnalyzer should be an expansion to your current anti-cheat setup, but at no means a replacement.
Please read before making any posts on accuracy and detection rates. There was an issue that when a player was kicked, the data about the combat was not sent to us. This meant that all players that were kicked by AC's running on the server, never had their data sent to us. This obviously has strong implications on detection rates, as we currently do not have data from players that were obviously cheating. We are working on this, and will post an update once this is resolved.
Important: Even though this plugin is a free "GNU General Public V3 License" licensed plugin, this plugin is only a way of gathering data! Actual processing of data has to happen on an external server that accepts the CombatAnalyzer data format. Our own processing server can be found at https://combatanalyzer.scriptandhands.com/ but requires a payment as we need high-end GPU servers to do our processing. The data endpoint is configurable in the config however, so feel free to replace it with your own deep learning back-end.
Important: At current time, our CombatAnalyzer backend at https://combatanalyzer.scriptandhands.com/ only supports traditional 1.8 combat! We are still looking for servers running 1.9 to collect data from to train our 1.9 combat models. If you are a sufficiently large server, please feel free to contact us by emailing [email protected] about your server. Spigot 1.9+ servers with 1.8 combat are however supported.
Important: Both the plugin and our own back-end at https://combatanalyzer.scriptandhands.com/ are in BETA, there are absolutely no guarantees made on a problem-less deployment, even though we of course hope it is for you! Please use our issue tracker on GitHub to stay up to date on the latest issues and their status.
Looking for a state of the art automated way to analyze the combat behavior of your players? Staff teams are maybe the most important thing for any server, but the bad thing for your players is that good staff members are hard to find, and the ones you have are often busy! Being able to detect a cheating player seems like a trivial task; look at some statistics, calculate some features of a combat and filter out the ones that do not match that of non-cheating players. Every server owner knows that current day anti-cheats often do a reasonable job, but are nowhere near detecting most of the cheating players. Machine learning and especially deep learning have made a big name for themselves in the last decade. The idea here is to simply collect enough data and run analysis on this data to perform tasks like outlier detection; the task of being able to detect cheating players within a larger collection of all players.
However, most of these deep learning models require high end hardware, and do not run on anything less than a high-end GPU (graphical processing unit, something most dedicated Minecraft hosting servers probably never have). The problem, processing all the combat data of all players (the way traditional anti-cheats do) is impossible. Our complex deep learning models take up to a whole second to process a single player, while traditional anti-cheats are theoretically capable of processing thousands of players per second. There obviously is a weigh-off here, use state of the art detection rates of a complex deep learning model, or choose for a faster alternative like traditional anti-cheats, but cut short on detection rates. With CombatAnalyzer, there is no need to make a choice at all. Keep your current anti-cheat in-place, and deploy CombatAnalyzer next to it.
CombatAnalyzer will simply record players in-combat and send this data to a different server for processing. We cannot simply process all data, so data is stored on this external server for a certain time until it might be needed. Whenever a normal in-game player thinks a player might be cheating, they can simply run the command /ca check [name], this will request the high-end GPU server to process the data for this player. Who and how often you allow your players to use the /ca check command is entirely up to you. You could even make it a donator-only extra. Several moments after running the command, a response will come back with the category of the player's combat. This can either be NONE (good, not cheating), LOW, MEDIUM or HIGH (the probability of cheating). In the config of CombatAnalyzer, the server owner can configure the exact actions to take depending on what the category of the analyzed player was.
The installation of CombatAnalyzer is the most important part so handle it with care! Incorrect installation will make CombatAnalyzer FAIL on your server and possibly take actions against non-cheating players or staff. Steps 6 and higher are the most important!
- Download the plugin from this page and put it in your /plugins/ folder.
- Start your server once and shutdown again to create the default config file.
- Go to /plugins/CombatAnalyzer/config.yml and change whatever you want.
- Find a back-end to send your data to, if you wish to use ours, follow the steps below.
- Go to https://combatanalyzer.scriptandhands.com/ and create an account.
- Sign in and copy the verification key from the control panel.
- Paste this key in the config file at /plugins/CombatAnalyzer/config.yml.
- Save the configuration file.
- Purchase any of the packages available in the same control panel.
- Next are the most important steps!
- Start your server.
- Give the permission combatanalyzer.staffmember to all staff members on all of your servers within the network that have CombatAnalyzer installed.
- Give permission combatanalyzer.donator to all players with paid ranks on all of your servers within the network that have CombatAnalyzer installed.
- Make sure normal players do not have the combatanalyzer.staffmember nor the combatanalyzer.donator permission. These permissions are used to determine the likeliness of cheating beforehand. For example; staff players are far less likely to cheat than donators, and even less likely than normal players!
- Start your server, do some testing, and enjoy!
Below is an example of the default CombatAnalyzer config. The first section simply describes the processing server to use. Our own models require data to be send to https://data.scriptandhands.com/ and more information about that can be found here https://combatanalyzer.scriptandhands.com/ The verification key should be provided by the processing server so that servers can identify themselves. In case of using the official CombatAnalyzer back-end, a key is provided via the configuration overview after you have created an account.
The section below describes which actions to take depending on which category a player ends up in. None means that our models were not able to find anything suspicious. The low, medium and high categories are cheating probabilities. The exact implementation of these categories depends on the processing server used. In the default config, we simply tell the player that did the request the result, and take action accordingly (nothing, kick or ban).Code (Text):
The next section of the config simply allows the messages of CombatAnalyzer to be customized.Code (Text):
- ca say %requester% The player %player% was not using combat cheats according to our models. No actions were taken against this player.
- kick %player% You were kicked by CombatAnalyzer, illegal client modifications are not allowed.
- ca say %requester% Thank you for checking %player%! According to our models, this player might indeed be cheating with risk LOW, so the player was kicked from the server.
- ban %player% 1H You were temporarily banned by CombatAnalyzer, illegal client modifications are not allowed.
- ca say %requester% Thank you for checking %player%! According to our models, this player might indeed be cheating with risk MEDIUM, so the player was banned from the server.
- ban %player% 4H You were temporarily banned by CombatAnalyzer, illegal client modifications are not allowed.
- ca say %requester% Thank you for checking %player%! According to our models, this player might indeed be cheating with risk HIGH, so the player was banned from the server.
The final section of the configuration file allows the server owner to configure permissions, each having a different timeout interval between successful requests.Code (Text):
no_permissions: Insufficient permissions, this is a donator and staff command only.
wait: Your request to analyze the combats of %player% was done, you can expect the results shortly...
insufficient: Failed to analyze player %player%, having at least %min% combats for this player in our database is required. Currently, there are only %current% combat(s) found, please try again later.
error: Something went wrong doing your request, please ask your server administrator to check the server logs.
timeout: You have to wait %seconds% second(s) until you can use this command again.
already: You already have a request running, please first wait for the result of that one.
- Spigot 1.8 or higher.
- Connection to the internet.
- At least two cores so the main thread won’t suffer from the CombatAnalyzer threads.
- Java 8 or higher.
CombatAnalyzer as you can download from this page is a free plugin and can be downloaded here under the GNU General Public License V3. However, the backend processing server that this plugin sends its data to is likely not free! In case of our own deep learning backends, we require a small per-combat fee, more info at https://combatanalyzer.scriptandhands.com Note that this plugin is licensed under GNU General Public License V3, but the backends are likely not. This data providing plugin is stand-alone and is thus NOT part of the CombatAnalyzer ScriptAndHands back-end found at https://combatanalyzer.scriptandhands.com.
If you believe to have found an actual issue, that is, a problem that needs to be solved on our side, please create an issue on our Github page at https://github.com/SanderGielisse/CombatAnalyzer-BukkitPlugin/issues with all the information. For support, please contact me via email at [email protected] and provide as much information as possible. You can also join our Discord at https://discord.gg/aQXhhKA but note that we are still working on setting up our Discord server.
Please be reasonable about reviews. Only review once you have actually tested the plugin with a working back-end. We understand that placing reviews complaining that the plugin itself is free but the back-end is not could happen, but we ask you kindly to consider our position regarding costs and development. If you want to do the back-end development of a deep learning model yourself, this is of course an open option and allows you to completely free of charge use our front-end plugin. Are you about to place a review? Thank you! Is something wrong? Please contact support first. We will not give you any support in the review section.
Find cheaters; deep neural networks to analyze player combats
What a stupid bullshit anticheat. "All these servers within this network run an anti-cheat (AC)" meaning that this anticheat doesn't actually work and it requires you to keep paying to check players, which is stupid. Also this anticheat does not work unless you run the command. It just doesn't work in general.
The whole "concept" of this plugin is fine to some extent but, after taking a look through the project, and testing it myself I am unsure if anyone should really be using this.
The amount of none-sense that is inside this plugin is unbelievable. It makes me wonder really to if the person who coded / structured this plugin even knew what he was doing both code and anticheat wise. The code is absolutely hideous and is not structured properly, especially for a project that tries to mess with machine learning and large data processing.
Check wise, the anticheat detects absolutely nothing. I tried a few open source clients and it had troubles detecting them whatsoever, but I got false banned just with me changing my aim constantly from consistent to inconsistent, which honestly was expected as the type of data that's read from the client is completely useless especially when it comes to any killauras that are coded half-way properly. Liquid bounce for instance was able to completely bypass their checks without changing almost anything in the settings from default.
To anyone who's trying to get an anticheat that's "machine learning", just don't. You can patch whatever a machine learning anticheat could patch with a hard coded anticheat since Minecraft is 95% predictable with some small exceptions (that 5%).
After finally getting this anticheat to "work", after the servers went down, it's been a horrible experience.
Someone on my server was using 6 block reach with very blatant killaura settings, and said there were no cheats detected. Literal garbage and a scam of an anticheat.
This anticheat does not work whatsoever, you also need to pay extra to use the plugin and it has no capability.
Not only this, but only working for combat leaves your server quite vulnerable.