SAF Anticheat
Server-side anticheat with scores, evidence and a staff panel, built not to false-ban.
- Status
- Coming soon
- Version
- 1.0.0
- Resource
- saf-anticheat
- Frameworks
- Qbox, QBCore, ESX, ND Core, ox_core, standalone
- Requires
- OneSync
- Optional
- oxmysql, screenshot-basic
- Database
- oxmysql, or JSON files
- Open files
- config.lua, bridge/, custom/

On this page
SAF Anticheat catches cheaters by checking what they do on your server: the entities they create, the explosions and damage they send, where they move and the events they fire. Those checks run on the server, so a cheat menu can't turn them off. A small client side adds cheap checks for known menus, but nothing important depends on it.
How it works
| Part | What it does |
|---|---|
| Flags | Every check raises a flag first, with the numbers that triggered it |
| Score | Flags add to a score that drains over time, so a lag spike fades and a run of weak flags becomes a case |
| Actions | Log, alert, screenshot, kick or ban, from the flag's own action or the score, whichever is higher |
| Blocks | Blacklisted entities, bad explosions, weapons given to other players and task clears are cancelled before anyone sees them |
| Evidence | Where it happened, the last minute of movement, the events and entities, and a screenshot when the score gets high |
| Staff panel | Live players by score, a flag feed, a player view with a map trail and score timeline, cases and bans |
Built not to false-ban
Automatic bans are off until you turn them on, and then only for flags that can't happen legitimately. A new install should run a week in shadow mode first, where every check logs and nothing goes past an alert. See Rollout & engine settings.
Nobody is exempt by default, staff included. Staff tools that teleport or heal still raise a flag, at a lower severity, so every use is logged. You can add exemptions, and the panel lists every one.
Cost
One 1 Hz loop on the server. Everything else is event driven. No per-frame code on the client.