NoCheatPlus

Detect and fight the exploitation of various flaws/bugs in Minecraft!
Introduction
NoCheatPlus attempts to prevent cheat clients from exploiting weaknesses of Minecraft or its protocol, making your server more safe. Checks cover a wide range of issues including flying and speeding, fighting hacks, fast block breaking and nukers, inventory hacks, chat spam and other types of malicious behaviour. For a more complete list have a look at the Features Page.
NoCheatPlus puts emphasis on configurability and allows you to customize actions that are carried out when a player fails a check (e.g. silent cancelling, executing commands, just logging). Bypass permissions allow to control what check to apply for which players, all checks can be deactivated in the configuration, also having the option for world-specific configuration files. Many checks allow more detailed configuration to adjust sensitivity.
Certainly NoCheatPlus is not a magical bullet, it uses a lot of heuristics and even guessing, so you will encounter false positives here and there and also not catch every single violation. Example video of how NoCheatPlus blocks cheats (outdated plugin version).
NoCheatPlus was introduced by NeatMonster, building on the code base of NoCheat by Evenprime.
Recommended
The following plugins might be useful to have a look at.
ProtocolLib
Allows NoCheatPlus to activate packet-level checks, covering a range of exploits that can't be monitored using ordinary means. Since roughly Minecraft 1.7.10, the fight.speed check can't work as expected anymore, due to changes in CraftBukkit. With ProtocolLib this can be repaired.
CompatNoCheatPlus (cncp)
Make plugins like mcMMO or MachinaCraft more compatbile with NoCheatPlus. Not all existing plugins are covered (yet), but you can leave a note or create an issue/ticket request for cncp. Phasing out: Citizens 2 should work with NCP out of the box, MagicSpells are working on compatibility too - rest will be integrated into NCP.
Orebfuscator
Orebfuscator fights all sorts of X-ray-hacks by altering the map information that is sent to the players, such that they have to mine blocks to actually reveal what is behind. Virtually a "must have". (Latest versions of Spigot contain features of Orebfuscator.)
Downloads and History of Changes
- Download officially approved versions on the Files page at BukkitDev.
- Development builds have been moved over to the Jenkins at md-5.net.
- Do not download from any other source, do not use jars other people send you.
- Change lists: Wiki (digest) | Jenkins (by build number) | GitHub (all commits).
- Source code
Plugin statistics are no longer reported to mcstats.org.
Support
Documentation Resources
- Consider first: Frequently asked Questions and Known Issues.
- Wiki (Configuration, Permissions, Commands)
- Developers might have a look at the page describing the API of NoCheatPlus.
Contact us
- Quick questions can be asked on this page,
or on IRC (Server: irc.spi.gt | Default-Port: 6667 | SSL-Port: 6697 | Channel: #nocheat | Web client: WebIRC) - For real issues or feature requests please create a new issue/ticket or add to an existing issue/ticket.
- To send information that is not to be seen by all, you can also reach us by PM to @asofold and @MyPictures. @IceAP (IRC: ICE) will also help or redirect the conversation. Please do not contact the user 'NoCheatPlus', it is for administrative purposes only and will likely not be answered in time. Keep to BukkitDev and GitHub for support, do not trust users on other forums or websites, also not if their nick names are the same as NCP staff on BukkitDev.
Please always state the output of the "ncp version" command to let us know versions in use (users of cncp also the "cncp" command).
-
View User Profile
-
Send Message
Posted Nov 3, 2014@AriKira
I don't seem to understand what you are trying to say.
NC+'s Regen check shouldn't allow people to heal very fast when using cheats. Can you link whatever you are talking about?
-
View User Profile
-
Send Message
Posted Nov 3, 2014I have found a form of cheating. If a player using gear, so they can heal very fast,and mixing drugs will also be very fast speed..
I have found this cheat on MCPC-1.6.4, and use NoCheatPlus 3.11.1
Bukkit1.7 and Spigot 1.7 I have no test.
-
View User Profile
-
Send Message
Posted Nov 2, 2014@kangarkooo
Every client-side thing can be bypassed though :p.
Concerning block breal speeds, just tell us if theres false positives - in fact our orientation is rather the fastest breaking time (usually the latest), we don't distinguish MC versions there.
Concerning walls + entity-interaction/fighting: The problem again is latency, as with direction + reach. We don't know which past-position of the targeted entity the attacking player was trying to hit, assume at least the target to be moving. In the usual case there is air everywhere, but with many obstacles it could get very difficult to ever hit anyone, if we don't implement more advanced methods than just raytracing. We do have all the ray-tracing code in place, so it's not the problem to add this in general. In fact we already maintain a location trace for the past so and so moves, so we will (eventually...) check direction and reach versus that trace, based on some timing- or latency-window mechanics+constraints at least for players and estimate if the target could have been hit. Once we have that implemented, i think we could also check ray-tracing for blocks. This will avoid checking for 60 past moves (...) taxing the server a lot, and we also don't just check the current location of the target, to prevent not being able to hit in situations with multiple obstacles, e.g. with lots of pilars. So this has to wait for direction+reach using the location trace (both pass = check ray-tracing).
Not sure this was a good explanation, but it's kind of planned :).
-
View User Profile
-
Send Message
Posted Nov 2, 2014@asofold
Thank you for the answer. I am aware that it is not possible to fully block it, until I would develop modded obfuscated client and server so players would be forced to use it.
When I did testing I noticed the player with killaura dynamically rotates to the victim, thus fooling the server that he is really rotating, while when the victim get closer the player immediately returns to its previous rotation.
Now with the protocol update it is more difficult to prevent false positives, like for example in 1.8 you can destroy ladder faster with axe, while in 1.7 it takes the same time like with hand.
I will look in the documentation, I did already, and there are a few parts that are marked as TODO, like for example munchhausen.
Is there any chance you will implement checking whenever attacks go through walls? I understand how difficult it is, it does not necessarily needs to be so strict, but at least that it can prevent griefing from chests with freecam.
Besides, I found it to be the only really working and anti-cheat (AntiCheat is now discontinued, although I liked its nofall block, but other features were more poor implemented than here) plugin (using over 1.5 years from now). Great job and keep making it amazing ;)
-
View User Profile
-
Send Message
Posted Nov 2, 2014@kangarkooo
We don't check if attacks go through walls.
Concerning the checks working or not working, i assume the kill-aura will send the necessary events to make the plugins believe the player is turning towards the aims and attacking, just like a skilled player might do it. Freecam mode or looking elsewhere does not mean anything there.
While they can activate kill-aura, it should be strongly limited already, otherwise they'd get huge amounts of improbable + angle + direction etc. alerts. They usually adapt to what NCP is checking for, so you can't judge by being able to activate it and have it fight al ittle bit.
The checks are configured for some balance between false psoitives and strictness on cheaters. You do have the possibility to alter some parts, like penalty timings, how fast they can turn, frequencies, i suggest you have a look at the documentation pages about fight checks and combined checks (yawrate, improbable).
Now the interesting question is, what it can achieve. Hitting through walls (nearby) unfortunately is still possible, but what else is there that skilled players couldn't do? Don't expect to fully block it, plugins spawning fake entities will probably soon get bypassed in generic ways, so you end up with confining instead of blocking again.
-
View User Profile
-
Send Message
Posted Nov 2, 2014@asofold
Hey asofold, regarding to the ender pearl issue, I could not reproduce it, and I considered it fixed after a few changed in my plugin. Thanks very much for help thought, did not know about the hidden debug option. Now, there is something not working in the fight section. I was shocked how kill aura still full works (using fresh config + enabled strict direction) (tested on WeepCraft 1.7.10) and I was not successful blocking it. What can I do in the config to make the checks more accurate? Players can cheat (I tested on localhost) with killaura and I get only a few improbable/speed alerts, I think that is more severe issue than the first one. Thanks for help.
Edit: I found out that angle check is not working, when I turn on freecam and go through the wall I can still hit player on the other side of the wall without getting any NCP warning or anything.
Using PaperSpigot #25 (enhanced spigot) but also on plain craftbukkit 1.7.10 (one of the latest builds) and got the same results.
-
View User Profile
-
Send Message
Posted Oct 31, 2014@MyPictures
@BrutalNetwork
Apart from blockinteract.... you also have blockbreak checks of course (frequence, fastbreak, reach, direction). Which checks did you disable or can post/send your config for simplicity?
-
View User Profile
-
Send Message
Posted Oct 31, 2014@septini
I believe that quality stays better if NC+ keeps being free and open, since we get more feedback and reports, because of higher costumer count (those that don't have paypal etc.).
If you feel our quality is currently lacking somewhere then feel free to report those quality issues or even push pull requests on our Github repository for quick fixing.
@BrutalNetwork
Pretty much all interaction checks except speed protect against insane nukers:
Visible - Prevents hackers from interacting with blocks they don't see
Reach - Prevents from interacting with blocks out of their reach distance
Direction - Forces to look at the block a hacker wants to interact with
Good to know: Why did you disable the interaction checks? Where there some annoying bugs/issues with one of them?
If yes feel free to open up a ticket and we will look closer at your issue.
-
View User Profile
-
Send Message
Posted Oct 31, 2014I stopped a heap of block interactions and i have had reports that nuker still works in our prison mines. Which setting stops this so i can just enable that one?
-
View User Profile
-
Send Message
Posted Oct 30, 2014You should, for better quality.
-
View User Profile
-
Send Message
Posted Oct 29, 2014@kristijan260393
Realistically i would rather enable donations or payed services if i needed it for survival mode. We still do have some basic cost for keeping hold of some domain and other, so donations or even some payed extras are not 100% off the table. Don't expect the core to become private too easily though...
-
View User Profile
-
Send Message
Posted Oct 26, 2014@kangarkooo
Good :), the logs might be lengthy, most interesting might be what happens just before logout and just after login, until/from first teleport(s).
-
View User Profile
-
Send Message
Posted Oct 26, 2014@asofold
Thank you. I will do more testing tomorrow on localhost.
-
View User Profile
-
Send Message
Posted Oct 26, 2014@kangarkooo
Do you have logs of log-out locations or are the log-in locations logged before AuthME teleports players?
If you can reproduce it locally or with very few players online, you can add "debug: true" to the moving section of the config of NCP (or even above in the checks section), which could give more hints about what happens, but it'll spam the logs for each and every player, so it's usually not an option for production servers.
-
View User Profile
-
Send Message
Posted Oct 26, 2014@asofold
I have exact login loc. set to true, and I have enabled teleporting to spawn in AuthMe. After /login players are teleported back, but I am using sessions (12hours) and in my case player logged in time, so he wasn't teleported by authme.
-
View User Profile
-
Send Message
Posted Oct 26, 2014@kangarkooo
Do you have the bukkit.yml set to use exact login locations? Do you have a plugin enforcing login locations related to last logout (not suggesting to have one in general though)?
-
View User Profile
-
Send Message
Posted Oct 26, 2014@asofold
The issue is related when I cancel PlayerTeleportEvent, but I did some testing at it happens very rarely (that the event is not cancelled and player is teleported), and also rarely the player is kicked by NCP for flying and when he logs backs to game he appears to be on the roof or outside the wall (if possible)
-
View User Profile
-
Send Message
Posted Oct 26, 2014@kangarkooo
I don't know - are the issues with NCP + cancelling ender-pearl teleport or in general? There could be something like the "inexact spawn position", but i can't tell by now.
@UnwrittenPaper
Please cut that part and use a paste, e.g. http://dev.bukkit.org/paste/ with language set to "text only", for better readability, thanks :).
Could it be you were using a plugin-manager plugin to reload NCP? Some are incompatible and in general it's dangerous ...
Otherwise: Can you post the full output of the "ncp version" command too (and /cncp if available)? What permissions plugin are you using?
-
View User Profile
-
Send Message
Posted Oct 26, 2014Hey,
I am having occasional issue when I cancel ender pearl teleport, sometimes the player is kicked for flying and appears on the roof (when possible) of a building - or outside the wall. Can this be further prevented in my plugin or could something be done in NCP? Thanks, appreciate it ;)
Edit: Using NCP #745, and Spigot 1.8 protocol update 01.10.2014.
-
View User Profile
-
Send Message
Posted Oct 25, 2014@AlterEgo1337
What do you mean by "have more fly hackers"?
What does "updated" mean?
@Theepwner
Thanks for the reference, hope we can test/reproduce.