Deteções
Risco em vez de bans por um alerta
Cada deteção tem um peso e uma confiança. O risco do jogador (0–100) soma essas contribuições por categoria e desce com o tempo. As deteções fracas ou ambíguas (heartbeats em falta, uma única amostra de combate) têm um teto por amostra, por isso uma ocorrência isolada nunca chega a uma punição.
- Sinais do servidor (posições, entidades, danos, eventos, dinheiro) são a base das decisões.
- Sinais do cliente (comandos de menus, resources injetados, modo espectador) valem metade e nunca levam sozinhos a um ban automático.
- Quando a staff marca deteções como falso positivo ou confirmada, o SafeGuard ajusta o peso desse tipo no teu servidor (a partir de 20 veredictos).
Contra menus de cheats
Os menus mais usados (Eulen, Skript, e menus Lua executados através deles) mudam constantemente para não serem reconhecidos no computador do jogador. Por isso o SafeGuard concentra-se no que eles fazem no servidor, que é igual seja qual for o menu:
- teleportar, voar, noclip (incluindo com colisão desligada), super salto, velocidade, invisibilidade;
- godmode (dano que não baixa a vida), vida e colete acima do máximo;
- matar ou tazar jogadores com armas que não estão na mão, tiros através de paredes, aimbot (viragens bruscas que acabam sempre no alvo) e silent aim (acertos com a mira ao lado da vítima);
- explodir jogadores à distância, explosões invisíveis ou em spam;
- largar props gigantes, criar dezenas de entidades, efeitos de partículas enormes;
- tirar jogadores de carros, congelá-los ou desarmá-los;
- disparar eventos de pagamento e itens ("money exploits") de scripts populares;
- ganhar dinheiro ou itens fora do normal;
- carros que não sofrem dano debaixo de fogo (godmode de veículo);
- mensagens de chat ou nomes com HTML/JavaScript que correm no ecrã dos outros jogadores.
Movimento e godmode: confirmação contextual
Noclip não é confirmado por distância isolada. A decisão combina deslocamento e velocidade com velocidade física incompatível e/ou colisão desativada, exclui veículo, queda, ragdoll, attachment e transições de mundo, e exige strikes consecutivos acima do limiar de confiança. Leituras normais reduzem a confiança. Spawn/entrada, revive, teleportes autorizados, interiores e routing buckets têm grace period.
Godmode também não é confirmado pela flag de invencibilidade sozinha. Exige dano recebido observado pelo servidor, várias leituras sem redução de vida/colete e um mínimo de dano acumulado. Morte, revive, grace period e permissões temporárias autorizadas limpam a sequência. A evidência inclui os valores/contexto que contribuíram para a confiança.
Modo aprendizagem
Na página de cada servidor tens um interruptor para o modo aprendizagem. Enquanto estiver ligado, o SafeGuard deteta, pontua e reporta tudo como sempre, mas não pune ninguém automaticamente: cada punição fica registada como "o que as regras teriam feito".
O relatório, que se mantém depois de o desligares, mostra para cada tipo de deteção quantos jogadores assinalou:
- Ruidosa: assinala 10 % ou mais dos jogadores. No teu servidor isso é quase sempre jogo normal (um script de corridas, um mapa com saltos). O SafeGuard sugere uma sensibilidade mais tolerante, que aplicas com um clique (fica uma nova versão da configuração, reversível em Regras).
- Rever: alguns jogadores. Vê-os antes de automatizar.
- Fiável: só jogadores isolados, como costuma ser a batota real. É seguro deixar as regras agir.
Recomendamos usá-lo na primeira semana depois de instalar e sempre que instales scripts grandes.
Todas as deteções
| Categoria | Deteção | Código | Peso |
|---|---|---|---|
| Integridade | Heartbeats em falta | integrity.heartbeat_missed | 4 |
| Integridade | Falha na sequência de heartbeats | integrity.heartbeat_gap | 3 |
| Integridade | Heartbeat repetido | integrity.heartbeat_replay | 15 |
| Integridade | Desafio-resposta falhou | integrity.challenge_failed | 15 |
| Integridade | Token de sessão inválido | integrity.token_mismatch | 8 |
| Integridade | Cliente do anticheat ausente | integrity.client_absent | 10 |
| Integridade | Cliente reiniciado | integrity.repeated_hello | 8 |
| Integridade | Excesso de telemetria | integrity.telemetry_flood | 15 |
| Integridade | Telemetria malformada | integrity.malformed_telemetry | 10 |
| Integridade | Posição cliente/servidor diferente | integrity.position_mismatch | 10 |
| Movimento | Teleporte | movement.teleport | 10 |
| Movimento | Speed hack (a pé) | movement.speed | 12 |
| Movimento | Noclip | movement.noclip | 15 |
| Movimento | Voo | movement.fly | 15 |
| Movimento | Super salto | movement.super_jump | 10 |
| Movimento | Velocidade do veículo | movement.vehicle_speed | 10 |
| Movimento | Invisível | movement.invisible | 25 |
| Movimento | Modificador de vida | movement.health_modifier | 35 |
| Movimento | Modificador de colete | movement.armor_modifier | 35 |
| Movimento | Modelo de ped bloqueado | movement.ped_change | 30 |
| Movimento | Espectar / freecam | movement.spectate | 15 |
| Movimento | Lugar de condutor tomado à distância | movement.vehicle_hijack | 35 |
| Movimento | Godmode | movement.godmode | 30 |
| Movimento | Veículo que não sofre dano | movement.vehicle_godmode | 30 |
| Armas | Arma proibida | weapon.blacklisted | 45 |
| Armas | Arma dada a outro ped | weapon.give_other | 40 |
| Armas | Modificador de dano | weapon.damage_modifier | 25 |
| Armas | Disparo rápido | weapon.rapid_fire | 20 |
| Armas | Arma fora do inventário | weapon.not_in_inventory | 40 |
| Combate | Ângulo de acerto impossível | combat.impossible_angle | 20 |
| Combate | Mira instantânea (aim snap) | combat.aim_snap | 15 |
| Combate | Taxa de headshots anormal | combat.headshot_ratio | 20 |
| Combate | Acerto sem linha de visão | combat.no_line_of_sight | 20 |
| Combate | Acerto além do alcance da arma | combat.out_of_range | 30 |
| Combate | Vários jogadores atingidos de uma vez | combat.multi_target | 40 |
| Combate | Dano com uma arma que não está na mão | combat.weapon_mismatch | 35 |
| Combate | Demasiadas mortes por minuto | combat.kill_rate | 20 |
| Combate | Silent aim (acertos com a mira ao lado do alvo) | combat.silent_aim | 30 |
| Combate | Aimbot (viragens bruscas repetidas até ao alvo) | combat.aimbot | 35 |
| Combate | Tazer de longe ou em série | combat.taser_abuse | 30 |
| Combate | Golpe corpo a corpo de longe (kill player) | combat.melee_range | 35 |
| Entidades | Modelo de entidade proibido | entity.blacklisted_model | 35 |
| Entidades | Spam de entidades | entity.spam | 30 |
| Entidades | Spawn em massa | entity.mass_spawn | 45 |
| Entidades | Chuva de carros | entity.vehicle_rain | 45 |
| Entidades | Explosão proibida | entity.explosion_blacklisted | 40 |
| Entidades | Explosão invisível / silenciosa | entity.explosion_invisible | 40 |
| Entidades | Spam de explosões | entity.explosion_spam | 35 |
| Entidades | Explosão remota | entity.explosion_remote | 35 |
| Entidades | Abuso de eventos do jogo | entity.game_event_abuse | 25 |
| Entidades | Eventos de jogo contra outros jogadores | entity.player_tampering | 35 |
| Entidades | Objetos presos a outros jogadores | entity.attach_to_player | 35 |
| Eventos | Evento honeypot | event.honeypot | 80 |
| Eventos | Evento proibido | event.forbidden | 50 |
| Eventos | Tentativa de exploit num script que este servidor não usa | event.exploit_probe | 40 |
| Eventos | Varrimento de eventos de exploit em scripts que este servidor não usa | event.exploit_sweep | 100 |
| Eventos | Argumentos de evento inválidos | event.schema_violation | 15 |
| Eventos | Limite de eventos excedido | event.rate_limit | 10 |
| Eventos | Evento sem permissão | event.permission | 20 |
| Eventos | Evento demasiado longe | event.distance | 15 |
| Eventos | Spam de eventos | event.spam | 20 |
| Eventos | HTML ou script no chat | event.markup_injection | 45 |
| Eventos | Rajada de muitos eventos diferentes | event.fanout | 40 |
| Economia | Pico de dinheiro | economy.money_spike | 25 |
| Economia | Limite da economia excedido | economy.limit_exceeded | 30 |
| Economia | Duplicação | economy.duplication | 40 |
| Executor | Comando proibido | executor.blacklisted_command | 45 |
| Executor | Resource desconhecido | executor.unknown_resource | 35 |
| Executor | Variável global suspeita | executor.suspicious_global | 20 |
| Executor | Resource do anticheat parado | executor.resource_stopped | 20 |
| Integridade | Godmode ativo no jogador (cliente) | integrity.local_godmode | 15 |
| Integridade | Visão térmica ou noturna a pé | integrity.vision_mode | 8 |
| Integridade | Todos os jogadores no mapa (blips de ESP) | integrity.player_blips | 10 |
| Movimento | Câmara longe do jogador (freecam) | movement.freecam | 15 |
| Movimento | Potência do veículo aumentada | movement.vehicle_boost | 20 |
Relatório semanal
Todas as semanas os proprietários e admins recebem um resumo por e-mail: deteções, banimentos (automáticos e manuais), recursos à espera de decisão e os jogadores mais suspeitos. Os canais de Discord com o evento Relatório semanal também o recebem. Desliga-se em Definições.
Falsos positivos
Se uma deteção disparar sem razão:
- Marca-a como falso positivo na página da deteção.
- Se continuar, baixa a sensibilidade dela em Regras → Deteções.
- Para scripts que teleportam jogadores (garagens, casas, prisão), usa o export
allowTeleport(ver Scripts e integrações). - Conta-nos no Discord com o código da deteção: ajuda-nos a afinar os limites para todos.