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 Nov 26, 2012@craftovski
They are compiled with CB 1.4.5-R0.2 but should also work with 1.4.4 builds. I recommend to use 1.4.5.
-
View User Profile
-
Send Message
Posted Nov 26, 2012Last dev builds are for both 1.4.4 and 1.4.5?
-
View User Profile
-
Send Message
Posted Nov 25, 2012@asofold I'm using latest and latest spigot. I was on the previous build for nocheat for 1.4.4+ it seems that my users are still getting kicked for 'spamming skills' but they weren't before. Both of these checks are disabled in my config.yml - is there some kind of issue? http://pastie.org/private/ixnoicunt998134xool5a my config
It looks like the config had some unicode issues - reverting to the old one seemed to have fixed it.
-
View User Profile
-
Send Message
Posted Nov 25, 2012@asofold
Thanks again, asofold. I'll try deactivating the moving.passable check and see how it goes. :)
-
View User Profile
-
Send Message
Posted Nov 25, 2012@Praqoon
NCP should not have anything to do with /trapped or /kill commands.
What NCP does is to prevent moving inside of blocks if your head is not free. Not sure 1.4.4/1.4.5 changed anything regarding that on client side, though.
It might be partly fixable, but not too quickly i assume. The check in question is the moving.passable check, which mainly should prevent most of noclip stuff for solid walls (not doors and similar). If you don't need that protection you can deactivate the check.
-
View User Profile
-
Send Message
Posted Nov 25, 2012@asofold
Thanks, asofold. I'm running CB 1.4.5-R0.2 (BETA) and yes, the latest version of NoCheatPlus (# 259).
In the past few hours I have had 2 players being stuck inside blocks and unable to move or use the /trapped or /kill command. I'm trying to work out if their demise was a result of their actions in-game or an error.
-
View User Profile
-
Send Message
Posted Nov 25, 2012@Jackshow01
@Praqoon
1. Be sure to use the latest development build for 1.4.5: http://www.nocheatplus.org:8080
(Mind the notice on this page and the download page...) 2. The survivalfly message with 0 distance is just used if the violation level reaches a certain limit (see survivalfly.actions). The distance 0 could be that the player is just standing in the air and looking into a different direction without moving down/on. The worse case would be a block not accounted for that the player is walkin on but that NCP does not interpret right. Usually the latter would be the case if you are runnning a 1.4.2 version with 1.4.4/1.4.5 (see link above).
We will make a version available on bukkitdev as soon as possible, just need more feedback on some details on it. Until then keep to: http://www.nocheatplus.org:8080
-
View User Profile
-
Send Message
Posted Nov 25, 2012Hi folks,
This is my first post here, as I've only been using NoCheatPlus for a few days. I have to say it's very impressive so far. I just have one quick question, regarding a log entry which is confusing me. I changed the username to protect the 'innocent before proven guilty' individual.
[INFO] [NoCheatPlus] Player1 failed SurvivalFly: tried to move from 180.50, 72.00, 256.50 to 180.50, 72.00, 256.50 over a distance of 0.00 block(s). VL 665.
Even though the player moved zero blocks, I'm asking myself why an alert was triggered and this log entry was made. Any thoughts/ideas/suggestions/opinions please? :)
-
View User Profile
-
Send Message
Posted Nov 24, 2012Can someone check my ticket
http://dev.bukkit.org/server-mods/nocheatplus/tickets/335-extreme-lag-on-my-server/
-
View User Profile
-
Send Message
Posted Nov 24, 2012Oh. Sorry MyPictures. I'll make a ticket, Where can I do so?
-
View User Profile
-
Send Message
Posted Nov 24, 2012@Jackshow01
NC+ version? CB version? Plugin list? Player amount? Hardware? Server TPS? Would be better if you could make a ticket so we can keep track of you're issue. In the comments it will just getting lost.
However you can already kick players by adding cmd:kick on the actions.
http://dev.bukkit.org/server-mods/nocheatplus/pages/configuration/#w-how-actions-work-an-overview
-
View User Profile
-
Send Message
Posted Nov 24, 2012Hey there NoCheatPlus creators. I have a problem. NoCheatPlus is causing my server to lag extremely bad. I had to change all of the violation levels to like 2000 before they did something about it because of this. Also I had to disable fastbreak to prevent extreme lag. I am using a dedicated server with no java errors in my console. Also, There should be a way to kick the user instead of canceling what they've done.
-
View User Profile
-
Send Message
Posted Nov 24, 2012@sundriedmailbox
The fight checks already do something similar. The combined.improbable check also uses fighting frequency as an input, however the re could be more balancing for it, also allowing to configure it to count in certain incidents with a higher weight or a lower one.
The fight.frequency check also allows two limits (shortterm and normal), but the combined.improbable keeps track of roughly half a minute (from memory, might have to correct this statement).
-
View User Profile
-
Send Message
Posted Nov 24, 2012@n33dy1
If that's referring to nuker then YES. However I would use LogBlock (or anything similar to that) to find out who took all sand block also check your server log to find evidence like WorldEdit commands or anything like that.
@sundriedmailbox
We already planed to do something like this but it will take some time to do, otherwise it will throw out too many false positives. For now forecfield/killaura should be covered good enough, the only thing hackers can do is aimboting but for the other fight checks they have to stand under the given limits by NC+;
Everything related to the fight checks (forcefield/killaura) will be discussed here:
http://dev.bukkit.org/server-mods/nocheatplus/tickets/51-forcefield-aimbot-reach/
-
View User Profile
-
Send Message
Posted Nov 24, 2012For the fight check you should see if they are attacking at a consistent rate for long periods of time. This will force the *wizards to either use randomness or intentionally weaken their aura by making it alternate between as fast as possible and slightly slower.
*I like to call hackers wizards and hacks magic. I'm a role player, deal with it.
-
View User Profile
-
Send Message
Posted Nov 24, 2012Will this plugin prevent this crap from happening? http://i.imgur.com/LyEgB.jpg :(
-
View User Profile
-
Send Message
Posted Nov 24, 2012@DistortedDorian
Prefix can't be changed, currently.
@DistortedDorian
Banning !? Are you refering to temp-ban?
Please state the version of NCP (/version NoCheatPlus) and CraftBukkit, otherwise we can not even guess.
To find out why it kicks you need to check what they get kicked for, there should also be entries in nocheatplus.log about those kicks (given recent versions) and possibly check failures for which they got kicked. Some checks might fire with lag, some development builds might have unbalanced kick actions preset, which can be removed (just remove cmd:kickXYZ for the actions for the check in question.).
-
View User Profile
-
Send Message
Posted Nov 24, 2012@MyPictures
the server is kicking my players too and sometimes banning without reason
-
View User Profile
-
Send Message
Posted Nov 24, 2012Hi. how do i change the NCP Prefix. in NoCheat you could change the message. so is it possible in nocheatplus. i cant find it in config.
-
View User Profile
-
Send Message
Posted Nov 24, 2012@CarltonGrey
For very laggy servers you have to adapt the configuration. (severe lag spikes in the seconds range can also occur on near 20 tps servers, so tps do not always tell everything).
Build 258 contains an altered blockplace.fastplace check which allows more fine grained control over placing speed. But you might have to remove the kick action from the fight.godmode check.
The block breaking is limited by the blockbreak.frequency check. Supposedly the shortterm setting is preventing fast blockplacing in the context of lag.
Not sure about the desync bug, that was like breaking blocks that then are only removed on client side, while the server assumed it still to be there - one would have to relog to see it again. I think that was fixed in MC, though.
@mrchasez
That is the morepacketsvehicle check. Are the users trusted? With bigger lag spikes such can happen (20 packets would usually mean 1 second lag spike).
@Bobacadodl
@MyPictures gave the links. Don't trust cncp ExemptionManager :), the idea of keeping exemptions of other plugins does not really work, this kind of exemption mechanism (given this simple API) is not fit for plugin compatibility, so just exempt the player and unexempt again to be sure they don't stay exempted. NCPHookManager has the methods for that. cncp still shows examples for that and also for "after-failure" hooks. The plugin SeamlessFlight also shows use of after-failure hooks with vl-resetting after finish of action.