Configuração
Há dois sítios onde se configura o SafeGuard:
- Dashboard → Regras: com a cloud ligada, é aqui que se configuram as deteções e punições de cada servidor. Cada alteração fica versionada e auditada, chega ao servidor em segundos e podes Repor uma versão anterior no Histórico.
- `config.lua`: framework, staff, idioma, provas e alertas locais, e a política de proteção usada sem a cloud (
Config.Protection).sg reloadaplica as alterações sem reiniciar.
config.lua: ficam no server.cfg com set.Deteções
Em Regras → Deteções podes desligar qualquer deteção ou mudar a sensibilidade (0 = mais tolerante, 100 = mais agressiva). Se uma deteção der falsos positivos no teu servidor, baixa a sensibilidade dela em vez de a desligar, e marca as deteções erradas como falso positivo: o SafeGuard aprende e passa a dar-lhes menos peso.
Punições
As punições dependem do risco do jogador (0–100), que soma o peso de cada deteção e desce com o tempo. As regras por defeito:
| Regra | Quando | O que acontece |
|---|---|---|
| honeypot | Evento honeypot disparado | Quarentena, revisão da staff, captura de ecrã |
| extreme | Risco ≥ 95 e "ban gate" aberto | Banimento permanente |
| critical | Risco ≥ 80 | Quarentena, revisão da staff, captura de ecrã |
| high | Risco ≥ 60 | Revisão da staff |
| suspicious | Risco ≥ 40 | Vigiar |
O ban gate protege contra bans injustos: só abre com pelo menos um sinal verificado pelo servidor com confiança de 80% ou mais, ou com sinais em duas categorias independentes. Sinais que só vêm do cliente nunca levam a um ban automático. Quarentena significa que o jogador continua ligado mas não consegue causar dano, criar entidades nem ganhar dinheiro até ser libertado.
Listas recomendadas e armadilhas
Em Regras → Entidades e Regras → Armas as listas são uma checklist por categoria (com pesquisa). Vêm marcadas por omissão com o que os menus de batota usam; desmarca o que o teu servidor usa e escreve em Outros modelos addon ou hashes. Restaurar as escolhas do SafeGuard volta ao início.
- Armas: railgun, armas de raios, minigun, lança-mísseis, lança-granadas, bombas adesivas e minas são retiradas a quem as tiver.
- Veículos, props e animais: apagados assim que o jogo de um jogador os cria. Tanques, jatos militares, Oppressor, Deluxo e outros veículos armados, props gigantes que os menus largam em cima dos jogadores (roda-gigante, moinho, OVNI) e baleias/tubarões em terra.
- Comandos de menus conhecidos: comandos que menus como Eulen ou Lynx registam no jogo.
- Explosões recomendadas: dirigível, canhão orbital, munição explosiva e outras que servidores de roleplay não têm.
- Armadilhas de exploits: apanham menus a disparar eventos de pagamentos, itens e prisão de scripts populares que o teu servidor não usa. Os eventos dos scripts que usas nunca são armadilhados. Uma armadilha sozinha é só uma nota, porque um script substituto pode dispará-la; três armadilhas diferentes em dois minutos são um menu a varrer o servidor, e isso dá ban.
Se o teu servidor usar mesmo alguma destas armas, props ou explosões, desliga a lista respetiva ou acrescenta o modelo aos modelos permitidos.
Proteções extra
- Chuva de carros: vários veículos criados longe do jogador (ou muito acima dele) em pouco tempo são bloqueados. Um carro num lugar da garagem nunca conta.
- Tazer: tazer a mais de 22 m ou em série (mais de 15 por minuto).
- Kill player: socos e armas brancas que acertam a mais de 8 m.
- Explosões, fogo e partículas: em Regras → Entidades podes bloqueá-los por completo. Desligado por omissão, porque granadas, molotovs e carros a arder fazem parte do jogo.
- Zonas seguras: no
config.lua(Config.SafeZones), áreas onde os teus scripts impedem que os jogadores levem dano. Dentro delas, dano sem efeito não conta como godmode. - Ban por prova combinada: em Regras → Punições. Bane um jogador quando dois tipos independentes de cheat são confirmados em 10 minutos, por exemplo noclip e godmode. Começa em Só observar, que regista quem teria sido banido sem punir ninguém; verifica esses jogadores antes de ligar os bans.
- Anti VPN: no
config.lua(Config.AntiVpn), desligado por omissão. Verifica o IP de quem se liga com a API pública do proxycheck.io e recusa VPN e proxies; como envia o IP a esse serviço, menciona-o na tua política de privacidade. Sem chave faz cerca de 100 verificações por dia; uma chave grátis (set safeguard_proxycheck_key "…"no server.cfg) aumenta o limite. Se o serviço não responder, o jogador entra.
Exceções (bypass)
Em Regras → Exceções podes isentar um jogador de certas categorias durante um tempo (por exemplo, um evento com teleportes). A staff com safeguard.bypass (ou a permissão do framework configurada) nunca é pontuada.
config.lua (modo local)
Config.Protection = {
movement = { maxFootSpeed = 14, teleportDistance = 120, vehicleHijack = true, vehicleGodmode = true },
weapons = { recommendedBlacklist = true, blacklist = { 'weapon_rpg' }, inventoryCheck = true, inventoryIgnored = { 'weapon_flashlight' } },
entities = { recommendedModels = true, blockedModels = { 'prop_beach_fire' }, attachAllowedModels = { 'p_cs_cuffs_02_s' } },
explosions = { recommendedTypes = true, maxPerWindow = 5 },
eventShield = { exploitProbes = true, markupInjection = true, honeypots = { 'myserver:adminGiveMoney' }, fanout = { maxDistinct = 20, windowMs = 5000 } },
combat = { maxKillsPerMinute = 8 },
detections = { ['movement.spectate'] = { enabled = false } },
}Os nomes são os mesmos do dashboard. Nomes desconhecidos aparecem na consola, por isso um erro de escrita nunca passa despercebido.