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 24, 2014Hiya
I have NoCheatPlus & SpongeJump
A lot of my sponges are now broken because NoCheatPlus thinks they are cheating. Is there any way to get around this without removing either of the plugins?
Thanks
-
View User Profile
-
Send Message
Posted Apr 24, 2014You told me how to hide the command - /?
And it worked by doing - '?'
But now it doesnt block it anymore and people can now type /?
Is this a problem with the plugin?
-
View User Profile
-
Send Message
Posted Apr 23, 2014@Wizel603
I just thought that this could be the case with that Minecraft feature to choose a usable spawn location: If spawn is buried, the player joins near it, say above or slightly to the side, but the location seems to be still in place.
This could be a general issue, so maybe we want to do something. Though what... scrap precision, a config flag (maybe the least we can do), a "ncp setworldspawn" command...
Edit: I just thought we could make a FAQ entry instead! :p
-
View User Profile
-
Send Message
Posted Apr 23, 2014@Wizel603
Alright - now the "enforcelocation" feature is kicking in. This seems to indicate (~ rock solid) that the event is reporting exactly that location you are suffocating at.
Edit: We might add a "workaround" that basically allows any location after respawn (risk of death-tp hacks in theory, though i hope that we some day can do without any checking, probably it is today?).
-
View User Profile
-
Send Message
Posted Apr 23, 2014@asofold
Build 688 does introduce a difference. Instead of being placed on the surface after re-spawning until any attempt to move results in NCP burying the player at Y=64, in this build the player appears to re-spawn directly at Y=64 and never appears to be on the surface. Suffocation begins immediately on its own.
-
View User Profile
-
Send Message
Posted Apr 23, 2014@asofold
I don't have anything explicitly keeping spawn in memory. I believe a plugin would be required to set that? My test server on which I've been reproducing the bug is purely a craftbukkit dev build and NCP right now, all default configs.
I think this being a CraftBukkit bug, or at least a change relating to when or with what data a particular event is firing, sounds like it makes the most sense at this point.
-
View User Profile
-
Send Message
Posted Apr 23, 2014@Wizel603
NCP uses the location given in PlayerRespawnEvent - if that one is not right, then either CraftBukkit has a serious bug there, or a plugin violates the contract not to alter events on "monitor" level, which is how NCP is listening to that event.
Edit: SHORTENED
NCP sets the set-back location to the location given in the event - on a flying violation it might teleport you there.
Is your spawn kept in memory ?
Build 688 could make it better or worse or not really affect it!
-
View User Profile
-
Send Message
Posted Apr 23, 2014@MyPictures
I haven't been able to at least. It seems that it moves the player to whatever solid block is at height 64 or the nearest one below. I've dug out around y=64 under spawn and was able to get it to drop me into that dug out space from the surface several blocks above, no obvious damage taken. If really does seem as if NCP is 'returning' me to that location because it believes I moved myself directly upwards away from that Y position.
[brainfart on my part removed]
EDIT: possibly related: In level.dat, minecraft sets "Data.SpawnY = 64 (int)" when creating a new world, regardless of the height of the terrain at that location. So yes, if you change the spawn using a third party tool which sets SpawnY to the terrain height, that may definitely explain why the issue goes away at that point. If NCP is initializing the player's last known position to the spawn coordinates as level.dat has them, that is a problem, but I also kinda doubt it's as simple as that.
-
View User Profile
-
Send Message
Posted Apr 22, 2014@Wizel603
If its below Y=64 it wont be able to reproduce? Did you try to move the spawn point with a plugin and see if that fixed it? I experienced this problem by myself also but it was really hard to narrow down and as soon as I moved the spawn-point with something like EssentialsSpawn.jar a little it didn't happen again.
-
View User Profile
-
Send Message
Posted Apr 22, 2014@Wizel603
Now I'm really confused. I figured I'd eliminate as many possibilities as I could, so I reverted the test server to bukkit build 3055.jar, and to my surprise was able to reproduce the problem.
Yet my main server is running bukkit 3055 and NCP b685 and not experiencing the issue.
I will continue to try and narrow it down here, but one thing you might try is creating a new world in a recent bukkit build and see if the way spawn is being set in the world is somehow messing with NCP. Though I have no idea how that could be.
EDIT: and the spawn area must be above Y=64 of course to see the issue.
-
View User Profile
-
Send Message
Posted Apr 22, 2014@asofold
I removed NCP's config.yml, let it regenerate, and set godmode to false and restarted the server. Drowned myself and clicked "Respawn" and was placed back in the spawn region on the ground. Then as soon as I moved my mouse to the right I got put into the ground (Y=64) and suffocated. Here are the console and nocheatplus.log contents from that:
http://mc.rut.org/paste8363.txt
http://mc.rut.org/paste8979.txt
I removed the NCP plugin and could not reproduce the problem.
-
View User Profile
-
Send Message
Posted Apr 22, 2014@Schneidertm
Have to correct myself: Currently it seems native access to 1.7.9 is working, because they did not change the internals - this might change though, for following dev builds of CraftBukkit.
-
View User Profile
-
Send Message
Posted Apr 22, 2014@asofold
Thanks!
-
View User Profile
-
Send Message
Posted Apr 22, 2014@Wizel603
Can you re-try with disabled god-mode check?
Does respawn work without any plugins !?
Edit: i can't reproduce at present...
@Schneidertm
We don't have a version up for 1.7.9 - i would not say "always latest dev build", usually for development builds of CraftBukkit you also need a development build of NCP, provided one exists. Orientation for NCP dev builds would be the "mostly stable" under the build, for pretty safe to use builds that have fixes and features in. If you go cutting edge with the latest Minecraft versions there will be builds of NCP with "(b12345: MC 5.4.3) stating that the build is the first one supporting that Minecraft version.
Usually we try to "stabilize" soon after changing a lot or adding new features, but using subsequent builds can be a risk, specifically if they have badges like [BLEEDING] or [INSTABLE] or both, or contain text like "refactoring" or "experimental". Simple fixes usually are not so killer-bug-prone. A good sign usually is, if a build has been around for days if not weeks, though it could also mean that i don't have any time :p. Clearly deficient builds either are marked with "(b1234: deficient)" or deleted directly, if too severe - of course the "newest" build could be risky, just because it has not been tested much, specifically if it has only been around for a couple of hours. Just don't use a build that's just minutes old, give it 10, 15 minutes always, unless you were communicating with us and we told you to use it, or if you can actually judge the code changes by inspecting them.
Confused? Maybe i'll just push a beta for NCP and switch the dev-module to 1.7.9...
-
View User Profile
-
Send Message
Posted Apr 22, 2014@asofold
Is there a version you would recommend for 1.7.9 or just take everytime the lastest dev build?
-
View User Profile
-
Send Message
Posted Apr 21, 2014@asofold
I ran the test server with only NCP, with NCP's default config.yml. Witnessed the same problem. It was a new world and spawn area was a plains biome. I've pasted the console output to http://mc.rut.org/paste5387.txt
Interestingly, first death I tried (shot by skel) didn't trigger the problem, but the next attempt which was drowning did. Had the F3 display up and after re-spawning any attempt to move or look around with the mouse would shoot the 'Y' down to 64 and I would just be looking at dirt until suffocation completely drained my health.
EDIT: I have noticed that I can avoid the issue if after I respawn, I logout and back in before any attempt to move. I am also not entirely certain the the issue will trigger following a death by mob; drowning or falling seems to do it though.
-
View User Profile
-
Send Message
Posted Apr 21, 2014@asofold
Dirt (grass) blocks were the primary blocks I see at the spawn location. Other plugins were Pl3xMobLimiter 0.0.1, PlayersInCubes 2.2.11, ProtocolLib 3.4.0-SNAPSHOT, IgnoreYou 1.3.1, SimpleWelcome 1.0.1, Orebfuscator 2.1.3. All are at their latest version (or dev version, if available).
I do have a test server that I can strip down to NCP only and run with complete defaults. Will let you know the results from that after I've done that.
-
View User Profile
-
Send Message
Posted Apr 21, 2014@Wizel603
What kind of blocks are where players spawn?
Could be the block shapes or ids are reported differently in 1.7.9 for some reason.
Any other plugin updates? Specifically plugins that do something with blocks?
-
View User Profile
-
Send Message
Posted Apr 21, 2014@asofold
The latest NCP version I tested with is 3.10.10-SNAPSHOT-sMD5NET-b685, but I previously had tried and experienced the issue in b680 as well.
The console message that appears when the player first starts to move (or just turn their view by moving the mouse) is:
the message that appears in the log file looks identical.
-
View User Profile
-
Send Message
Posted Apr 21, 2014@Wizel603
Kicked for flying: What's the exact kick message?
Are logs or alerts activated and were there any logs/alerts?
What version of NCP are you using?