Detect and fight the exploitation of various flaws/bugs in Minecraft!

Features Permissions Commands Configuration Jenkins


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.

The following plugins might be useful to have a look at.

CompatNoCheatPlus (cncp)

Make plugins like mcMMO, Citizens, MagicSpells or MachinaCraft more compatbile with NoCheatPlus. Not all existing plugins are covered (yet), but you can leave a note or ticket request for cncp.


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".

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 EcoCityCraft.
  • Do not download from any other source, do not use jars other people send you.
  • Changes by build number can be examined in the Jenkins changes list.
  • All commits can be seen in the GitHub commit history.
  • Plugin statistics are no longer reported to


Documentation Resources

Contact us

  • Quick questions can be asked on this page,
    or on IRC (Server: | Default-Port: 6667 | SSL-Port: 6697 | Channel: #nocheat | Web client: WebIRC)
  • For real issues or feature requests please create a new ticket or add to an existing 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).

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of craftovski craftovski Nov 16, 2012 at 20:21 UTC - 0 likes

    Well im trying to cut all unnecessary actions that might increase lag or whateva.

  • Avatar of MyPictures MyPictures Nov 16, 2012 at 19:08 UTC - 0 likes

    @craftovski: Go

    Just open the config and do:

      active: false

    I don't really recommend doing that but you can if you want.


  • Avatar of craftovski craftovski Nov 16, 2012 at 17:58 UTC - 0 likes

    How can i disable all logging cuz i dont rly need it, what exactly to delete after log:__:0:5:if/icf/cif to disable logging.


  • Avatar of Mortalsinn Mortalsinn Nov 16, 2012 at 17:53 UTC - 0 likes

    @asofold: Go

    Yes, sorry I meant DisguiseCraft. Thanks for the fast reply :)

  • Avatar of asofold asofold Nov 16, 2012 at 16:46 UTC - 0 likes

    @Mortalsinn: Go

    That looks like DisguiseCraft ? Is it possible that that was a player vs disguise attack?

    I will add some security guard to dev version, because it makes sense. But this seems to be something strange" in terms of some list getting modified concurrently or similar. Seems Craftbukkits "unsafe list" got modified concurrently, or the iterator-pooling is buggy.

    Did this happen often ?

    Build 251 will catch the exception (though it does can not eliminate its cause).

    Last edited Nov 16, 2012 by asofold


    Latest beta release (+ 1.8.3, approved) NoCheatPlus 3.12.0-RC-sASO-b813
    (Development builds, 1.8: Jenkins)

  • Avatar of Mortalsinn Mortalsinn Nov 16, 2012 at 16:12 UTC - 0 likes

    Getting this error with Bukkit 1.4.4 build 2467 and NoCheatPlus 3.8.1-RC-b244

    by the way I did install MobDisguise - not sure if this is the cause or if this helpful info :P

    2012-11-16 08:07:19 [SEVERE] org.bukkit.event.EventException: GenericListener<org.bukkit.event.entity.EntityDamageEvent> @LOWEST encountered an exception for fr.neatmonster.nocheatplus.checks.fight.FightListener with method public void fr.neatmonster.nocheatplus.checks.fight.FightListener.onEntityDamage(org.bukkit.event.entity.EntityDamageEvent)
    	at fr.neatmonster.nocheatplus.event.GenericListener.onError(
    	at fr.neatmonster.nocheatplus.event.GenericListener.execute(
    	at org.bukkit.plugin.RegisteredListener.callEvent(
    	at org.bukkit.plugin.SimplePluginManager.fireEvent(
    	at org.bukkit.plugin.SimplePluginManager.callEvent(
    	at org.bukkit.craftbukkit.event.CraftEventFactory.callEvent(
    	at org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDamageEvent(
    	at org.bukkit.craftbukkit.event.CraftEventFactory.handleEntityDamageEvent(
    	at net.minecraft.server.EntityLiving.damageEntity(
    	at net.minecraft.server.EntityHuman.damageEntity(
    	at net.minecraft.server.EntityPlayer.damageEntity(
    	at net.minecraft.server.EntityHuman.attack(
    	at pgDev.bukkit.DisguiseCraft.listeners.DCMainListener.onDisguiseHit(
    	at sun.reflect.GeneratedMethodAccessor366.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.bukkit.plugin.RegisteredListener.callEvent(
    	at org.bukkit.plugin.SimplePluginManager.fireEvent(
    	at org.bukkit.plugin.SimplePluginManager.callEvent(
    	at pgDev.bukkit.DisguiseCraft.listeners.DCPacketListener$1.onPacketReceiving(
    	at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketRecieving(
    	at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(
    	at com.comphenix.protocol.injector.PacketFilterManager.invokePacketRecieving(
    	at com.comphenix.protocol.injector.PacketInjector.packetRecieved(
    	at com.comphenix.protocol.injector.PacketInjector.packetRecieved(
    	at com.comphenix.protocol.injector.ReadPacketModifier.intercept(
    	at net.minecraft.server.Packet7UseEntity$$EnhancerByCGLIB$$4e747c7b.a(<generated>)
    	at net.minecraft.server.Packet.a(
    	at net.minecraft.server.NetworkManager.i(
    	at net.minecraft.server.NetworkManager.c(
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at fr.neatmonster.nocheatplus.event.GenericListener.execute(
    	... 30 more
    Caused by: java.util.NoSuchElementException
    	at org.bukkit.craftbukkit.util.UnsafeList$
    	at fr.neatmonster.nocheatplus.utilities.PlayerLocation.isOnGround(
    	at fr.neatmonster.nocheatplus.checks.fight.Critical.check(
    	at fr.neatmonster.nocheatplus.checks.fight.FightListener.handleNormalDamage(
    	at fr.neatmonster.nocheatplus.checks.fight.FightListener.onEntityDamage(
    	... 34 more
    Last edited Nov 16, 2012 by Mortalsinn
  • Avatar of asofold asofold Nov 16, 2012 at 15:24 UTC - 0 likes

    @Dinastya: Go

    Please provide more information about which build exactly you are using and also which minecraft version. And what "can't jump down means"... logs?

  • Avatar of Dinastya Dinastya Nov 16, 2012 at 15:13 UTC - 0 likes

    What setting do i disable to stop it that players can't jump down from high distance?

    I have tried Fall damage etc but that all don't fix it.

    With recent dev builds players can't jump down in worldguard/faction regions where fall damage is disabled.


  • Avatar of MyPictures MyPictures Nov 16, 2012 at 11:45 UTC - 0 likes

    @PleaseCraftMe: Go

    The difference between CreativeControl and NoCheat+ is that NC+ can be completely managed with a permissions system. Also the most server owners that use NC+ want their complete server protected including nether and end.

    We should have a look at these then :) Please make a ticket with all your suggestions if you want.

  • Avatar of PleaseCraftMe PleaseCraftMe Nov 16, 2012 at 10:47 UTC - 0 likes

    Hi ! For me, the multiworld support is very bad :/

    • This is why I propose a system more effectively perform (hopefully) and not too complicated to implement.
    • Instead of creating ourselves by world files, the plugin automatically creates a folder "world" into the folder "NoCheatPlus" with one file per world that bears his name. "Ex: world.yml, world_nether.yml ..."
    • Then these files, for example, a line added "Enable plugin for this world: false / true". * Thus, you can easily disable the plugin without necessarily removing options world.
    • File "config.yml" in the root of the plugin will handle the basic configuration of the plugin.

    For un example, the plugin "CreativeControl" use this methode !

    Thanks and sorry for my bad english.


Date created
Apr 02, 2012
Last update
Mar 21, 2015
Development stage
GNU General Public License version 3 (GPLv3)
Curse link
Recent files