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 Mar 29, 2014Hey I was wondering if there was a way to add a delay to chat so players can only send a message every 5 seconds or something so the people don't just talk in 1 word sentences or spam. Looked through the config and config help but it's very confusing...
Thanks.
-
View User Profile
-
Send Message
Posted Mar 29, 2014@asofold
Is it possible to prevent/fix players from getting kicked when a boat? its been around for a long time and I dont think ive ever reported it.
-
View User Profile
-
Send Message
Posted Mar 29, 2014@dannob123
Try to increase your PermGen space by adding -XX:MaxPermSize=128M to your server startup file.
-
View User Profile
-
Send Message
Posted Mar 27, 2014@dannob123
Could you please edit your message and link a paste instead, e.g. http://dev.bukkit.org/paste/ with language set to "text only".
Since i don't have much context, i will ask:
-
View User Profile
-
Send Message
Posted Mar 27, 201427.03 16:22:19 [Server] WARN java.lang.OutOfMemoryError: PermGen space 27.03 16:22:17 [Server] WARN Exception in thread "MStore ExamineThread" 27.03 16:22:17 [Multicraft] Skipped 5 lines due to rate limit (30/s) 27.03 16:22:10 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchServerCommand(CraftServer.java:670) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.Bukkit.reload(Bukkit.java:279) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.reload(CraftServer.java:773) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:375) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:439) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:389) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:350) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at com.jackproehl.combatlog.CombatLog.onEnable(CombatLog.java:96) [?:?] 27.03 16:22:10 [Server] INFO at com.jackproehl.combatlog.CombatLog.initVars(CombatLog.java:128) [?:?] 27.03 16:22:10 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:356) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:423) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:62) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:73) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:217) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:77) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:10 [Server] INFO at java.net.URLClassLoader.findClass(URLClassLoader.java:354) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.security.AccessController.doPrivileged(Native Method) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.net.URLClassLoader$1.run(URLClassLoader.java:355) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.net.URLClassLoader$1.run(URLClassLoader.java:361) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.net.URLClassLoader.access$100(URLClassLoader.java:71) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO at java.lang.ClassLoader.defineClass1(Native Method) [?:1.7.0_11] 27.03 16:22:10 [Server] INFO java.lang.OutOfMemoryError: PermGen space 27.03 16:22:10 [Server] ERROR Error occurred while enabling CombatLog v1.0.3 (Is it up to date?) 27.03 16:22:10 [Multicraft] Skipped 63 lines due to rate limit (30/s) 27.03 16:22:09 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:375) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:439) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:389) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:350) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at fr.neatmonster.nocheatplus.NoCheatPlus.onEnable(NoCheatPlus.java:756) [?:?] 27.03 16:22:09 [Server] INFO at fr.neatmonster.nocheatplus.hooks.NCPExemptionManager.<clinit>(NCPExemptionManager.java:56) [?:?] 27.03 16:22:09 [Server] INFO at fr.neatmonster.nocheatplus.hooks.NCPExemptionManager.clear(NCPExemptionManager.java:65) [?:?] 27.03 16:22:09 [Server] INFO at fr.neatmonster.nocheatplus.checks.CheckType.<clinit>(CheckType.java:42) [?:?] 27.03 16:22:09 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:356) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:423) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:62) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:73) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:217) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:77) [cbbeta.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 27.03 16:22:09 [Server] INFO at java.net.URLClassLoader.findClass(URLClassLoader.java:354) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.security.AccessController.doPrivileged(Native Method) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.net.URLClassLoader$1.run(URLClassLoader.java:355) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.net.URLClassLoader$1.run(URLClassLoader.java:361) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.net.URLClassLoader.access$100(URLClassLoader.java:71) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO at java.lang.ClassLoader.defineClass1(Native Method) [?:1.7.0_11] 27.03 16:22:09 [Server] INFO java.lang.OutOfMemoryError: PermGen space 27.03 16:22:09 [Server] ERROR Error occurred while enabling NoCheatPlus v3.10.8-RC-sMD5NET-b664 (Is it up to date?)
-
View User Profile
-
Send Message
Posted Mar 25, 2014@baksovic111
Please provide the output of the "ncp version" command. That is on of these "impossible" cases - can you pm a plugin list as well? Are your plugins up to date (any auth plugins that might trick with internals, combat logging, NPCs...)?
@daveytje21
Are there any check alerts? Does "ncp info PLAYERNAME" show anything about morepacketscehicle - if so, did you try disabling checks.moving.morepacketsvehicle ? At the cost of players maybe speeding with boats and similar.
-
View User Profile
-
Send Message
Posted Mar 25, 2014Dear creators,
Im currently having a big bug with NCP And train carts. NCP Detects a train thats riding harder then 0.5 with a player in it as a cheater and moves it back. Thats where the buggy part comes because if that happens everything gets messed up and you will bug out (Cant even open your escape screen.)
-
View User Profile
-
Send Message
Posted Mar 25, 2014[07:58:00] [Server thread/ERROR]: [NoCheatPlus] JoinLeaveListener(fr.neatmonster.nocheatplus.checks.moving.MovingListener) generated an exception (join): NullPointerException [07:58:00] [Server thread/ERROR]: java.lang.NullPointerException at fr.neatmonster.nocheatplus.checks.moving.MovingData.hasSetBackWorldChanged(MovingData.java:390) at fr.neatmonster.nocheatplus.checks.moving.MovingListener.playerJoins(MovingListener.java:1184) at fr.neatmonster.nocheatplus.NoCheatPlus.onJoinLow(NoCheatPlus.java:1043) at fr.neatmonster.nocheatplus.NoCheatPlus$7.onPlayerJoinLow(NoCheatPlus.java:1000) at sun.reflect.GeneratedMethodAccessor470.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:318) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:487) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:472) at net.minecraft.server.v1_7_R1.PlayerList.c(PlayerList.java:245) at net.minecraft.server.v1_7_R1.PlayerList.a(PlayerList.java:135) at net.minecraft.server.v1_7_R1.LoginListener.c(LoginListener.java:87) at net.minecraft.server.v1_7_R1.LoginListener.a(LoginListener.java:42) at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:150) at net.minecraft.server.v1_7_R1.ServerConnection.c(ServerConnection.java:77) at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:700) at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:273) at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:562) at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:469) at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)
-
View User Profile
-
Send Message
Posted Mar 24, 2014@chsedv
Development build 676 contains a module for 1.7.5. I have shortly reviewed Minecraft changes related to it, but it is not much tested yet. Also it contains not too much tested alterations to some fight checks.
-
View User Profile
-
Send Message
Posted Mar 24, 2014@RedZephon9
No way to really support them. That mod technically is a "cheat" because it can move items around inventories at insane speed. I recommend to disable or give those players the permission to bypass the FastClick check if you want to allow them using InvTweaks.
-
View User Profile
-
Send Message
Posted Mar 24, 2014Is there anyway to add support for inventory sorting programs? They are getting caught by no cheat + but my server wants to allow those plugins.
-
View User Profile
-
Send Message
Posted Mar 24, 2014@chsedv
I will update for CraftBukkit, might make it in a couple of hours (not due to the complexity of the task itself). It will be a development build, and there will be changes to the fight.reach and fight.direction checks, which i can not 100% predict as of now. Beta or full release will be around thursday, most likely.
-
View User Profile
-
Send Message
Posted Mar 24, 2014Pls update to Craftbukket or Spigot 1.7.5-R01
-
View User Profile
-
Send Message
Posted Mar 24, 2014@Wizel603
For an individual player this could be annoying, because some servers have skill-plugins like mcMMO which allow leveling something with taking fall damage.
Also false positives are possible for players trying something difficult, e.g. to retrieve their items (desperately). Also thinkable that they do it with lava, not sure that would need more clients for real spamming.
It certainly is possible to set the death message to *nothing* for the case of repeated equaling death messages or causes, as an add-in. The kicking is possible too, but might have to be deactivated by default.
Should probably make a ticket for better discussion with others.
-
View User Profile
-
Send Message
Posted Mar 24, 2014Is there anything ncp can do against death spamming? The latest I've seen on my server is a hacked client will connect and the client will start causing "... fell from a high place" messages at a rate of every 5 seconds, indefinitely. When several players are doing this at the same time it of course multiplies the problem.
To make matters worse, this activity appears to cause the server to continuously generate a very large amount of outbound traffic for each spamming client during this time, which can flood the server's connection to the point of affecting all players even if they are ignoring chat.
One thing that comes to mind would be to add a respawn timeout to ncp (in a similar style to ncp's relog timeout) which will kick a player if they continue to respawn too fast.
-
View User Profile
-
Send Message
Posted Mar 22, 2014@istegosaurus3
Well i don't exactly know what their settings are, and what exactly the data was, on base of which you were banned for.
In general i would not ban for checks that are affected by network delay too much.
If however you reach a very high violation level (constantly...) with the improbable check, then you might indeed be cheating, with a not too much adapted cheat client - still rare reports of false positives even for that check (some stuck-in-something loop) show that banning is very much a two-sided blade thing.
Basically i suggest they check the data and settings for if those might be prone to lag (network or server) - i could offer some assistance over BukkitDev/pm for them.
-
View User Profile
-
Send Message
Posted Mar 22, 2014@asofold
somthing similar like that but players cant shut the doors at al they can open and close but then it randomly gets stuck..
-
View User Profile
-
Send Message
Posted Mar 22, 2014@asofold
http://www.vikkcraft.com/index.php?threads/istegosaurus-this-time-i-have-it.2195/#post-9348 If you could have a look at this
-
View User Profile
-
Send Message
Posted Mar 22, 2014@asofold
no
-
View User Profile
-
Send Message
Posted Mar 22, 2014@istegosaurus3
Did you get some statement of the chacks and max. VL that lead to
kickingbanning?