SafeGuard

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 reload aplica as alterações sem reiniciar.
Os segredos (chave de licença, webhook do Discord) nunca vão no 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:

RegraQuandoO que acontece
honeypotEvento honeypot disparadoQuarentena, revisão da staff, captura de ecrã
extremeRisco ≥ 95 e "ban gate" abertoBanimento permanente
criticalRisco ≥ 80Quarentena, revisão da staff, captura de ecrã
highRisco ≥ 60Revisão da staff
suspiciousRisco ≥ 40Vigiar

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.

Durante as primeiras semanas recomendamos punições só com revisão da staff, ou o modo aprendizagem da página do servidor, para veres como as deteções se comportam no teu servidor antes de ativar banimentos automáticos.

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.