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).
Please Update to 1.9.2
asofold, hi https://youtu.be/t6epkvjjQ5Y
Would be nice if you could add this to the default config:
blocks: ignorepassable: - IRON_TRAPDOOR
@asofold
Thank you so much ^_^
@JBuscus101
There is a permission to allow placing boats onto ground: nocheatplus.checks.blockplace.boatsanywhere
I'm afraid that one somehow didn't make it into the wiki page.
@YepImRobbie
For 1.9 you should use the latest development build of NCP: http://dev.bukkit.org/server-mods/nocheatplus/pages/nocheat-plus-development/jenkins/ You also should ensure to have the latest spigot build for 1.9 on.
Otherwise please post the output of the 'ncp version' command, so we know what server/plugin version you are using.
if people are stuck in fences near iron bars they get kicked for flying and can never rejoin :<
With this plugin players can't place boats on land "1.9" what do i need to turn off to allow this?
Players make packed ice boat roads its really fast and a good way to get around legit
Hi asofold,
I've got huge problems with SurvivalFly, there is this one case and because they fell between iron bars or were near iron bars it kept kicking for SurvivalFly for moving 0.46 blocks?
Please help, the only way I could fix was by removing the iron bars.
@Sitmobedaf
'Allow flight' can be problematic, because toggling flight leads to a slightly higher jumping/slope, so possible they're abusing that. Edit: also check if ignoreallowflight is set to true - it should be set to true, for the usual setup.
If you can get someone to demonstrate after you used 'ncp debug player PLAYER_NAME' it would be very interesting (/ncp remove PLAYER_NAME afterwards).
Concerning what we'll add to confine movement, it'll be a process of how/where to add in things. The current solution has been made to reduce false positives in the first place, because we can't progress if such a feature is unusable.
Restricting movement by looking direction is a good thing, however such needs much more testing and would need more (developer-) time to solve in a consistent way. One example is, that you can move up with elytra, however after reaching some already high speed. And with moving up, horizontal speed will decrease by some amount - in order to allow moving up while guarding against abuse, more strict envelope checks will be necessary, which will also need much more testing.
Current schedule for Elytra (possibly some off-hand changes come first, set before receiving this report):
The player is not in flying condition, and it has allowed Fly. That is, it is just in the air, but he is just fly. Is it possible to identify the player in a state of flight on the wings, and it just flew. Add controller prohibition of vertical movement upward, with the expectation of the previous speed. Control the speed depending on the direction of the angle.
Yes, it's my server, video player sent me, he has not provided any information.
@Sitmobedaf
Can't say much, other than i'm not suprised ('elytra support is very coarse, without safety nets').
Apart from that i would get pulled back when elytra makes me ascend (false positive). So likely the client does something different and/or there is different versions or configurations in use.
Is that your server, or a server you know anything about? Any other details known (can they go up more than 1,2 blocks or so)?
asofold, hello.
https://www.youtube.com/watch?v=hnyv4Q_y-1Y
@asofold
Ok, thanks. The issue I'm having must be when the player transitions from falling to gliding. I'll wait until you've attended to the issues and give another test then.
EDIT: Updated to build593 and elytra works like a charm. Thanks for updating!
@theritualsuffering
Elytra is checked by survivalfly when on ground (!), and by creativefly when gliding. The creativefly check has a configuration section for elytra, but the very high speeds reached aren't covered by it. In addition all sorts of transitions pose problems, like switching from gliding to falling, after which survivalfly would take over.
I hope i can iron out most issues today+tomorrow, elytra support is great at present.
I'm running the latest NCP build as of posting (950) and the latest CraftBukkit build as of posting (version git-Bukkit-8b69bdd (MC: 1.9) (Implementing API version 1.9-R0.1-SNAPSHOT)) and regular players can only glide when SurvivalFly checks are off. Is there some setting I'm missing? I don't want to fully enable survival fly, but would like Elytra to be able to glide without getting teleported back to their previous location.
@tcarey2015
Please be sure to use latest spigot + latest development build of NCP, there is no 1.9-compatible download on BukkitDev yet.
Some 1.9 features are not yet supported, but there will be more updates very soon.
@MarkElf2204
That's not entirely correct :).
The creativefly check is the last bastion against extreme speeding, so better not disable that one. Elytra is checked by both survivalfly and creativefly, so NCP will switch between, with creativefly applying if in-air.
The development builds for 1.9 contain a configuration for elytra within the creativefly model selction, which applies in-air only.
Elytra reaches hilarious horizontal speeds. The default config caps it at the rough maximum speed that you can reach in spectator mode with sprint on. And with elytra you would trigger creativefly roughly between 60-80 when you've set off about 256 height. I haven't tested yet what the actual maximum speed will be (256 -> void :p), perhaps it's not going that much above the default setting of '400 % of typical flying speed'.
The creativefly check just allows the maximum speed instantly, so more abuse is possible than just reaching a speed eventually. It'll be changed to distinguish ascend and descend, maximum horizontal gain and maximum horizontal speed, and a few other things.
@omgitsbob12
I don't know :). Currently i am a little too taxed and the others also can't do too much, so support and responding tickets already takes a lot of time that i would otherwise spend with advancing NCP towards something.
In general the long term plan is to change internals of NCP to be rather mod-independent, which will go for a lot of infrastructure like block shapes, algorithms, even a couple of checks may be made fully mod-independent. In addition there will be added registry and dependency layers (some concepts have already been added/tested, in simple form).
First priority is to get 1.9 working and to modernize fight checks, though. There is no specific plan nor any schedule to get a version for sponge or another mod implemented. If something like that happens, it'll be a transformation of internals in the first place, rather than creating and maintaining an extra plugin for sponge.
Will this be ported to Sponge?
@tcarey2015
You can either disable creativefly for the time being, or wait till @asofold gets the chance to add support for it. If I am not mistaken, the most disabling creative flight can do is allow players to fly at higher speed; if fast enough - flying into unloaded chunks - it can crash your server. I haven't used an elytra myself, however I don't believe it can reach speeds that can have players fly into unloaded chunks which is why I see just disabling creativefly within your config is the best option currently, unless you of coarse want to play around with values of it to attempt to allow it.
When using elytra with nocheatplus, the user gets "stuck" into teleporting backward over and over.. How to fix?
@Ashley912
Could you be more specific with 'doesn't work'? Certainly it's very raw and is cut at some hilarious speed. Transitions like lift-off might still be prolematice. Will soon update it, one small fix might be in the latest build.
Elytra is checked by creativefly, because it's some kind of flying/gliding. This was the fastest way to support leviation/elytra somehow. With elytra you'll still get checked by survivalfly, if you're on ground, so NCP will switch checks with running and jumping all the time. Perhaps we can nail it down further, if the API/server allow knowing if the player is really using elytra. There might also be issues due to the switching between checks. Is it completely unusable?