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 Dec 6, 2015@asofold
See the following screenshot. Water is flowing right to left:
http://www.bobcat00.com/afk_puddle.png
-
View User Profile
-
Send Message
Posted Dec 6, 2015@MarkElf2204
Let's separate things here, build 813 is very old and has a totally different y-axis handling for moving checks than build 883.
Concerning passable (can't tell what you have changed):
@Bobcat00
What kind of setup is that specifically? Like water with a fence pole instead of a slab ?
-
View User Profile
-
Send Message
Posted Dec 5, 2015I've also noticed Bobcat's issue exist in build 813, so it's a consistent false positive. The issue I've been running into is players getting off boats/horses and they end up inside of a block rather than outside/on top of the block. There is a decent chance that this is related to modifiying the passable string, which I have done.
-
View User Profile
-
Send Message
Posted Dec 5, 2015@asofold
I got a complaint that someone was getting kicked for flying while in an AFK pool (the type with a fence post where you jump up and down) with build 883. He had trouble getting out because he kept getting kicked. I don't think this happened with 853. Are there any changes that would cause this?
-
View User Profile
-
Send Message
Posted Dec 5, 2015@asofold
I did some ping tests with the player generating the false positives. Ping time is up to 750 msec with packet loss of 13%. I'm surprised he can play at all! So it's probably not worthwhile trying to figure out what's causing the false positives.
-
View User Profile
-
Send Message
Posted Dec 2, 2015@File14
Not 100% sure what you mean, but i assume it's the temporary login denial thing, likely related to the chat check actions. In that case you can use "/ncp allowlogin PLAYERNAME" OR to allow all "/ncp allowlogin *". You can also remove the command actions from the configuration, or alter them to something else. The actions in the actions lists are "cmd:kickchat1", "cmd:kickchat5", "cmd:tempkick1" and "cmd:tempkick5", not all might be used. The commands are specified in the strings section under the keys kickchat1, kickchat5, tempkick1 and tempkick5.
If , for some reason one of the checks is denying login actively, /ncp info PLAYERNAME might reveal if it is the CHAT_RELOG check or the CHAT_LOGINS check.
@marubal21
Thank you for reporting the issue!
@Bobcat00
A cheat client is thinkable, like a cheap version of preventing to fall (unlikely, because 5 seconds are a lot) or it can be some sort of speeding/stepping or some other cheat that uses moving patterns to optimize something differnt.
Yet we do have false positives to iron out, and passable also may just alert for players trying to fall into the blocks during rendering after login/teleport. So perhaps the client has teleported/logged in there and doesn't render too fast, or it is a chat-only client with a simplistic implementation with always falling (...), for such one would need to examine different kinds of logs about that player. Another thing could be, if a player is testing getting through a button-driven door (legit or not), with the server being configured to use passable for doors as well (thinking of that... testing piston-doors with button-activation and latency is also "thinkbable").
Getting a lot of text for stuff that might or might not be the case - some of those things we will possibly be able to detect and hint at.
Maybe we should add some smart framework thing, so we can queue some interesting things and log a little more detail triggered by some detection, where NCP might detect something that could also be false positives for some cases. Activating on-the-fly debugging using such triggers could also be interesting, though that would be quite a heavy thing.
-
View User Profile
-
Send Message
Posted Dec 2, 2015How do I disabled so NoCheatPlus won't temporarily block a user to join the server?
Please help, I need help fast!
-
View User Profile
-
Send Message
Posted Nov 29, 2015@asofold
Yay, all is well in the world again... thanks for the quick help.
-
View User Profile
-
Send Message
Posted Nov 29, 2015@asofold
No, it was the middle of a regular staircase. The log shows 22 consecutive passable violations at the exact same location in 15 minutes. Some violations were only 5 seconds apart.
EDIT: I can't rule out the possibility the kid had some kind of hacked client that would trigger a violation every 5 seconds when standing still.
-
View User Profile
-
Send Message
Posted Nov 29, 2015@Bobcat00
Likely a false positive. Probably there is no advantage to go through the floor there. Could also be the chunks not actually being loaded, with a long staircase - not sure that's possible with 500 ms ping, i'd assume it's not possible without recent teleportation or extreme speeds.
Did you check the exact location? Was it on a corner-type-of-staircase?
-
View User Profile
-
Send Message
Posted Nov 29, 2015@asofold
The passable with delta y=0.10 on the staircase was definitely not caused by logging in. I don't trust the player at all. But I was able to confirm that they're on a slow and/or laggy connection with ping times of 500 to 660 msec. (Ping time from my server in New Jersey to Toronto is 36 msec, then it's another 600 msec to Ottawa, which is only 400 km away.)
-
View User Profile
-
Send Message
Posted Nov 29, 2015@marubal21
I was suspecting that :). We could not find anything with fences (Blocks changing dynamically will have the potential to pose trouble, e.g. with plugins altering things or pistons, but that is another topic).
-
View User Profile
-
Send Message
Posted Nov 29, 2015@asofold
I'll check out 886, as for fences i think it was a matter of bad placement when i was trying to reproduce the scenario a player described, i had the fences running next to the end portal frame blocks.
-
View User Profile
-
Send Message
Posted Nov 29, 2015@Bobcat00
Passable with 0.1 blocks downwards could be login/join (client rendering stuff).
Stuck inside blocks is a ticket. Considering to re-add a workaround, for which i am not entirely sure why it had been removed in the first place (allowing to be on ground inside walls means allowing spider basically, but the workaround was a slightly different case with the center of the player inside the block).
Other cases may or may not be false positives (have they been observed to be false positives or are the players 100% trusted?). Some speed cheats will just stay under the radar as much as possible, some other cheats might also lead to collateral alerts with other checks. If your server is big or the regarded time is long, there certainly will be random amounts of false positive entries in the logs. It's another question, if there are special (plugin-based) effects or items with attributes involved, because there are a range of cases with the transition between switching states will lead to false positives.
Plans are to allow skipping cascading violations, setting back silently and only notify on long repetition of violations (sf + passable), but that is not related to occasional false positives. Another thing is reworking the entire horizontal moving model, but that is a massive change and will need time to stabilize, similar to all builds after 853 representing the new y-axis handling, a fundamental change, for which we will still be finding edge cases for a while.
-
View User Profile
-
Send Message
Posted Nov 29, 2015@asofold
I'm trying to look through the logs and checking the locations on the map. I see passable violations for a distance of 0.10 blocks in the Y axis while on a staircase. I see survivalfly violations that appear to happen while walking along the ground, navigating a hillside, or being inside a block. It hard to tell exactly.
This has been going on a long time. It happened with 853. I was hoping 883 would fix them.
-
View User Profile
-
Send Message
Posted Nov 29, 2015@Bobcat00
Can't judge without details.
Guessing on survivalfly:
Guessing on passable:
-
View User Profile
-
Send Message
Posted Nov 29, 2015I'm still getting lots of Passable and SurvivalFly violations with 883. One player in particular has always been getting a lot of them. I don't know if he has a hacked client or if it's his slow/laggy Internet connection.
-
View User Profile
-
Send Message
Posted Nov 29, 2015@MyPictures
It's been a bug all the way, for some part survivalfly with recent changes triggers something, but also passable. Possible there have been fixes in passable leading to this, but it's fixed in 886 anyway.
@marubal21
The portal frames should be fixed now, so you could remove the yonground setting (it wouldn't necessarily hurt to keep it, it allows players to avoid cactus damage, but it might also help with some edge cases, the default value is below 0.02).
Could you elaborate on fences?
-
View User Profile
-
Send Message
Posted Nov 29, 2015@asofold
I remember we had a workaround for portal frames once, the new updates on SurvivalFly must have caused this.
-
View User Profile
-
Send Message
Posted Nov 28, 2015@asofold
Thanks for the quick reply. 👍