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 May 1, 2013@asofold
Here's the first debug log - several "rubberbands" - Let me know if you need more. Its VERY spammy.
http://paste2.org/aKBeeUp9
Entire log
Link Removed: http://www.mediafire.com/?jdmm83y658u8b59
-
View User Profile
-
Send Message
Posted May 1, 2013@asofold
We currently arent hooking into anything NCP related (I havent a clue how and finding it hard to keep devs interested in doing so)
I'm going to do the debug trace (this is the second time btw<sub> not sure if you got the other one)</sub>
Will hopefully get something soon.
-
View User Profile
-
Send Message
Posted May 1, 2013@Delfofthebla
The debug trace is done using a development build (latest preferable) and setting "debug: true" in the checks.moving section of the configuration. Then you reproduce the issue a couple of times (prefarably, one time might suffice), then you send us the moving-log-spam somehow, at least from on ground before jumping until shortly after the violation. Also useful is to have TestNCP running (found at NCPTools at BukkitDev) to print some more info.
What you can do to attempt a quick fix from heroes side is to manually add a velocity entry to the players MovingData (accessing NCP code). Parameters and if to put before or after adding velocity is subject to testing for a part. I assume if adding before the velocity for the skill, not too much is necessary (start with MovingData.getData(player).addHorizontalVelocity(new Velocity(0.5, 60, 40));
Not sure you are hooking into the NCP jungle, though.
A similar effect can be achieved by adding a small bit of horizontal velocity right before adding the skill-related velocity. This would also lead to two entries, while the first small one might work around the sprinting problem. Drawback: the player gets sent that one too.
-
View User Profile
-
Send Message
Posted May 1, 2013@asofold
Changing this setting unfortunately did nothing. What all do you need us to do for the debugging?
@asofold
This is correct. The Herocraft Server manipulates stamina on skill usage. Assuming what what you are describing is true, what could be done to alleviate the issue?
-
View User Profile
-
Send Message
Posted May 1, 2013@asofold
Will be testing this soon...
-
View User Profile
-
Send Message
Posted May 1, 2013@asofold
I'm not sure what's causing it either. But that did the trick, thank you! I appreciate your help.
-
View User Profile
-
Send Message
Posted May 1, 2013@Delfofthebla
So the skill depletes the hunger bar such that sprinting is no longer possible?
Could be that due to the lower hunger bar the velocity gets used up by the speed resulting from sprinting, while the player has not yet received the velocity change. So due to latency, the player has not yet used the velocity for moving, but the velocity got invalidated, due to the hunger bar change rendering the player too fast, so that the queued velocity gets activated, then the player gets slow enough to have the activated velocity invalidated before the velocity-induced moves come back to the server.
Now here: Ticket 527
-
View User Profile
-
Send Message
Posted May 1, 2013@LordKainzo @asofold
I was doing some extensive testing with the "Jump" skill, and I found a way to consistently rubberband it.
If the player is sprinting and holding spacebar (sprint jumping for maximum movement speed) And he uses /skill jump the moment he lands from a spacebar jump, it will rubberband the player 100% of the time.
This looks to be happening in addition to the low stamina rubberbanding.
@asofold I think you may be onto something with the velocity issue and being too fast for normal moving upon landing. When Kainzo and I were testing the velocity of the jump skill, it was more vertical based rather than horizontal based. This is why I'm thinking you may be right here. I'm going to try and test a more horizontal based velocity skill with him later, but for now, what do you think?
-
View User Profile
-
Send Message
Posted May 1, 2013@CraftySubZero
You add an entry to compatibility.blocks.overrideflags (example: after line 411 in http://dev.bukkit.org/paste/7681/ ).
Bukkit block names or block-ids. That should allow passing thorugh slabs, though i am still not sure why this happens at all with your server setup.
-
View User Profile
-
Send Message
Posted May 1, 2013@asofold
-
View User Profile
-
Send Message
Posted May 1, 2013@LordKainzo
Please try build 507, setting "strictinvalidation: false" instead of true in the moving.velocity section of the configuration.
This is not really a fix, but if it works it gives strong indication about the cause.
If that does not work then we do need a moving-debug-trace. One option is still there, though, one could add an extra velocity entry to the MovingData, which will get activated once needed, but that should be the last resort.
@CraftySubZero
You can override block flags for the step block in the NCP-config (step: default+ign_passable), but i assume there is some other problem as well (sometimes server mods use different block shapes than cb).
-
View User Profile
-
Send Message
Posted May 1, 2013@asofold
Thanks for the speedy response, the answers to your questions are as follows :
-
View User Profile
-
Send Message
Posted May 1, 2013@LordKainzo
We need to find the cause, so there will hardly be progress without a moving-debug-trace created with a recent dev build).
@CraftySubZero
First questions:
Something can be done as a fall-back solution, but first the basics should be checked.
-
View User Profile
-
Send Message
Posted May 1, 2013Can someone please help me? Whenever someone (Who isnt OP) logs out on a half slab block, they get stuck and cannot move when they log back in. OP's receive the passable block violation (or something like that). How can I fix this?
-
View User Profile
-
Send Message
Posted May 1, 2013@asofold
My users could not replicate the push-back when at full hunger (I'm pretty sure)
When they use 'jump' skill it uses 1/3rd or so of their hunger and then it quickly regenerates. No matter the velocity settings I adjusted in the config, I couldnt stop this from happening.
I'd love to have an addition or configuration to not have hunger checked (or affected movement) if possible.
I can't say what the issue is - all I know is it was working on a version of nocheat in 1.4 and without any other code changes to the skill - it is now no longer working. I'd be willing to donate to get it pushed faster too! :3
-
View User Profile
-
Send Message
Posted May 1, 2013Thanks for the ncp info command, I will use it. It’s build 505 from Jenkins and R0.2 beta of Bukkit 1.5.1. The problem is for all players.
-
View User Profile
-
Send Message
Posted May 1, 2013@LordKainzo
At the moment we only have nocheatplus.checks.moving.survivalfly.speeding which allows players to bypass the sprint/speeding checks of NC+. As far as I remember this was since NoCheat got updated to MC 1.8 beta and higher, players should not be able to sprint if their hunger is too low.
@ridddle
The full BlockBreak Section + The interacting checks we have. You should simple execute /ncp info <PlayerNameHere> and see what alerts he/she sets off while breaking blocks. If its FastBreak you could adjust it to adapt more to lag while allowing faster breaking of blocks. Remember: Only weaker NC+ if you REALLY trust those users! Some will try to make you disable stuff of it just so they are able to use their cheats by faking false positives. Best would be to deop yourself and test by yourself.
Also what's your CraftBukkit and NoCheatPlus version that you are currently running on?
-
View User Profile
-
Send Message
Posted May 1, 2013Which check is it when blocks I mine reappear as though it was block lag (it’s not)? I need to adjust it, players are reporting massive amounts of blocks needing to be broken a few times. ;/
-
View User Profile
-
Send Message
Posted May 1, 2013@LordKainzo
ThisThe hunger bar restriction was the same for about all past versions of NCP, probably back to NoCheat itself :).NCP just checks hunger bar and only allows sprinting if it is high enough. Currently no way to bypass but it might be fixable or an addition can be made.
Might also be that this still is a velocity issue when landing on ground but being too fast for normal moving.
-
View User Profile
-
Send Message
Posted Apr 30, 2013@MyPictures
I am the creator of Heroes. There isnt a private version.
However, I don't think this is an issue with the movement or velocity settings persay.
We also have a completely rewritten HUNGER system for our server (renamed to Stamina)
It seems that these rubber-bands happen whenever the user is nearly completed of HUNGER - aka the user couldnt sprint in vanilla - so once they get below the point of no sprinting it will rubberband them if they try to sprint+fly forward.
Is there an adjustment that can be made to allow for these users to bypass the food/hunger checks and or some kind of exception in the config? @asofold
Read above :)