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 15, 2012@roughtoast
Log: NoCheatPlus already has that implemented, just go to ./plugins/NoCheatPlus and open nocheatplus.log (open it with notepad or any other editor). Here an example how it looks like:
Please take a look at the config page, its not done yet but all what you need to know for this should be covered in there already: http://dev.bukkit.org/server-mods/nocheatplus/pages/configuration/
Permissions: NoCheat+ already has commands to exempt players from checks: http://dev.bukkit.org/server-mods/nocheatplus/pages/project/commands/
But the players don't get exempted forever! So on a server restart/reload every made exemption will be deleted.
How do you want to exempt the players then without making NC+ to a permissions system? OPs will always be exempted from all checks by NC+, so if you really want to do that you can. I still recommend to use a permissions plugin like PEX or GroupManager for this job. They give you way more possibility's to manage your server.
A inbuild permissions system would look like this in my visions (File name: exemptions.yml):
But @asofold decides if this will be useful or not :) A permissions plugin will still be better because you can manage in groups there, here you would have to manage with names.
@andrewkm
Yea the configuration page still needs some massive updates (sorry :( )... @asofold will help you when he comes back online.
-
View User Profile
-
Send Message
Posted Nov 15, 2012can u make a extra part to the plugin were it creates a log that says <player> has used <mod/hack type> to do the following action <illegal action> at <time> <date> and have that for the owner so that they know who are the hackers and who are using hacks so that we can ban/warn them for illegal hacks and can u make it so that it only reports about the people that use the illegal hacks with out the permisions in the permissions plugin or something like that that would be really helpfull :) roughtoast
-
View User Profile
-
Send Message
Posted Nov 15, 2012@asofold
What does savebackconfig do? Been trying to find documentation on it but cant.
-
View User Profile
-
Send Message
Posted Nov 15, 2012Minecraft 1.4.4
Get a version for Minecraft 1.4.4 at our Jenkins site: http://www.nocheatplus.org:8080/
Users of CompatNoCheatPlus must also update, available at the same site.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@skyshiny99
Yea liquids need some improvements still. Thanks for the report, would be very nice if you could make a ticket :)
-
View User Profile
-
Send Message
Posted Nov 15, 2012(sorry for my bad english)
With Nodus, I can activate sprint while I'm in water. So I can sprint while I'm swimming.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@EricPickup
Please before stating such about "this plugin" make sure you have the latest version of NoCheatplus for your MC version :) !
You are running a long outdated build (1.3.2), at least try the latest 1.4.2 compatible version available at BukkitDev or download a dev version from our Jenkins site (http://www.nocheatplus.org:8080/job/NoCheatPlus/).
-
View User Profile
-
Send Message
Posted Nov 14, 2012Thanks Friends!
-
View User Profile
-
Send Message
Posted Nov 14, 2012@Redletteredition
Just go do ./plugins/NoCheatPlus and delete the configuration.yml then start up your server and you will get a new updated configuration file.
-
View User Profile
-
Send Message
Posted Nov 14, 2012Hey guys. This may be an easy one for you. I am running 1.4.2 (Craftbukkit) and all seems to work good only I get a log message that says, "NCP: Your configuration may be outdated. Some settings could have changed, you should regenerate it." Although I don't really remember how to regenerate it. Whats the best thing to do?
-
View User Profile
-
Send Message
Posted Nov 14, 2012Getting this error with 1.4.4 craftbukkit and latest recommended build of NCP.
2012-11-15 03:33:32 [SEVERE] Could not pass event PlayerMoveEvent to NoCheatPlus v3.7.4-b123 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:217) at net.minecraft.server.Packet10Flying.handle(SourceFile:136) at net.minecraft.server.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:112) at net.minecraft.server.ServerConnection.b(SourceFile:39) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:595) at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:222) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:493) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:426) at net.minecraft.server.ThreadServerApplication.run(SourceFile:856) Caused by: java.lang.IllegalAccessError: tried to access field net.minecraft.server.Block.minX from class fr.neatmonster.nocheatplus.utilities.BlockProperties at fr.neatmonster.nocheatplus.utilities.BlockProperties.isPassable(BlockProperties.java:819) at fr.neatmonster.nocheatplus.checks.moving.Passable.check(Passable.java:24) at fr.neatmonster.nocheatplus.checks.moving.MovingListener.onPlayerMove(MovingListener.java:357) at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 14 more
-
View User Profile
-
Send Message
Posted Nov 13, 2012@AlexM850
The pull request that @asofold was talking about is this one:
https://github.com/NoCheatPlus/NoCheatPlus/pull/4
-
View User Profile
-
Send Message
Posted Nov 13, 2012@asofold
Sounds great ill be looking forward to it. I actually believe it may be able to via the permission for the radar the the essentials MOTD "&" codes.
-
View User Profile
-
Send Message
Posted Nov 13, 2012@chris_king
@MyPictures
Actually that is just the fact that the client assumes blocks to be placed until the server tells otherwise. The block is never placed server side, just client-side. So if the players can "fly" that way, then you have a fly or high jump bypass simply.
Concerning doors: they are unsafe basically, no too good chances for a simple remedy. Doors are so thin, that a client could just move over them given enough speed, for which the client probably not even needs a speed hack, given potions. To prevent such one would have to add extra checks. Also to make piston entrances rock solid, one would have to avoid the exact diagonal move somehow, so you end up with pistons coming from both sides and repeaters powering through walls for the moment. Most clients (if not all) are not yet optimized for that, but will at some point.
@AlexM850
I am not sure if that is possible right now - if it is, then it will be in the permissions section (done by permissions...). But i will probably have to add such, there is a pull request pending for this.
-
View User Profile
-
Send Message
Posted Nov 13, 2012How can i enable Rei's mini map for only Player map instead of the whole radar map? Is there a possible way to do so? I've seen it done on other servers and maybe im just not doing it correctly.
-
View User Profile
-
Send Message
Posted Nov 13, 2012@chris_king
Whats your NoCheatPlus and CB version?
You can do that in the config:
But it would be horrible to build with this config because NC+ would throw out a VL for every block that has been placed too fast (3-4 seconds). So I don't really recommend doing that and I'm not even sure if that would fix your issue.
To the NoClip question: If you use a version of NC+ that includes the "Passable" check then NC+ will prevent the players from going through normal blocks (noclip). Even if it lags they shouldn't be able to walk trough walls.
NoClip and doors (or just lag as you say): Currently NC+ ignores doors for "Passable" because we had some issues with false positives with them. We planed to add such a check in the later future but it will take some time of course.
-
View User Profile
-
Send Message
Posted Nov 13, 2012Not sure if this is anything you can take care of but... is it possible to prevent users from placing another block right away? Say the moment they place one block it counts 3 or 4 seconds before another block can be placed? Or something like that?
The problem is lag. People take advantage of lag to allow themselves to get into places they shouldn't be. Protection stones usually deletes an illegal block. Sometimes though the lag causes delay and the block is placed but isn't removed until the server catches up. Know what I mean? This allows users to hop over walls anywhere from 2 to 6 blocks high or even more, depending on how much lag there is.
There has to be a way to prevent people from cheating like this! They can't be using lag to their advantage just to jump higher than they should. That's not right. I already spoke to the developers of Protection Stones and World Guard, and they say there isn't anything they can do cuz lag is just lag and there isn't much to do about lag. But I disagree. There has to be something that can be done to prevent this cheat. Its still cheating, and this plugin is suppose to prevent that, right? Cheating is cheating and something should be done about this. Thanks.
I'm just asking if you could put your heads together and think-up a way to stop people from taking advantage of lag like this. Cuz even when walking through doors. Lwc has a lock. Its locked. But if you open a door, and its lagged. Then it allows people to walk through the door and the server forgets and this allows the person to enter rooms they shouldn't be in. All because of lag. Its an issue that really needs something done about it. I'm not sure what, but you guys are geniuses so you'll think of something, right? Thank you very much.
-
View User Profile
-
Send Message
Posted Nov 13, 2012@ShadowKillerx
Depends, development builds tend to have experimental features or imbalances. In this case build 241 should be pretty good, containinng a range of fixes and improvements. Unfortunately i have little feedback on it, so i am reluctant to promote i too aggressively, yet.
Concerning the experimental "managelisteners" setting of b241 i have no reliable performance data for comparison (the data of one big server for the default setting which uses the option seems ok, but i can't tell the difference in performance), but it can be safely disabled without any penalty, at present.
@shukamu
Please make a ticket (and use a paste if possible), if possible with more log input, is that all? Looks like your server ran out of memory simply. To judge it we need more information, like server size , memory size, (maybe pm plugins), NCP configuration. Please create a ticket for it.
-
View User Profile
-
Send Message
Posted Nov 13, 20122012-11-13 14:35:47 [SEVERE] Could not pass event PlayerMoveEvent to NoCheatPlus v3.8.0-RC-b207 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:218) at net.minecraftserverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:70) at net.minecraft.server.Packet10Flying.handle(SourceFile:136) at net.minecraft.server.NetworkManager.b(NetworkManager.java:282) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:111) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:578) at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:215) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:495) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:428) at net.minecraft.server.ThreadServerApplication.run(SourceFile:818) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.HashMap.resize(Unknown Source) at java.util.HashMap.addEntry(Unknown Source) at java.util.HashMap.put(Unknown Source) at fr.neatmonster.nocheatplus.utilities.BlockCache.getTypeId(BlockCache.java:125) at fr.neatmonster.nocheatplus.utilities.BlockProperties.isOnGround(BlockProperties.java:1105) at fr.neatmonster.nocheatplus.utilities.PlayerLocation.isOnGround(PlayerLocation.java:330) at fr.neatmonster.nocheatplus.checks.moving.SurvivalFly.check(SurvivalFly.java:100) at fr.neatmonster.nocheatplus.checks.moving.MovingListener.onPlayerMove(MovingListener.java:400) at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 15 more
-
View User Profile
-
Send Message
Posted Nov 13, 2012I have one simple question, which version of NCP should I use at my server? Officialy aproved version on BukkitDev or Recommended dev. versions?
Cuz mabey dev versions have fixed or improved something?