NoCheat

Thank You!
Thanks to everyone who used and liked this plugin. I've set the plugin to "abandoned" status myself (that's why there is a red box above this text), because it describes best the current status of this plugin. Thanks to everyone that supported me during the year of development, with money, bug reports or simply kind words.
What now?
NoCheat 3.5.0 no longer works with recent CraftBukkit build and you will no longer get any updates or support from me anymore.
If you want to see the original version of this description page for this plugin, you can find a copy of it here: Original plugin description
Replacements for NoCheat
Check out these plugins.
NoCheat+
It is based on NoCheat's code and is therefore similar in how it works. But it also adds a ton of new features. You can find it HERE.
NoCheat Classic
It is the original NoCheat without any modifications beyond what is necessary to make it work on modern CraftBukkit versions. If you like NoCheat exactly the way it is, this may be what you are looking for. You can find it HERE.
AntiCheat
Is a new plugin that's built from scratch. That means it will behave and feel different to NoCheat. I'm sure the developer appreciates new users and bug reports. Get it HERE.
Make your own
Don't like the presented alternatives? You may just create your own plugin instead. The source code for NoCheat is HERE.
-
View User Profile
-
Send Message
Posted Jan 8, 2012I really appreciate you putting the drop-prevention in it. Before I had to use a buggy plugin preventing ALL dropping for the new group in creative, but now I can set a limit to it to prevent only hacking.
Thanks again.Viller =)
-
View User Profile
-
Send Message
Posted Jan 8, 2012On some server zombe flymode are not allowed, and i think they use nocheat, So how i can do that? I mean fully stop zombe flymode from the root when we press F
-
View User Profile
-
Send Message
Posted Jan 7, 2012Hoe to log reach actions?
I have
logging.filelevel = low
logging.consolelevel = off
logging.chatlevel = low
blockbreak.reach.actions.0 = reachLog blockbreakCancel
blockplace.reach.actions.0 = reachLog blockplaceCancel
The action is canceled, but I'm not getting as much logs as I want (in chat).
edit: [INFO] NC: ro_The_Wizard failed blockbreak.reach tried to interact with a block over distance 0.67. VL 16
I don't get a log if the distance is over .67.
Also it is possible to stop speed block placing?
I'm testing with epsilon and I can place blocks very fast.
edit2: also in 2.19 spamkick works but in 2.24 it doesn't.
-
View User Profile
-
Send Message
Posted Jan 6, 2012@Crayder
You can add that yourself.
Write in your actions.txt a new line:
You can choose whatever you want instead of "banHammer" (it's just a name for this action). Instead of the "x" write a number that defines how many times per minute a player has to fail a check to really get banned. And you can (and probably should) replace "ban [player]" with whatever your ban command looks like (different plugins offer different types of ban commands). E.g. maybe your ban command allows to set a ban time and a reason for the ban like "/ban playername 10m Banned for cheating", then you'd use instead
Now that you have defined what the action "banhammer" is, you can add it to checks of your choice, by appending it to the list of actions that is already defined there. E.g. if you want people to get banned when spamming a lot instead of getting kicked, edit in your config.txt the line:
and set it to
You can define and run pretty much any command you want in this way (not only "/ban").
-
View User Profile
-
Send Message
Posted Jan 5, 2012@Evenprime85
Thanks a lot for your reply. At the moment we're indeed ignoring most messages because NoCheat cancels the event.
-
View User Profile
-
Send Message
Posted Jan 5, 2012Any plans to ever add automated banning support to this plugin once a particular VL is exceeded or once NC has been triggered a certain number of times for a player?
-
View User Profile
-
Send Message
Posted Jan 5, 2012I just wanted to say.
I LOVE THIS PLUGIN!!!!!!!!!!!!!!!!!!!!!
With all the new hacks coming out. I hate AVO idiots! And there is a new group of people whoses sole purpose is to take down and destroy servers. Thank freaking gourd you made this plugin and your keeping it up!
If your a server owner and you dont have this plugin, McBans and Hawkeye..your SCREWED!!! And a really good firewall for Ddos Hackers...
Next Server Donation goes to you Sir EvenPrime85!
-
View User Profile
-
Send Message
Posted Jan 5, 2012@Katorone
It's always hard to explicitely say what is cheating or not. In general, all checks that are related to movement can be failed due to lag (usually the "morepackets" check), mistakes made by NoCheat (e.g. a good way to fail NoCheats movement check is by bunny-hopping across a frozen lake) or similar.
It also shouldn't be necessary to confront players at all, because NoCheat will by default prevent the cheating or severly reduce its effectiveness. So unless someone manages to fail one and the same check over and over without being able to say what he did, it's probably best to ignore the messages completely.
@worstboy32
Took me long enough to find a way to do that without causing lots of other problems in the process (e.g. directly kicking a player while he drops an item -> bad idea, server crashes :/ - had to work around that kind of problem a lot).
-
View User Profile
-
Send Message
Posted Jan 5, 2012I'm afraid i'm a bit of a noob concerning cheats & nocheat, so i'm not really confident when confronting people with the warnings nocheat gives me. They claim they're lagged or that 'it just happened'.
Would it be possible to tell me which cheat warnings can be caused by a lagging client, or which warning are with 100% certainty caused by a hacked/modded client?
I've read the moving-check pages, but it's not exactly "clicking" for me about when to know 100% sure the user is cheating.
Thanks in advance! Kat
-
View User Profile
-
Send Message
Posted Jan 5, 2012Thanks for adding the item drop check :D
-
View User Profile
-
Send Message
Posted Jan 5, 2012@deleted_7536780
Should be fixed in newest version.
@Crayder
No, it hasn't. I tried once and failed. It's not possible (for me) to do in a reliable way.
NoCheat v2.24:
-
View User Profile
-
Send Message
Posted Jan 5, 201222:28:13 [SEVERE] Could not pass event PLAYER_TELEPORT to NoCheat java.lang.NullPointerException at cc.co.evenprime.bukkit.nocheat.NoCheat.getConfig(NoCheat.java:130) at cc.co.evenprime.bukkit.nocheat.NoCheat.getConfig(NoCheat.java:123) at cc.co.evenprime.bukkit.nocheat.player.NoCheatPlayerImpl.refresh(NoCheatPlayerImpl.java:34) at cc.co.evenprime.bukkit.nocheat.data.PlayerManager.getPlayer(PlayerManager.java:44) at cc.co.evenprime.bukkit.nocheat.NoCheat.getPlayer(NoCheat.java:216) at cc.co.evenprime.bukkit.nocheat.checks.inventory.InventoryEventManager.handlePlayerTeleportEvent(InventoryEventManager.java:37) at cc.co.evenprime.bukkit.nocheat.events.EventManagerImpl$PlayerL.onPlayerTeleport(EventManagerImpl.java:229) at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:324) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339) at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:297) at org.bukkit.craftbukkit.entity.CraftEntity.teleport(CraftEntity.java:156) at com.garbagemule.MobArena.Arena.movePlayerToEntry(Arena.java:631) at com.garbagemule.MobArena.Arena.playerLeave(Arena.java:365) at com.garbagemule.MobArena.Arena.forceEnd(Arena.java:314) at com.garbagemule.MobArena.MobArena.onDisable(MobArena.java:93) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:230) at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:991) at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:296) at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:289) at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:181) at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:376) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:455) at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
-
View User Profile
-
Send Message
Posted Jan 4, 2012@Evenprime85
ahh bummer, this should be fixed :(
So if the server doesn't do it, why can't you check packet data and deny the velocity changes if they are absurd? rather than altering velocity changes in other ways? Since you're already doing the checks, wouldn't it be easier to check and store the data yourself .. in a thread (since the packet processing is threaded right?) rather than forcing all the checks at intervals etc.
-
View User Profile
-
Send Message
Posted Jan 4, 2012Does NoCheat have any protection against noclipping? I suspect a player on my server is using it but hate making subjective bans.
-
View User Profile
-
Send Message
Posted Jan 4, 2012@XeonG8
Not possible.
@Sleaker
There is no way to keep track of the velocity of a player serverside. "player.getVelocity()" is completely useless, as it will always provide false information. The only time when it does give correct results, is immediatly after "player.setVelocity(...)" is called (and only if you don't use Spout. If you use Spout, even that will be wrong). That's why I have to try to at least estimate (generously ) how fast the player may be moving for the next few seconds. :(
-
View User Profile
-
Send Message
Posted Jan 2, 2012@Evenprime85
Seems like you could do a check on velocity to make sure the player isn't moving too fast when the data is sent from client -> server. SpoutPlugin will remain patched, just not adding new features.
-
View User Profile
-
Send Message
Posted Jan 1, 2012Is there any way to get fly speed ranks.. so new players can only fly at turtle speeds, while higher ranks get more permission exemption to go faster?
So some more permissions that can be configured for that sort of thing?
-
View User Profile
-
Send Message
Posted Jan 1, 2012@LordKainzo
Afaik Bukkit doesn't offer any ways to access or modify Packet data. If I could do that, a lot of my problems would vanish instantly. The only way I can think of would be to use the Spout plugin, but they declared that they'll drop support for Bukkit as soon as their own project is up and running (which would leave me with the same problem again).
Also, that wouldn't help me with those "velocity" related mechanisms, because those are broken by design. They violate the server-client principle of the client sending instructions and the server executing them, by reversing it.
Hm, that MobArena thing is really strange. I'll have to find out what it is trying to do while the server shuts down, that causes players to get broken that way during teleports. The "crash" shouldn't have any impact anyway though, it probably just doesn't look too nice.
-
View User Profile
-
Send Message
Posted Jan 1, 2012@Evenprime85
Wonderful patch - I'll be testing it asap. I'm going to repeat what Sleaker has said that may be more efficient for other plugins that do things that may appear players are hacking.
Don't think im coming off telling you how to do your plugin, I love it and I'm very greatful you are doing it!
Sleaker: (from IRC)
NoCheat could monitor packet data, not server-data. It could easily verify integrity of packet data based on what is going on logically. Sleaker - ie - why is the client issuing move events nowhere near? (ex) why is the client trying to issue 5 attack packets on 5 different mobs? / why is the client trying to attack a mob behind it? /
Either way - keep up the -awesome- work and we love you!
So there's no need for server-side checks just hooking packet data.
EDIT:
After testing 2.23 - Superjump still gets pushed to the ground like they were hacking, /Rocket seems to work just fine however.
Nocheat still blowing up onTeleport when MobArena is stopped (server /stop)
-
View User Profile
-
Send Message
Posted Jan 1, 2012@wide_load
Well spotted. English isn't my first language. My first language is German, and "direct" is spelled "direkt" in German. That's where the k came from. That doesn't change that it was unintentional and I changed it now. :)
NoCheat 2.23: