Garry's Mod Leaks

LSAC AntiCheat | LEAKED!

Submitted by iilyu_xandro, , Thread ID: 241647

Thread Closed
01-05-2022, 01:44 PM
#1
Install & Config
Installation
Ez Guide
The installation process is amazingly easy. Drag and drop the addon to your servers garrysmod folder. It should add the files into the already existing directories addons/ and lua/. Reboot your server and it's installed! You can now open the menu by typing !ac in chat. If it doesn't you either A. Are not an admin on your servers admin mod or B. copied the wrong directory or into the wrong directory.
After Installation you may configure the addon to your liking. However, I recommend leaving as much as possible to default settings because if you don't know what you are doing this may cause more harm than good.
To open the menu you need admin rights in your admin mod.
If you are not sure whether you have installed it right, check the server ( NOT CLIENT ) console. The Anti-Cheat will always print there that it loaded.
Download: https://anonfiles.com/f4qbc2c1ya/lsac_rar
[Image: 3l2DkxY.png]
Video Tutorial on how to Drag n Drop (you dont need this if you know how to drag n drop)
Configuration
Video Tutorial where someone disables some false detections in around 30 seconds
(this can also be used to disable other modules like the bot)
Changing Anti-Cheat Settings
Within the menu there is a settings tab with all of the settings of the Anti-Cheat.
You can view all of them as they currently are and change them to your liking. For example, lets say we want to change the message being shown to cheaters. We simply go to the settings and click on punishments. Then we get a nice overview of all current punishment settings.
[Image: J9DFWBh.png]
Then we can proceed to click on "Message to show cheaters" and we get a popup enabling us to enter a new message for cheaters to see when they are getting punished.
[Image: v6TRXBN.png]
Changing or disabling individual detections and cheat preventions
The detections and cheat prevention are all within the modules tab. You can press the ON/OFF button to disable individual detections. Clicking on the wrench to the right will allow you to perform several sub actions. The most useful of these is "Reset Module" in case you changed something and thus the module doesn't work as intended now.
I recommend leaving as much as possible on default! Do not change stuff if you do not know what you are doing!!
[Image: 2MzpyIA.png]
Some (only few) off the modules have internal module settings. You can open these by clicking on the module of your liking or pressing "Module Options".
[Image: uS3u0A9.png]

To reset a setting a internal which you changed simply do a right mouse click instead of a left one, and it will go back to its default value without affecting the other internal settings of said module.


Usage & Discord, etc
Letting it do its job
If you have installed it successfully as described in the install guide the Anti-Cheat will be doing its job automatically. It does everything in the background without you having to worry about anything. Once someone cheats, they will get punished by the Anti-Cheat and logged as well as kicked or banned from your server depending on your configuration.
Reading the Logs
New detections do not instantly show up in the menu, it takes a few minutes. However, once the detection has been stored savely and the detection storage has reloaded you will be able to see it there. All the other logs are pretty much instant and easily visible in their respective tabs.
[Image: XlQ4xbG.png]
Checking whether it works
A example of me checking detections, video
Checking the menu
After having followed the Installation guide you may wonder whether the addon works. There are a few things you should be able to do. First off, when you type !ac in chat the menu should open. Please note that you HAVE TO BE A ADMIN IN YOUR ADMIN MOD (e.g. ULX, sAdmin, serverguard, w.e. you're using) to open the menu.
[Image: lMqNl27.png]
Checking whether it detects people
After you have ensured the menu works, I recommend checking whether it detects people. This is really simple as well. Simply type !testcheat in the chat and a testcheat will load. [Image: GHYkmRc.png]
You can open it by holding insert Smile
[Image: HgT2yC1.png]
Just click on AntiAim or any other cheat and you will get detected. You can see the detection in two ways.
Method A:
In the menu you can see that you have been detected and are about to be punished. Just open it by typing !ac after having enabled a cheat a
[Image: hqwvb8j.png]
Method B:
your client console will show it with your sid64
[Image: g5bbVff.png]

(optional) LeyScreencaps Integration for automatic Screencaptures
IF YOU WANT AUTOMATIC SCREEN CAPTURES YOU NEED TO BUY LEYSCREENCAPS.
The addons integrate with each other seamlessly. Setup LeyScreencaps and the AntiCheat as you normally would. Once you have done that, you're done. The addons handle the rest. Additionally, if you have the Discord Integration Setup, you will see the screenshots of the cheaters there as well (where the Pikachu is in this example).
[Image: yO15i6J.png]
(optional) Discord Integration
IF YOU WANT DISCORD INTEGRATION YOU NEED TO HAVE A DISCORD SERVER
The addon seamlessly integrates with Discord WebHooks.
You will first need your discord webhook link.
You get the link from Discord. You can get it by going to your discord channel and then click on integrations
[Image: gG19Eca.png]
You can then click on WebHooks. After that you should see a menu with all the WebHooks for your Discord Server.
[Image: 4EJDOw8.png]
Press New Webhook and your Discord WebHook link will be generated. You can copy it by clicking on the "Copy WebHook URL" Button. PLEASE STORE THIS LINK SOMEWHERE. You need this for the next step.
[Image: fV43vHn.png]
Next up we do the ingame configuration. Type !ac in your server to open the menu. Proceed to go settings and then sentry.
You should see this window.
[Image: wZKFZJD.png]
Click on Discord Integration URL and enter the URL from the previous step. Then click on Discord Integration to activate the integration.

The final step is installing the Serverside Module for the discord integration from https://github.com/timschumi/gmod-chttp/releases. You have to download the FITTING module for your servertype. If you for example run a linux gmod server you need gmsv_chttp_linux.dll. A norma lwindows server needs gmsv_chttp_win32.dll. Drag and drop in your SERVERS lua/bin/ and the module is installed.
[Image: MMdHXvX.png]
And you're done! Just change the map and you can test it.
To check whether it works you can either wait or follow the steps for testing whether the detection algorithms work. If you see a new notification in your discord when a cheater gets banned, you can be sure you have setup the discord integration properly.
If you don't then there's 2 possibilities
A: you fucked up the module install. You can see this in your server console due to the following error.
Example of failed module install:
[Image: GDhhMKb.png]
B: you fucked up configuring the link. There is not directly a error for this, but it means you did not create the discord webhook properly. try again and you'll succeed.. i hope... pl

(optional) MySQL Integration
Installing MySQLoo module
MySQL integration is really simple. Install MySQLoo from here https://github.com/FredyH/MySQLOO/releases/tag/9.6.1 .
Then next up, drag and drop it to your servers garrysmod/lua/bin folder. Very important, gotta be that one. It's the same where e.g. gmsv_gmbc is inside.
[Image: 5HiOfwW.png]
Configuring your MySQL integration
Look inside of the folder of the addon for mysql_example.txt
[Image: ifTwqFX.png]
Open mysql_example.txt and copy the contents to your clipboard. Create a new file called mysql.txt and paste the contents inside.
After that, you can open the mysql.txt you just created and enter your MySQL credentials
[Image: UfwYkqC.png]
Now just save the file, reload the map and you're done Smile

pPLEEeeease don't make tickets WITHOUT READING THIS SHIT. this answers ALL OF YOUR SETUP ISSUEs. ThiS is bETTER THAN SUPPORT. PLS. plSSSS

FAQ
AimbotBreakerBot Issues
The bot is flickering around!


example: [warning_system] addons/warning_system/lua/warning_system_7452/client/categories/online_players.lua:76: attempt to concatenate local 'sID' (a nil value)
The easy way: Just disable the AimbotBreakerBot. That's the easiest fix that any server owner can take.
Alternatively, if you can code, just make your servers script(s) ignore the bot, or also if you can code, maybe try sticking something like the following somewhere
local meta = FindMetaTable("Player")
meta.oSteamID = meta.oSteamID or meta.SteamID
function meta:SteamID()
local val = self:oSteamID()
return val != nil and val != NULL and val or "STEAM_0:1:7099"
end
meta.oSteamID64 = meta.oSteamID64 or meta.SteamID64
function meta:SteamID64()
local val = self:oSteamID64()
return val != nil and val != NULL and val or "76561197960279927"
end


General Questions
I started getting Lua errors involving LSAC.logs not loaded etc help/addon does not load
Try removing all addons from your server except the AntiCheat. If it works, then you know one of your addons is overwriting one of the basic gmod functionalities (which it really shouldn't). An example of this might leaks which contain viruses or backdoors inside or bad "exploit scanners" from steam workshop.
If the message contains the word "unsuccessful" or "HTTP Connection Error" somewhere, chances are it's just a connectivity issue related to your server itself not letting HTTP requests through and it will go away on its own

VPN Blocker is on and I can't join my server!
Run this in your console:
lua_run LSAC.cheatpreventions.modules["VPN Blocker"]:SetEnabled(false)


How many servers can I use this on?
As long as they are yours I couldn't care less. However, once it has been detected that you are giving it to other people aka leaking, your license will be automatically revoked.
Why did the AntiCheat Kick for Bind Mismatch (or some other detection) - KICK NOT BAN?
When the AntiCheat isn't 100% certain whether it's a cheater it only kicks. This for example is the case in detections which can be set off by configs such as bind mismatch where someone may trigger it by writing the command in the console or using a console script.
Are the Viewangle Detections safe?
This depends on your server. Viewangle out of Bounds and Set may get triggered depending on the server configuration. If your server uses SetEyeAngles or SetViewAngles in a script on the clientside, or with invalid data, this may set off the AntiCheat. But the AC has enough redundancy - if you are unsure whether this is what is happening feel free to turn them off.
If you want those badly because they're cool but are willing to sacrifice some other addons (like thirdperson addons) you can put this in your lua/autorun/ on your server.
if (SERVER) then AddCSLuaFile() end

FindMetaTable("CUserCmd").SetViewAngles = function() end
FindMetaTable("Player").SetEyeAngles = function() end


What about permissions?
By default, all admins on your server have read access (opening the menu and seeing things) while superadmins on your servers have write access (opening the menu, seeing things plus editing things).
You can change that behavior by using the LSAC.userperms.PlayerHasPermission hook and doing something like
local mycoolgroups = {}
mycoolgroups["donator"] = true
mycoolgroups["girlfriend"] = true

hook.Add("LSAC.userperms.PlayerHasPermission", "ishouldntbedoingthis", function(ply, perm)
if (perm:find(".read")) then -- who can read from the menu
if (mycoolgroups[ply:GetUserGroup()]) then
return true
end

if (ply:IsAdmin()) then
return true
end
end
-- everyone who can read and write using the menu
if (ply:IsSuperAdmin()) then
return true
end
-- everyone not affected by these rules can not do anything with the menu (no read, no write)
return false
end)

What permissions are there?
  • menu.read
  • menu.write
  • menu.abortpunishments.write
  • menu.statistics.read
  • menu.accesslogs.read
  • menu.detectionlogs.read
  • menu.errorlogs.read
  • menu.genericlogs.read
  • menu.modules.read
  • menu.modules.write
  • menu.settings.read
  • menu.settings.write
  • testcheat.read
For Developers:
hooks:
  • LSAC.punishments.CustomBan(ply, sid64, sid32, nick, reason, bantime, module, confidencescore, logonly, kickonly, extrainformation) - Incase you have a custom banning routine
  • LSAC.punishments.PunishUser(ply, sid64, nick, reason, bantime, module, confidencescore, action, extrainformation) - Incase you have a custom punishment routine
  • LSAC.logs.CreatePlayerLog(ply, module, reason, kickonly, logonly) - Called when we start to create a log
  • LSAC.logs.CreatePlayerLog.ShouldAddDelayedInformation(ply, module, reason, kickonly, logonly, counter) - Should we add delayed information for this players log?
  • LSAC.logs.CreatePlayerLog.FetchDelayedInformation(ply, module, reason, kickonly, logonly, counter) - The delayed information (i.e. a dump of the players lua)
  • LSAC.logs.CreatePlayerLog.Done(ply, steamid64, module, kickonly, logonly, counter) - Called when the delayed information etc has been fetched and log is savedf
  • LSAC.menu.InstalledMenu(ply) - Called when the menu is installed on someone
  • LSAC.discordintegration.DiscordNotificationImage(ply, sid64, module, reason, kickonly, logonly) - Hook to change the notificationimage for the webhook
  • LSAC.OnDetectionToggled(module, active) - Called when a detection gets disabled or enabled
  • LSAC.OnPreventionToggled(module, active) - Called when a cheat prevention gets disabled or enabled
  • LSAC.userperms.PlayerHasPermission(ply, permission) - Incase you wanna add custom permission handling
fns:
  • LSAChookAddOverwrite (overwrite before ac runs) - implement own handler
  • LSAC.detections:Register(name, default_disabled, extras) - register your own detections
  • LSAC.infractions:TriggerInfraction(ply, registeredmodule,, accuracy, logonly, kickonly, extrainfo) - trigger your own detections
  • LSAC.cheatpreventions:Register(name, default_disabled, extras) - register your own cheat preventions
  • LSAC.menu.OpenMenu(ply) - open the menu for a specific player
toggles:
  • LSAChookErrorLogging (set before ac runs) - always log errors in the anticheats modules but less performance (should not be needed)
  • LSAC.detections:ExtAddonIgnorePlayerForSeconds(ply, key, val) - do not scan this player for val seconds, key is used to identify which addon or addon part is responsible. ALWAYS call it with nil as the value after manually if your seconds are large

LSAChookAddOverwrite can be used incase you want to implement your own handler for the anticheats hooks. The AntiCheat by default has its own hook routine which is basically just like my own hook.Call. When you create the LSAChookAddOverwrite global, the function gets called like a hook.Add but for the acs funcs. So for every detection, cheatprevention etc the AC will call your function with the function it wants to hook e.g. Think and the hook fn e.g. local function callEveryThink() print("hi") end. I offer this in my API so owners of big servers with lots of players can implement their own hook.Call-like things which for example only make the AntiCheat scan one specific player or certain players in chunks (e.g. only 10 or 20 at once and switching every minute).

LSAC.detections:Register and LSAC.cheatpreventions:Register share the same interface. Extras can be set if you want a callback to be called before the CheatPrevention or Detection is registered. This is useful incase of e.g. let's say wanting to overwrite some of the default AntiCheat module functionality (like, e.g. making something which can not be disabled in settings). default_disabled just means whether it should be disabled by default. If you set this to true when registering one, then it's disabled by default and needs to be enabled in the menu by the user themselves. Theeeen, about name, that's just the name of the module you wanna register. E.g. MyOwnAimbotDetection.
When calling LSAC.detections:Register or LSAC.cheatpreventions:Register you get a new module. The API supports: module:AddSetting(name, type, defaultvalue, description, callbackOnChanged), module:IsEnabled, module:GetSetting (for getting a setting you've added, I recommend using the callBackOnChanged). Then there's also module:SetEnabled for enabling/disabling a module, module:AddHook (is like hook.Add but without a custom name) and module:SetDescription for setting a modules description. Lastly there's module:IsVolatile(ply) to check whether a player is stable/should be scanned for cheats. This is only ever important for detections which depend on stuff like checking players movements

Credits
During the development of this some people have contributed in some way or another, no matter how small I believe every contribution is worth a mention. Since I like giving credit, I would like to mention everybody here and thank all of you
[Image: 4]
  • Leystryku (me)
  • Architecture
  • Design
  • Programming
  • Ideas
  • Detections
  • Cheat Preventions
  • All the modules etc, basically the entire codebase
  • Alex Grist
  • External Dependency - NetStream Library
  • Francois Perrad
  • External Dependency - MessagePack
  • MeepDarknessMeep
  • External Dependency - JS Lua Minifier
  • Willox
  • External Dependency - GBLC
  • TimSchumi
  • External Dependency - CHTTP
  • motato
  • External Dependency - One function, DrawBouncingText
  • SrLion
  • NetStream Messagepack - making me use those dependencies and help with setting those up
  • Ling
  • Testing
  • Phoenixmeister
  • Testing
  • blobles
  • Testing
  • BullyHunter
  • Testing
  • SMAC
  • Inspiration - For some detection methods
  • IDM Core& KeyGen
  • Inspiration - For CreditsScreen
  • !cake
  • Inspiration - Some of the menus requirements ideas
  • MEITdev
  • Sprite - For the Crow in the Credits
  • Utopia
  • Sprite - The banner
  • Garry & TEAM FACEPUNCH
  • Target Application - Created the application this was made for (Garry's Mod)
  • Beast & CupCakeR & Craphead
  • Le Review <3

Users browsing this thread: 2 Guest(s)