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 18, 201313:58:17 [WARNING] [NoCheatPlus] The block breaking data is incomplete, default to allow instant breaking: 13:58:17 [WARNING]
- Missing entries-----13:58:17 [WARNING] * MISSING 147(GOLD_PLATE / SOLID IGN_PASSABLE GROUND GROUND_H EIGHT) 13:58:17 [WARNING] * MISSING 148(IRON_PLATE / SOLID IGN_PASSABLE GROUND GROUND_H EIGHT) 13:58:17 [WARNING] * MISSING 149(REDSTONE_COMPARATOR_OFF / IGN_PASSABLE GROUND G ROUND_HEIGHT) 13:58:17 [WARNING] * MISSING 150(REDSTONE_COMPARATOR_ON / IGN_PASSABLE GROUND GR OUND_HEIGHT) 13:58:17 [WARNING] * MISSING 151(DAYLIGHT_DETECTOR / SOLID IGN_PASSABLE GROUND G ROUND_HEIGHT) 13:58:17 [WARNING] * MISSING 152(REDSTONE_BLOCK / SOLID IGN_PASSABLE GROUND GROU ND_HEIGHT) 13:58:17 [WARNING] * MISSING 153(QUARTZ_ORE / SOLID GROUND) 13:58:17 [WARNING] * MISSING 154(HOPPER / SOLID IGN_PASSABLE GROUND GROUND_HEIGH T) 13:58:17 [WARNING] * MISSING 155(QUARTZ_BLOCK / SOLID GROUND) 13:58:17 [WARNING] * MISSING 156(QUARTZ_STAIRS / STAIRS SOLID IGN_PASSABLE GROUN D HEIGHT100 XZ100 GROUND_HEIGHT) 13:58:17 [WARNING] * MISSING 157(ACTIVATOR_RAIL / IGN_PASSABLE) 13:58:17 [WARNING] * MISSING 158(DROPPER / SOLID GROUND)what is that?
-
View User Profile
-
Send Message
Posted Mar 18, 2013@asofold
I already implemented those hooks for AntiCheat in the methods who mount/dismount a player and just added the one for NCP (Survivalfly), so it is easy to simply add the one for Creativefly as well and I just did that.
One last question: Is it correct that I need two lines of code to exempt the player from the two checks, but only one to unexempt him from all checks again? Only to make sure, I didn't skip anything. ;)
=> ChecksMethods If that works, I will release a new version with those checks in it, as soon as I get home today.
-
View User Profile
-
Send Message
Posted Mar 18, 2013@Phiwa
In fact, i don't know.
Certainly survivalfly will alert. Once exempted from survivalfly, the creativefly check will take effect for limiting the flying speed (could also conflict).
I am not sure how logging off of players is handled with DragonTravel, and if in effect the exemption API is the right thing to use, or if it is better to use the the after-failure violation-processing-prevention by hooks.
The advantage of the hooks would be that you will not have to deal with inconsistencies and that you can verify if the player is really riding a dragon. Downside is that the pre-violation handling and checking the player at all will cost more performance than simple exemption. Also violations still get added (but not processed), so one might want t do dirty tricks with MovingData.getData(player)... survivalFlyVL = 0 + clearFlyData.
Probably it is best to just exempt from survivalfly and creativefly, but be sure to catch if the player dismounts or loggs off.
-
View User Profile
-
Send Message
Posted Mar 18, 2013@asofold
Only to make sure, I do not forget any check:
Which checks get triggered when a player is riding a dragon? Only "MOVING_SURVIVALFLY"? :)
-
View User Profile
-
Send Message
Posted Mar 18, 2013@Phiwa
Thanks a lot, let me know if there is any questions. I would have had a look code-wise to see what approximately is the issue, but i can't really do much testing.
@xXSshadowXx
Entities? PlayersInCubes hides players from each other based on distance, using the vanish-API of Bukkit. But not monsters...
@LordKainzo
I think this is now beyond scope of the main page messages. We have to make a ticket gathering the information, so third people can follow the issues concerning velocity.
Which version of NCP are you using, and has the problem with the exceptions in the console been resolved?
I can not help on base of "does not work"...
Without further info, especially concerning the exceptions on the console we can't possible find out what the problem is.
-
View User Profile
-
Send Message
Posted Mar 17, 2013@LordKainzo
I'm the dev of DragonTravel and I'll ad the check-exemptions as soon as possible, so don't worry about that problem, should be fixed within the next two days.
-
View User Profile
-
Send Message
Posted Mar 17, 2013@MyPictures
Nocheat is starting to be such a pain .... velocity skills still messed up - with no off switch other than allowing all players to fly-hack.
Now dragontravel ... can we have a plugin-specific whitelist or something? heh.
-
View User Profile
-
Send Message
Posted Mar 17, 2013@GioboiMC
False positives are unpredictable.
@LordKainzo
Yea. Best way would be too hock in the NC+ API and exempt a player from SF. Maybe @asofold could do something over CNCP.
@xXSshadowXx
I think you mean the plugin "PlayersInCubes". NoCheatPlus doesn't hide entities in any way (because of compatibility issues).
-
View User Profile
-
Send Message
Posted Mar 17, 2013@LordKainzo
Try 'CompatNoCheatPlus'
-
View User Profile
-
Send Message
Posted Mar 17, 2013@asofold
Hmm we used to be able to block entity tracking. Was that not NCP?
-
View User Profile
-
Send Message
Posted Mar 17, 2013Hey Asofold!
DragonTravel is clashing hard with Nocheatplus - is there a fix for this?
Picture includes the info - I'm linking this to both developers in hopes of a fix.
-
View User Profile
-
Send Message
Posted Mar 17, 2013It's very hard for me to tell what's a real notification and what's a false positive.. How prominent are the false positives?
-
View User Profile
-
Send Message
Posted Mar 17, 2013@GioboiMC
Replace it with nothing :). The cancel entries just tell ncp to do something to undo the players actions. NCP just processes the entries that are there, so if you remove cancel entries it will still process the log and cmd entries, also vl>... takes effect.
-
View User Profile
-
Send Message
Posted Mar 17, 2013@asofold
Alright, so all I have to do is delete wherever it says cancel, don't even have to replace it with something else?
-
View User Profile
-
Send Message
Posted Mar 17, 2013@GioboiMC
To not set people back, just remove all cancel entries from the actions. Also should/might remove the kick entry unless you want high level kicks - you could also let it kick for a higher vl (for instance vl>3000 instead of vl>1000).
-
View User Profile
-
Send Message
Posted Mar 17, 2013Ok thanks for the help but I seem to be a noob at this and I'm still a bit confused. How would I change this so that it sends notifications to staff but allows them to fly?
survivalfly: active: true extended: vertical-accounting: true falldamage: true actions: log:flyshort:3:5:f cancel vl>100 log:flyshort:0:5:if cancel vl>400 log:flylong:0:5:cif cancel vl>1000 log:flylong:0:5:cif cancel cmd:kickfly
-
View User Profile
-
Send Message
Posted Mar 17, 2013@GioboiMC
You simple edit the actions of SurvivalFly. More info's about action you can get here: http://dev.bukkit.org/server-mods/nocheatplus/pages/documentation/configuration/#w-how-actions-work-an-overview
-
View User Profile
-
Send Message
Posted Mar 17, 2013How do I change the config so that when someone tries to fly, it still lets them, but also notifies staff?
-
View User Profile
-
Send Message
Posted Mar 17, 2013@andrewkm
As @Sodak1337 said, the FastBreak check is missing information's about the new blocks in Minecraft 1.5 so it allows instant breaking of those. @asofold will complete the block data as soon as possible until then you can simple ignore this warning (allows a little bit of cheating but yea... not major). You can keep track on our Jenkins or/and on this ticket: http://dev.bukkit.org/server-mods/nocheatplus/tickets/472-1-5-update-works-but-seems-missing-items/
-
View User Profile
-
Send Message
Posted Mar 17, 2013@Sodak1337
I should've checked the tickets page; oops. Thanks for the response :)