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 Apr 14, 2014can some one tell me how to stop the ncp messages from showing up in my chat..
-
View User Profile
-
Send Message
Posted Apr 14, 2014@chsedv
Added in development build 679, just minimally tested by inspecting nms code and with a local server.
-
View User Profile
-
Send Message
Posted Apr 14, 2014@andrewkm
I am still following the conversation - build 677 contains a change that would let NCP fail earlier if it was causing this at all. It's not more "safe" to use than build 676 though, because it would fail during processing moves, if it happened at all (should not if there are no bugs).
@chsedv
I might not be able to test 1.7.8 much for a while, though.
@MasterMithrandir
What version of NCP ?
-
View User Profile
-
Send Message
Posted Apr 14, 2014My players are getting this message and being kicked: Block breaking out of sync!
how can I solve this?
-
View User Profile
-
Send Message
Posted Apr 13, 2014pls update to Bukkit 1.7.8.
[10:57:22] [Server thread/INFO]: [NoCheatPlus] Enabling NoCheatPlus v3.10.10-SNAPSHOT-sMD5NET-b677 [10:57:23] [Server thread/WARN]: [NoCheatPlus] Check for updates and support at BukkitDev: http://dev.bukkit.org/server-mods/nocheatplus/ [10:57:23] [Server thread/WARN]: [NoCheatPlus] Development builds (unsupported by the Bukkit Staff, at your own risk): http://ci.md-5.net/job/NoCheatPlus/changes [10:57:23] [Server thread/WARN]: [NoCheatPlus] Could not set up native access for the server-mod (git-Spigot-1406 (MC: 1.7.8)). Please check for updates and consider to request support. [10:57:23] [Server thread/WARN]: [NoCheatPlus] Bukkit-API-only access: Some features will likely not function properly, performance might suffer. [10:57:23] [Server thread/INFO]: [NoCheatPlus] McAccess set to: 1.4.6|1.4.7|1.5.x|1.6.1|1.6.2|? / Bukkit-API [10:57:23] [Server thread/INFO]: [NoCheatPlus] Added block-info for Minecraft 1.5 blocks. [10:57:23] [Server thread/INFO]: [NoCheatPlus] Added block-info for Minecraft 1.6.1 blocks. [10:57:23] [Server thread/INFO]: [NoCheatPlus] Added block-info for Minecraft 1.7.2 blocks. [10:57:23] [Server thread/INFO]: [NoCheatPlus] Inventory checks: FastConsume is available, disabled InstantEat. [10:57:24] [Server thread/INFO]: [NoCheatPlus] Version 3.10.10-SNAPSHOT-sMD5NET-b677 is enabled. [10:57:24] [Server thread/INFO]: [NoCheatPlus] Added hook: Citizens2(cncp) [2.0]
-
View User Profile
-
Send Message
Posted Apr 12, 2014Just randomly found this in console:
http://pastie.org/pastes/9075423/text?key=5mnxiw84rktxmcizpaomuq
Build 676 Spigot 1387
-
View User Profile
-
Send Message
Posted Apr 9, 2014@mcminicorp
No idea, could just be client side/delay/lag/something - the Munchhausen check is disabled, isn't it?
@ridddle
Thanks for the info!
-
View User Profile
-
Send Message
Posted Apr 8, 2014@asofold, good news. I was able to find the InvTweaks/inventory bug and it is related to Spigot build number. In my current build, which is a 1.7.2 backport fixing the negative tick bug it doesn’t work reliably while on my new test server running build #1366 (1.7.5) it works flawlessly.
Thanks for pointing me in the right direction!
-
View User Profile
-
Send Message
Posted Apr 7, 2014When someone tries to swing a fishing rod, it doesn't show the line of the rod coming out. Why not?
-
View User Profile
-
Send Message
Posted Apr 6, 2014@asofold
kk. Thank you alot for your help.
-
View User Profile
-
Send Message
Posted Apr 6, 2014@KirjoZzZ
Use the latest development build for 1.7.5, we might push a (beta) release today.
Edit: we will probably make it release next day(s), some checks on potential fixes/bugs pending, want to have those in.
-
View User Profile
-
Send Message
Posted Apr 6, 2014@MyPictures Here you go:
Version informationServergit-Spigot-1370 (MC: 1.7.5)NoCheatPlusPlugin: 3.10.9-RC-sMD5NET-b673 MCAccess: 1.4.6|1.4.7|1.5.x|1.6.1|1.6.2|? / Bukkit-API-
View User Profile
-
Send Message
Posted Apr 6, 2014@KirjoZzZ
NoCheatPlus has a command called "/ncp version" and @asofold wants you to put here what that command outputs to you (You need permissions to run this command as player or just run it in the console).
-
View User Profile
-
Send Message
Posted Apr 5, 2014@asofold
Im using Spigot 1.7.5 Not sure what you mean by Can you show the full output of the "ncp version" command?
-
View User Profile
-
Send Message
Posted Apr 4, 2014@KirjoZzZ
It means than NCP can't hook into the server to get more precise block-shape information and other, so it will use some "minimal compatibility" hook, only using the Bukkit-API that the servers variations usually all implement, usually happens if you are running a Minecraft version for which NCP has not yet been updated, or if you are running a more "exotic" mod that supports Bukkit but is differing from CraftBukkit.
To probably fix it:
-
View User Profile
-
Send Message
Posted Apr 4, 2014Hi Im recieving this:
[21:50:09 INFO]: [NoCheatPlus] Enabling NoCheatPlus v3.10.9-RC-sMD5NET-b673 [21:50:09 WARN]: [NoCheatPlus] Could not set up native access for your specific Minecraft + serve r-mod version. [21:50:09 WARN]: [NoCheatPlus] API-only MCAccess: Some features will likely not function properly , performance might suffer. [21:50:09 WARN]: [NoCheatPlus] Check for updates at BukkitDev: http://dev.bukkit.org/server-mods /nocheatplus/ [21:50:09 WARN]: [NoCheatPlus] Development builds: http://ci.ecocitycraft.com/job/NoCheatPlus/ [21:50:09 INFO]: [NoCheatPlus] McAccess set to: 1.4.6|1.4.7|1.5.x|1.6.1|1.6.2|? / Bukkit-API [21:50:09 INFO]: [NoCheatPlus] Added block-info for Minecraft 1.5 blocks. [21:50:09 INFO]: [NoCheatPlus] Added block-info for Minecraft 1.6.1 blocks. [21:50:09 INFO]: [NoCheatPlus] Added block-info for Minecraft 1.7.2 blocks. [21:50:09 INFO]: [NoCheatPlus] Inventory checks: FastConsume is available, disabled InstantEat. [21:50:09 INFO]: [NoCheatPlus] Version 3.10.9-RC-sMD5NET-b673 is enabled.
Can anyone help?
-
View User Profile
-
Send Message
Posted Apr 3, 2014@asofold
Yes I know it can be annoying but it's more annoying when people talk in 1 word sentences instead of having just 1 message. I'll try that, thanks.
-
View User Profile
-
Send Message
Posted Apr 3, 2014@pookshuman
You need experience to tell cheaters, because nowadays cheat clients are highly adaptive, so they even have dedicated switches for NCP - often labeled as "bypasses", those adapt to the limits that just still work with NCP, hardly generating any violations.
Well, check what they are doing, if in doubt - have them explain what just happened and gather some experience with that, if they reach high levels or keep triggering violations.
Typical reasons can be:
Gathering extreme n-values in short time usually is a sign for cheating, however the well forged cheat clients adapt so well, that the differences become rather subtle, that's why some experience is needed.
I explained possibilities for false positives with the blockbreaking. Another check that can trigger a lot is passable, but it is usually due to a specialty in Minecraft (not a false positive, but also not a cheat, still can't be let through).
-
View User Profile
-
Send Message
Posted Apr 3, 2014@asofold
Thank you for the detailed response. I don't understand most of it, but thanks for trying. :)
If I observe the player while they are mining (i.e. while I am invisible) and I see an NCP notification, what should I look for to tell if they are using a cheat mod? In other words, do cheat mods make the player exhibit any odd behavior that I could use to confirm that they are modding and not just clicking really fast or lagging?
The player that has been having these issues is a long time player and I have no reason not to trust him, but he is also playing from the UK and the server is in the US and may experience a bit more latency.
I really don't want to accuse a good player of something without proof ... but I also don't want to allow cheats. How can I get to certainty, or 99% certain that someone is modding?
-
View User Profile
-
Send Message
Posted Apr 3, 2014@pookshuman
Admittedly we could use a more striking documentation for how to judge this kind of output. A recent (pull-) request has touched this once more - we will add some better reporting commands that allow to find players with top violations and also more useful reports and collections of data for certain contexts like fighting and blockbreaking.
Basically that output shows something odd. For lag we would expect blockbreak.frequency and blockbreak.fatsbreak to trigger most, but apparently those are hardly involved at all.
Instead you are having a lot on blockinterat.visible and blockbreak.noswing. The visible check is relevant especially for "dumb nukers" and freecam, because it checks if the block interacted with is accessible at all and not behind a wall and such.
One should not be too enthusiastic about the VL number, because some checks translate things like distances or time differences into VL, so you indeed need to use the stuff in brackets for judging things:
Unfortunately current stats don't really show how long the player was playing, so best is always to check once and after some time again, if possible.
This case at first looks like it could be a blunt nuker attempt. Visible and noswing trigger all the time. One can't be 100% sure, also because we don't know the time distribution. A nuker that just iterates over a cuboid might start underground and trigger visible first, then it hits visible blocks but triggers noswing because it is poorly implemented :p - a possible interpretation.
However other possible explanations could be:
Sorry for having this idea after writing all the text :p - you should let the player(s) show what they were doing, which block(s) were broken while standing/moving where...
Also check if you are running the most recent version of NCP (dev build should be ok too) with 1.7.x CB/MC.