EventShield
Cheat menus trigger server events with forged values: job payouts, items, jailing other players. EventShield is a firewall for those events.
What it does with no setup
- A global limit of events per player (120 per second by default).
- Exploit traps: well-known events of popular scripts your server does not run. A player who triggers one is using a menu.
- Honeypots and forbidden events you define in Rules.
Protecting your resources
To validate the arguments of a resource's events, add the include as the first server script in that resource's fxmanifest.lua:
server_scripts {
'@safeguard/shield/server.lua', -- must be the first
'server/main.lua',
}Then create rules in Rules → EventShield, for example:
| Event | Rule |
|---|---|
shop:buy | argument amount an integer from 1 to 10; 5 per minute |
police:cuff | only with the police job and the player alive |
atm:withdraw | the player must be within 3 m of the coordinates sent in the arguments |
admin:giveMoney | forbidden (always blocked) |
If SafeGuard stops, the include lets everything through, so it never breaks the server.
Honeypots
A honeypot is an event no legitimate script uses. Any player who triggers it is quarantined for review. Pick plausible names that do not exist on your server (for example myserver:adminGiveMoney).
Monitor mode
Each rule can run in monitor mode: the event goes through and SafeGuard only records what it would have blocked. It is the safe way to try a rule on a live server.