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 Sep 28, 2012@asofold
Thankyou, Shall give this a shot.
-
View User Profile
-
Send Message
Posted Sep 28, 2012@alexmarkey
As far as i can see it does not really seem to be necessary for the general performance, however you can do something for peak occurrences especially for vehicle and player moving (moving section).
That would be to adapt the logging:
1. Adapt the logging to take place at a higher violation level only.
2. Let logging exclusively use the console or the extra log file, but not both.
So you change something like "actions: log:flyshort:3:5:f cancel vl>100 log:flyshort:0:5:if cancel" into "actions: cancel vl>500 log:flyshort:0:5:if cancel" and "vl>6 log:nofall:0:5:icf cancel" to "vl>6 log:nofall:0:5:if cancel" for instance.
The logging can lead to make peaks even worse if there is server lag anyway, because due to the server being held up many packets get processed at the same time for many players, which can lead to many potentially low violation level alerts at that time. So if for those levels no file logging is done, then such situations will not lead to much more lag due to violation processing.
-
View User Profile
-
Send Message
Posted Sep 27, 2012@asofold
I understand that. Is there anything that i would be able to change or turn off in the config to proabbly get a much better result? Which check causes the most lag? Im preapared to turn off a few checks if cenessary
-
View User Profile
-
Send Message
Posted Sep 27, 2012@rfsantos1996
Question is how effective their forcefield is with b111 - i would not want to promise too much, but it should be clearly reduced. They will still get first hits often, but if normal players move into them athey should stand a chance.
@alexmarkey
Point is that 1 ms per tick and lower is a perfect average value for 250 players online. So nothing to worry about 200-300 ms in total for 500 ticks in this case.
You have to count in that player move is by far the most frequent event (up to 20 times per second per player) , so a plugin like NCP that has to check if moves are valid will consume a good amount of time in total. Question is if single ticks get more than 5 ms for player move.
@twisted067
I made it a ticket: http://dev.bukkit.org/server-mods/nocheatplus/tickets/240-block-jumping/
I managed to jump one block higher than allowed this way on 1.3.2.
-
View User Profile
-
Send Message
Posted Sep 27, 2012@asofold
Well the only event causing all of this lag is the player movement. I was presuming that the plugin basically logged every movement every player did which i understand is resource hungry, but compared to the other events in NoCheatPlus, they all have values around the 11ms mark
-
View User Profile
-
Send Message
Posted Sep 27, 2012@asofold
In my PVP server, lots of players uses Force Field, I need to config anything to kick or just stop them? I already downloaded b111 and I dont get many results.. :/
-
View User Profile
-
Send Message
Posted Sep 27, 2012@asofold
We tested it on a private server, vanilla bukkit server I got for testing a while back. We put just worldguard, worldedit and nocheatplus on - couldn't block jump. We then added our plugins one by one until we had them all and still couldn't block jump. I went through the server logs and realized i wasn't using bukkit server 1.3.2, instead an older version, 1.3.1r0.2. At that point I updated to 1.3.2 and suddenly we could all block jump effortlessly, took off all plugins but worldguard, worldedit and nocheat and we still could block jump.
To us it seems like its the bukkit version, idk if you can fix it, but if you can that would be awesome
-
View User Profile
-
Send Message
Posted Sep 27, 2012@pro1ness
Yes it should work, use the latest version.
@alexmarkey
Well if it is 200-300 ms in total for 500 ticks at 250 players would be really good values, given that NCP has to do a lot of calculations on player move events. Question is if there are extreme peaks...
@twisted067
The beta versions are compiled with 1.3.1, as far as i know we did not encounter that bypass, but it could be that with 1.3.2 something is possible. It should not be possible though.
-
View User Profile
-
Send Message
Posted Sep 27, 2012@asofold
i edited my comment but idk if you'll see it so ill just post it here just in case. after extensive testing we nailed the problem down to the bukkit server. 1.3.2 r0.1 and 1.3.2 r0.2 people can effortlessly block jump, when we moved to 1.3.1.r0.2 people suddenly couldnt block jump anymore...
if you still want me to make a ticket i will
-
View User Profile
-
Send Message
Posted Sep 27, 2012@asofold
just doing /nl examine i get 200 - 300ms (500 ticks i think) Compared to all my other pugins which get a max of 50ms
-
View User Profile
-
Send Message
Posted Sep 27, 2012Does It work for 1.3.1 recommended build?
-
View User Profile
-
Send Message
Posted Sep 27, 2012@alexmarkey
Maybe yes, maybe no.Edit: Not sure i can do much about it at present.How laggy is it ? Can you post the examine ?
-
View User Profile
-
Send Message
Posted Sep 27, 2012using no lag examine, this is the laggiest plugin on my server. The playerMoveEvent
This is however on a 250 player server. Would it be possible to fix it around so there is less lag?
-
View User Profile
-
Send Message
Posted Sep 27, 2012@twisted067
Please make a ticket for that exploit and give a little more information like version (build number) of NCP and CraftBukkit. Also what kind of protection plugin you are using.
@VietNg
Outdated version in use, download the latest version of NCP, please.
-
View User Profile
-
Send Message
Posted Sep 27, 20122012-09-27 03:03:19 [SEVERE] Error occurred while enabling NoCheatPlus v3.6.1 (Is it up to date?)
java.lang.VerifyError: (class: fr/neatmonster/nocheatplus/checks/chat/ChatListener, method: commandPreprocess signature: (Lorg/bukkit/event/player/PlayerCommandPreprocessEvent;)V) Incompatible argument to function
at fr.neatmonster.nocheatplus.NoCheatPlus.onEnable(NoCheatPlus.java:72)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:374)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:285)
at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:267)
at net.minecraft.server.MinecraftServer.i(MinecraftServer.java:297)
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:276)
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:226)
at net.minecraft.server.DedicatedServer.init(DedicatedServer.java:140)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:377)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
-
View User Profile
-
Send Message
Posted Sep 27, 2012@asofold
asofold, yes, block jumping is possible. Me and another admin tested it extensively and cannot get to the bottom of this. We even got a fresh config and see if that would fix it, and played with the settings but nothing would fix the block jumping. We're resorting to putting up no entry regions everywhere. Idk if its just us, or if others server have this problem too. We haven't recent put any new plugins on, but we're probably gonna start taking them off 1 by 1 to see whats up.
edit: after extensive testing we nailed the problem down to the bukkit server. 1.3.2 r0.1 and 1.3.2 r0.2 people can effortlessly block jump, when we moved to 1.3.1.r0.2 people suddenly couldnt block jump anymore...
-
View User Profile
-
Send Message
Posted Sep 27, 2012@b4rtj4h
Yes, the beta :)
-
View User Profile
-
Send Message
Posted Sep 27, 2012When I install this plugin my server won't start anymore.
This is the error:
11:24:24 CEST NoCheatPlus: Enabling NoCheatPlus v3.6.1 11:24:24 CEST CONSOLE: [SEVERE] Error occurred while enabling NoCheatPlus v3.6.1 (Is it up to date?) 11:24:24 CEST CONSOLE: fr/neatmonster/nocheatplus/checks/chat/ChatListener, method: commandPreprocess signature: (Lorg/bukkit/event/player/PlayerCommandPreprocessEvent;)V) Incompatible argument to function
What am I doing wrong?
EDIT: I believe this is trough not having the latest version lol >_< trying the beta now...
-
View User Profile
-
Send Message
Posted Sep 26, 2012@out2k
You do need an extra plugin against xray at present. Concerning flying and jumping NCP should prevent that, allowing mods would just not send the messages asking the mods to disable, but the checks would prevent things like flying or speeding. So allowing the mods can help to test out which code blocks that functionality. One could make a permission group with the individual mod permissions and let default inherit from that, then remove one by one to test out which one actually blocks the map to finally go with the minimal setup. Might be faster than waiting for a fix or until we officially find that the block codes sent to the clients simply conflict for some (new?) versions of the clients.
@Poopfish
It should protect from that given either survivalfly or creativefly being active for the players (even if the bukkit check is disabled).
-
View User Profile
-
Send Message
Posted Sep 26, 2012Quick question, does NC+ protect from players teleporting around the map freely. Bukkit says that they fixed that issue with a server check, but I was wondering if NC+ already did protect from that issue.