Installation
On this page
Requirements
- OneSync. The server events the checks use only exist with OneSync.
- Any framework: Qbox, QBCore, ESX, ND Core, ox_core or standalone, detected on its own.
- Optional: oxmysql for bans and cases. Tables are made on start. Without it, they are kept in
bans.jsonandcases.jsonin the resource folder. - Optional: screenshot-basic for screenshots.
Steps
- Put the
saf-anticheatfolder in yourresourcesfolder. - Add it to
server.cfg, after your framework and oxmysql:server.cfgensure saf-anticheat - Give your staff the panel and alerts:server.cfg
add_ace group.admin ac.staff allow add_ace group.admin ac.kick allow add_ace group.admin ac.ban allow add_ace group.superadmin ac.ip allow add_ace group.superadmin ac.exempt allow - Add the engine settings to
server.cfg. - Set
Config.Discord.Webhookfor logs andConfig.Screenshots.Webhookfor screenshots. Empty turns them off. - Turn on shadow mode for the first week:
Config.ShadowMode = true. See Rollout. - Start the server.
The console prints the framework, the storage it uses, how many events the firewall watches, which engine settings are missing, and whether automatic bans are on.
Permissions
| ACE | Gives |
|---|---|
ac.staff | Open the panel, see players, flags and cases, get alerts, mark cases, screenshot, warn, spectate, goto, bring, clear a score, see the checks screen |
ac.kick | Kick from the panel |
ac.ban | Ban and unban, from the panel and with acban / acunban |
ac.ip | See IP addresses |
ac.exempt | Set a player to log-only for their session |
Framework admin groups in Config.AdminGroups (god, admin, superadmin) get every permission. To map
permissions differently, see Permissions or replace
Bridge.Can in Custom servers.
Updating
Replace every file except your custom/ folder. Keep your config changes in custom/shared/ so an update
doesn't undo them. See Custom servers.