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 Mar 24, 2013@waremanu
This level is pretty high but I would still recommend to check that player with a /vanish plugin just to be sure you have treated him fair but that's just my opinion. The HighLevelVL kick of SurvivalFly is 1000.
-
View User Profile
-
Send Message
Posted Mar 24, 2013Are VL 700 enough for true survivial fly?
-
View User Profile
-
Send Message
Posted Mar 24, 2013@ExtremlyGaming
Ingame notifications: nocheatplus.admin.notify
The "/ncp info" command: nocheatplus.admin.info
-
View User Profile
-
Send Message
Posted Mar 24, 2013Where can I find the permission to give the players perms to view the NCP log when it says it thinks people hack?
-
View User Profile
-
Send Message
Posted Mar 23, 2013@asofold
Hurray :) https://github.com/Bukkit/CraftBukkit/commit/543fc73cbe357ae01ecaa91d7a269b252a985472
-
View User Profile
-
Send Message
Posted Mar 23, 2013@braxmanz
Moved your javastacktrace to DevBukkit paste: http://dev.bukkit.org/paste/7406.txt
Please use it in future to post huge logs or errors. Deleted.
-
View User Profile
-
Send Message
Posted Mar 23, 2013@braxmanz
There is this useful link at the top of the page: http://dev.bukkit.org/paste/
Please use that for such long input and set it to "text only" for such exception trace.
(Edit: moved to: http://dev.bukkit.org/paste/7406.txt)
It looks like the CommandSigns plugin using a proxy object for players, which causes this problem when a player does the kill command. Technically i am not sure if i can/want to do too much about it right now. Hard to make this compatible without allowing the player to spam the signs.
Could try cncp with the player class hook (add PlayerProxy to exempt-classes), but that would allow spamming the command signs.
@x_clucky
Years of practice.
@xTyuzi
Are they on water? The floating boats still occur occasionally in Minecraft/CB.
-
View User Profile
-
Send Message
Posted Mar 23, 2013Boats act like they are on water, I have a feeling this has something to do with your plugin?
-
View User Profile
-
Send Message
Posted Mar 23, 2013You said the same thing twice? Typo or emphasis?
-
View User Profile
-
Send Message
Posted Mar 23, 2013@owenftw
Can you add "[tags]" to the flylong and flyshort messages like described in my last post here?
The violation messages could help judging what happens.
Did this happen with lag spikes ? You could increase the setting checks.moving.velocity.activationcounter to 120 for instance and see if the problems get less frequent. But basically we have to find out what actually happens in order to fix it.
How frequent does this happen? Does it happen to all players?
-
View User Profile
-
Send Message
Posted Mar 23, 2013People randomly keep on being forced back to a spot while in PvP. Like somebody will get hit causing them to be knocked back a block but then they will be forced back to their original spot.
What settings do I need to change to try and stop this happening? using: NoCheatPlus 3.8.12-RC2-b472
-
View User Profile
-
Send Message
Posted Mar 23, 2013@LordKainzo
Just add the "[tags]" to the end of the flylong and flyshort message, NCP fills in some details on violations. This will quickly let us see if the violations concern only horizontal or only vertical checking and similar.
If you have more time, you could use build 489 (not 488) on a test server (local might suffice if you can reproduce the issue there) and set checks.debug to true, then reproduce the issue a couple of times (if possible both repeat the same a couple of times and same with different side conditions like ice / water) and paste / zip+send the log of all the moving for us for analysis.
If i have time i will try to reproduce near fluid/ice etc. but i can't promise too much at present.
@winter4w
That is not related to NCP. Might be related to WorldEdit or other block-changing plugins.
-
View User Profile
-
Send Message
Posted Mar 22, 2013It spams consol with this
23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found. 23.03 05:40:44 [Server] WARNING No compatible nms block class found.
-
View User Profile
-
Send Message
Posted Mar 22, 2013@asofold
I see, Asofold I can you give me an example config with what [tags] you want? I'm afraid I dont know what you exactly want - I'm all for testing this.
-
View User Profile
-
Send Message
Posted Mar 22, 2013@LordKainzo
DragonTravel should be something completely different, rather is the same issue as with minecarts due to missing out VehicleExitEvents (rather a CB bug).
We can't allow or treat plugins, since the players moving is client side, whatever you add from server side. There is not much in the Bukkit-API that would help cross-plugin compatibility concerning players moving. The only thing we can do is guessing that a player is using velocity which has been sent to him. We also have to guess when the player can not be using velocity anymore. That together with the Minecraft client not sending events for ground-air and air-ground in a reliable way makes it all a bit complicated.
We need input on what happens, [tags] can help for an initial direction.
@x_clucky
Likely that is Minecraft itself. Does "ncp info PLAYERNAME" show anything about the nofall check ? Does it happen at a certain height level always? Which version of NCP / CB are you using right now?
@PrometheusBG
Which NCP/CB versions ? You could disable the hover check or give it more grace for login (config).
-
View User Profile
-
Send Message
Posted Mar 22, 2013NCP is kicking players , without reason even they doesn't use HACKS.. How can I fix that? When they try to login they're kicked for flying or (related) but they AREN'T
-
View User Profile
-
Send Message
Posted Mar 22, 2013I do not know if you remember, but a few months ago I reported having an issue with players dying when falling from high distances, even though they would have survived the fall. Well, here is a perfect example. A player died from fall damage halfway down from a floating island above 3 blocks deep of water... How, I have no idea... Note, that this example is quite dated, however, I am experiencing this issue so much more severely now...
Screenshot: http://i.imgur.com/pamWijz.png
NoCheatPlus Log:
In another note, why does it say <?FALL_DISTANCE> instead of actually saying the fall distance?
-
View User Profile
-
Send Message
Posted Mar 22, 2013@asofold
Correct - there is no client-mod involved. It is purely a player using /skill jump and then that triggering the Heroes skill for the player to jump in relation to where they are standing. They usually "jump towards" the area they are facing.
Here's the skill-src for Skill Jump.
http://pastie.org/private/7ybzxxakc6d9ritmo0toa
I don't mind adding the [tags] - but this is the same concept of DragonTravel I think. Plugins should have unrestricted access to what goes on with players and under the current NCP - they're treated like client mods.
-
View User Profile
-
Send Message
Posted Mar 22, 2013@LordKainzo
I would like to get more info about what actually happens, code would be useful, there is no client-mod involved for the jumping, right?
You can add [tags] to the end of the flylong and flyshort messages to get a little more detail about the violations messages, that would be useful.
Another thing would be a moving trace (moving.debug set, using a development build, not a release/recommended one), in fact several violations traces would be good, but that cant be done on a live server. with that trace it will be much easier to check/fix.
-
View User Profile
-
Send Message
Posted Mar 22, 2013@MyPictures
I'm using spigot (latest) and latest dev build of NC. It happened in 1.5.0 as well.
It doesn't seem to happen all the time. It happens more often going from water -> land or ice -> land ...
I cant reproduce it 100% of the time either, its like it "builds up" and then fails once and then again.
I'll retest again today. I'd love to implement this check into Heroes skill - I can show you the source if you want to give me an example on how to do that.