OAC Lite - Anti-cheat

no longer being supported

Really nice job, and finally an anti-cheat that is on github. Will request some updates on it later maybe.

This script kicks people who have scripts with CreateMove (smartsnap, plenty of other scripts) even if the server has sv_allowcslua 1.

Don’t join servers with sv_allowcslua 1, this script and without smartsnap while having smartsnap installed. Chances are high that you’ll be wrongly punished.

If you have any clientside post-process scripts, don’t join servers with this installed: the RenderScreenspaceEffects hook is bannable too.

Also, questionable ethics:
[lua]OAC_CRASH = function( ply ) ply:SendLua( “cam.End2D3D();” ); end[/lua]

You’ll get punished for running any of these scripts (except the boat and the map):

What is it with all the anti-cheats suddenly popping up on facepunch.

This anti-cheat was designed to stop people cheating as portably as possible. The chances that someone cares about cheats being used on their server and has sv_allowcslua set to 0 is quite slim.

And it checks if the file that’s creating the hooks is on the server; if it is it will do nothing about it.

Also, OAC_KICK is used by default.

OAC.Action = OAC_KICK;

Someone asked why there aren’t.

Bad way for an anticheat to work IMO

Garry should just remember how he solved ConVar-force problems with sv_scriptenforcer and do the same with sv_allowcslua. That would stop 99% of the cheaters.

Stringtables are already used enough

So what no one else has released theirs, pretty good in my opinion?

Well he might already have something in place to detect if sv_allowcslua has modified, and later on ban them from gmod in massive chunks like he did with cheaters.cfg.

[editline]16th April 2013[/editline]

Then suggest a better way to do it, or even send in pull requests to improve it.

// Ur don fuked now niga
MsgN( “[OAC] Initialized!” );


Here’s what I used on SammyServers for about a year. Caught SethHack, ColdFire, and most other cheats. Most of it is unlikely to work now, but someone may find it useful. I was quite proud of the ping-pong system I had setup.

Server: http://puu.sh/2B328
Client: http://puu.sh/2B33f

I’m pretty much out of the GMod scene now anyway. It’s been fun. Had my SteamID hardcoded into client.dll for a while in GM12. <3 Garry. If SammyServers had anything you guys want, throw me a message.

Oh and here’s a dump of my detections table; just over 900 people. http://puu.sh/2B3ic - I wouldn’t recommend using it, and some of detections are only “possible” cheats, so be wary if you use it for anything. “Incorrect source for RunConsoleCommand: =?” is generally SethHack and the rest are self explanatory. I didn’t kick or ban for SethHack because I was a moderator over there for some time, which led to my SteamID being hardcoded in GMod, but, that’s all in the past. You may see some Convict Gaming records there too as I shared it with a buddy of mine there. Anyway, see you around everyone.

Fucking bullshit. People are allowed to criticise. They don’t have to do it better themselves to say something is shit.

[editline]16th April 2013[/editline]

NEVER rely on chances if the result of a failed experiment has disastrous results (in this case innocent players getting kicked).
NEVER trust server owners to be intelligent and understand the restrictions of your script. They * aren’t. *

And the files of the mods given in the link of my previous post are probably not on the server. Join the wrong server with these mods and you’ll get kicked on join. Your script is an active discouragement of genuine clientside scripts, and I call for people not to install this, not until you disable it when the server allows clientside Lua.

Oh, is it? Why don’t you show us all how this mysterious server side anti-cheat works rather than saying everything else doesn’t?

That’s more than likely not going to happen.

Code to bypass that is still on paste-bin and like you said, that’s not going to work for GM13. Additionally; how are local tables “protected structs”? Matrices are the closest thing to Lua tables in the C language.

I’m going to find a better way of detecting if hooks are “bad”, I might just bottleneck CUserCmd.SetViewAngles so that attempts to use this more than x times a second could be logged / kicked for. I could do the same with cam.Start2D3D and cam.Start3D.

You can criticise all you want, but if you’re pedalling bullshit it’s going to be ignored.

True, I guess it doesn’t help if popular gamemode devs force there gamemode to turn it off either :wink:

That’s been discussed already. It’s a default. It’s in InitPostEntity because setting the default before that has no effect.

Up until GMod 13 was released, scriptenforcer was off by default. I genuinely don’t understand Garry’s sudden hate for clientside scripts. Clientside scripts can be very useful and/or cool in DarkRP (look at the effects link given above). Disabling them would be a true shame.

In my opinion it’s Garry who denied everyone their clientside scripts in gamemodes such as sandbox. Why can’t you have nice extra post-processing effects (or other scripts) in sandbox? Is cheating that much of a problem in the sandbox gamemode!?

Did they enable Script enforcer by default? What a shame. There aren’t really a lot of gamemodes where you can cheat either. TTT and DarkRP are the only ones which comes to mind.

Those two happen to be the most popular and cheating can be done in pretty much any game, be it chams/esp/wallhack for really pretty much any game, or aimbots / triggerbots / no spread for DarkRP, Zombie Survival, Stronghold, TTT and anything else that involves shooting people

I worded my previous post poorly. What I meant to say is that there are a lot of gamemodes out there which there is no point in cheating at all.

But yeah, gamemodes which involve shooting at people are worth cheating in, one could say.