EventShield
Os menus de cheats disparam eventos do servidor com valores falsificados: pagamentos de trabalhos, itens, prisão de outros jogadores. O EventShield é uma firewall para esses eventos.
O que faz sem configurar nada
- Limite global de eventos por jogador (120 por segundo, por omissão).
- Armadilhas de exploits: eventos conhecidos de scripts populares que o teu servidor não usa. Um jogador que os dispare está a usar um menu.
- Honeypots e eventos proibidos que definires nas Regras.
Proteger os teus resources
Para validar os argumentos dos eventos de um resource, adiciona o include como primeiro script de servidor no fxmanifest.lua desse resource:
server_scripts {
'@safeguard/shield/server.lua', -- tem de ser o primeiro
'server/main.lua',
}Depois cria regras em Regras → EventShield, por exemplo:
| Evento | Regra |
|---|---|
shop:buy | argumento amount inteiro entre 1 e 10; 5 por minuto |
police:cuff | só com o emprego police e o jogador vivo |
atm:withdraw | o jogador tem de estar a menos de 3 m das coordenadas enviadas nos argumentos |
admin:giveMoney | proibido (bloqueado sempre) |
Se o SafeGuard parar, o include deixa passar tudo, por isso nunca parte o servidor.
Honeypots
Um honeypot é um evento que nenhum script legítimo usa. Qualquer jogador que o dispare fica em quarentena para revisão. Escolhe nomes plausíveis que não existam no teu servidor (por exemplo myserver:adminGiveMoney).
Modo monitorização
Cada regra pode estar em modo monitorizar: o evento passa e o SafeGuard só regista o que teria bloqueado. É a forma segura de testar uma regra num servidor com jogadores.