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 Aug 10, 2015can you add delay and repeat for cancel? This would be awesome. :D
-
View User Profile
-
Send Message
Posted Aug 9, 2015@MCTylerPVP
Of course we want hacks covered out of the box. Currently a couple of checks are buggy and have to be repaired, but you also have to account for the fact, that many cheats are just adapting to the plugins on the market, so they try to stay off the radar. In addition to that there are a couple of client-side-only hacks, which can not simply be fought on server side, like marking enemy players or types of radar. Other things we don't monitor due to the complexity and the fact that Spigot and other plugins cover that sufficiently well, e.g. xray or spamming fake entities out of sight.
Currently we are focusing on fixing false positives in survialfly. Then we will make fight checks operable again (specifically fight.speed), and improve/add other checks, e.g. flying, hitting through walls.
-
View User Profile
-
Send Message
Posted Aug 9, 2015Can you make it to where "OOB" this plugin prevents most cheating? I installed Jam client and tested with a alt and that player was able to use almost every cheat except fastbow.
-
View User Profile
-
Send Message
Posted Aug 8, 2015@File14
Can it be reproduced at will? Maybe we'll have it fixed soon anyway, but more information coul be useful (1. /ncp version 2. [tags] in flylong and flyshort messages).
@adambll
You can remove the log actions (log:.... until the next space) for the checks.moving.morepackets and the checks.moving.passable checks , at least for the lower violation levels then.
-
View User Profile
-
Send Message
Posted Aug 8, 2015Is there a way to disable ingame messages for specific actions? So for example: I still want to see if someone fails Survivalfly but I don't wanna see MovedIntoABlock or SendmorePackets Ingame.
How do I do this?
I know there is /ncp notify off but I only want to notify me on specific ones.
-
View User Profile
-
Send Message
Posted Aug 8, 2015It's saying that somebody cheated when they died in lava. Survival fly cheat. Are there some way to set so it's not so sensitive? Cause there are alot false positives with SurvivalFly... :/
-
View User Profile
-
Send Message
Posted Aug 7, 2015@Har88
The parts in ProtocolLib can't be done with the Bukkit API, so those features might be missing. It needn't be the world, but the spamming of moving packets (without causing Bukkit to fire an event for it), had been used to freeze other players locally an get rid of potion effects (and other), not sure it is that much of an issue with latest Spigot. The SoundDistance check attempts to prevent player locations to get revealed by lightning effects, matter of taste.
In future we will code more for packet level, e.g. a replacement for the fight.speed check, which had been rendered inoperable by a change in CraftBukkit a while ago.
@Errota
There already exist tickets on that one. I myself can't reproduce this, but i assume that we will either get it reproduced or make a workaround (set back to void).
@Theepwner
Good point!
-
View User Profile
-
Send Message
Posted Aug 7, 2015@Har88
Have you reported that issue to the developer?
-
View User Profile
-
Send Message
Posted Aug 6, 2015Hello,
I run a large network and on my SkyPvP world when players fall into the void then get teleported back to the block they last stood on? Any fix?
Kind regards, Jamie J M
-
View User Profile
-
Send Message
Posted Aug 5, 2015If i dont use protocolib, due to it causing memory leak: http://i.imgur.com/9XsvA94.png Will all features of nocheatplus still work? on PaperSpigot 1.8.8
-
View User Profile
-
Send Message
Posted Aug 4, 2015@martini002
They might be able to abuse velocity dealt by damage, because NCP is too lenient in that case (known issue). This will be tackled very soon, though we might go for a (beta) release with current changes in first.
-
View User Profile
-
Send Message
Posted Aug 1, 2015@MyPictures
My version: 3.12.1-snapshot-sMDNET-b828 on Spigot 1.8_r1
With a kind of hack they can fly, but not sure which one is, i tried with some of hacks and they get blocked.
-
View User Profile
-
Send Message
Posted Jul 31, 2015@asofold
Okay thanks for the info :D
-
View User Profile
-
Send Message
Posted Jul 31, 2015@ariefun123
Currently it depends on the server version. The fight.speed check has been rendered inoperable by not-that-recent-anymore changes concerning how events fire, so we will have to replace it by a ProtocolLib-based version for servers since roughly 1.7.10. Above that version we only can process the hits that would count as damage, which usually won't be many more than 2 per second max., thus the need for ProtocolLib, in order to get the unfiltered input from the clients.
Assuming it was operable at all, we have several limits built in.
The short-term monitoring is done by fight.speed and is split into "normal" and (very...) "shortterm" limits. Monitoring 2 seconds by default, the default limit is at 15 attack attempts per second, allowing a little burst/congestion with monitoring 2 seconds. To prevent sending all at once, there is the extra "shortterm" limit, limiting to 6 attacks per 7 ticks by default.
To monitor mid-term attacking frequency, the combined.improbable check gets fed data with each attack attempt, and that should usually result in a slightly lower limit than 15/second, but it is monitoring 30 seconds or so.
I'm probably not very concise here, but basically we have to add in a replacement for the fight.speed check, until we can actually monitor the attack attempt frequency. Once operable, there are three levels of limits as described above (shortterm, normal and mid-term).
-
View User Profile
-
Send Message
Posted Jul 31, 2015at how many milliseconds between each hit will nocheatplus recognize that a player is hacking?
-
View User Profile
-
Send Message
Posted Jul 30, 2015@xXGrammar_NaziXx
Yes, that'll be interesting. It might also be related to the client-side or the specific routing via the internet in particular, so it needn't be a server side issue.
Usually we try to detect server-side lag and have NCP be more lenient then, but it can be with lower-grade HW that the meximum leninecy isn't enough.
Remains to be seen....
-
View User Profile
-
Send Message
Posted Jul 30, 2015@asofold
For the network issue, I am not 100% sure. However, we will be upgrading to a VPS with better specs very soon. After we upgrade and the issue is still happening, then I will make a ticket.
Thanks.
-
View User Profile
-
Send Message
Posted Jul 29, 2015@xXGrammar_NaziXx
Probably we should take this into a ticket, if it stays an issue, keeping track of the details will be difficult over time.
Are any speed potions or other involved, do the messages happen often? Any other side conditions? Could consider recording a debug trace (or if crafty enough, set checks.debug to trace all players, only if HD is fast), if we can't nail it down.
-
View User Profile
-
Send Message
Posted Jul 29, 2015@asofold
Oh, sorry, here is an image of the whole thing: http://i.imgur.com/AuDTB04.png
Everyone has been reporting some sort of 'lag'. At first I was confused because I'm getting no lag and I'm on a very unstable 1-2mbps connection. (Yep, even though it's 2015 bla bla bla.) So I just kept on playing saying that I will upgrade the server ASAP and then I started to notice people saying they were lagging after like 4 warnings of them popped up. (All around 10VL) The server has around 5-10 players on constantly during the day (10 as being peak.) and the most has been almost 20 players (The server is growing fast and I'm expecting it to go higher soon.). I asked someone what they were doing and they told me that they were walking and hitting a mob. I can tell that they were not hacking because I was watching and the violation levels are really low and it's saying that they moved like half a block. Ex: http://i.imgur.com/6iv6yJf.png
I added CNCP to see any improvements but I don't really see any. A lot of the errors are either 'failed More Packets: sent too many moves (10 epsaccs). VL 10.' or 'failed Passable: moved into a block (2) from 12847.59, 64.00, -3665.59 to 12747.59, 63.92, -3665.59. Distance 0.08. VL 11.'
Thanks.
-
View User Profile
-
Send Message
Posted Jul 29, 2015@xXGrammar_NaziXx
In fact the features do tell some things :), just paste the whole thing next time. Not saying those are relevant here, though.
So players get set back by moving checks - how many players complain (and how many players are playing at all)? Can it be confined to certain actions/situations, like jumping off block edges, the first move, continuous sprinting+jumping, only during fighting, whatever?
The survivalfly check is much in focus right now, so we will keep changing/fixing.