Anti-Cheat Roblox: Detector de Speed Hack e Teleport Hack
Gere um sistema anti-cheat server-side para monitorar deslocamentos impossíveis, mudanças suspeitas de velocidade e teletransportes não autorizados. O prompt prioriza redução de falsos positivos, levando em conta lag, spawning, veículos, plataformas móveis, teleporte legítimo e estados especiais do personagem.
Ideal para desenvolvedores que precisam de uma base profissional e extensível de detecção no Roblox Studio. O resultado solicitado inclui um Script Luau completo, comentado, configurável e pronto para ser inserido no ServerScriptService, além de orientações de teste e integração com a estrutura real do jogo.
Atue como um desenvolvedor Roblox Luau sênior, especializado em segurança multiplayer, sistemas server-authoritative e mitigação de exploits. Crie um Script Luau completo para detectar speed hack e teleport hack de forma confiável no servidor, pronto para colar no Roblox Studio. Antes de escrever o código, considere o contexto do meu jogo abaixo. Use os nomes e caminhos informados quando forem relevantes. Caso algum dado esteja ausente, assuma uma implementação segura e deixe constantes/configurações claras no início do script, sem inventar dependências obrigatórias. CONTEXTO DO MEU JOGO (vou preencher): - Nome do lugar/gênero do jogo: [PREENCHER] - Objetos, pastas e caminhos relevantes no Explorer: [PREENCHER] - RemoteEvents/RemoteFunctions existentes e respectivas finalidades: [PREENCHER] - Sistema de movimento especial (dash, sprint, double jump, grapple, flight, knockback etc.): [PREENCHER] - Formas legítimas de teleporte (portais, checkpoints, comandos admin, cutscenes, teleporte entre áreas): [PREENCHER] - Veículos, assentos, plataformas móveis ou personagens montados: [PREENCHER] - Ação desejada ao detectar suspeita (somente log, aviso, resetar posição, kick após reincidência): [PREENCHER] - Limites desejados, se já definidos (WalkSpeed, distância máxima, strikes): [PREENCHER] TIPO E LOCAL DO SCRIPT: gere um único Script de servidor para ser colocado em ServerScriptService, por exemplo com o nome AntiMovementExploitDetector.server.lua. Não crie LocalScript como mecanismo de autoridade. Se recomendar RemoteEvent ou ModuleScript opcional para integração futura, explique isso após o código, mas o script principal deve funcionar sozinho usando serviços nativos do Roblox. REQUISITOS TÉCNICOS OBRIGATÓRIOS: 1. Monitore jogadores no servidor usando Players, RunService e o HumanoidRootPart/AssemblyLinearVelocity, sem confiar em valores enviados pelo cliente. 2. Detecte speed hack por deslocamento horizontal incompatível com o tempo decorrido e com o WalkSpeed permitido, aplicando margem configurável para latência, física e pequenas variações de frame. Não use uma regra simplista que compare apenas Humanoid.WalkSpeed, pois exploiters podem alterar movimento sem necessariamente alterar essa propriedade no servidor. 3. Detecte teleport hack por saltos de posição acima de uma distância configurável dentro de um intervalo curto, mas evite falso positivo em spawn, respawn, streaming, quedas, estados de ragdoll, assentos/veículos, plataformas móveis e teletransportes aprovados. 4. Inclua uma configuração central no topo: intervalo de amostragem, multiplicadores de tolerância, velocidade horizontal máxima, distância máxima de salto, quantidade de strikes, janela de strikes, cooldown de detecção, modo Debug e ação disciplinar. Documente cada opção em comentários. 5. Implemente estado individual por jogador, com última posição válida, último instante de medição, contagem de strikes e timestamps. Faça limpeza completa em PlayerRemoving, CharacterRemoving e quando um novo Character for carregado, evitando vazamentos de memória e conexões duplicadas. 6. Crie uma API server-side simples e documentada para autorizar teleporte legítimo: por exemplo, uma função local bem identificada ou uso de Attributes no Player/Character como AllowServerTeleportUntil. Mostre como outros Scripts de servidor podem marcar uma exceção temporária antes de alterar CFrame/PivotTo. Nunca permita que um LocalScript ou RemoteEvent do cliente conceda essa autorização. 7. Quando houver violação, registre um aviso detalhado no servidor contendo UserId, nome, tipo da suspeita, distância, velocidade calculada, tolerância aplicada e strikes. A resposta padrão deve ser segura e configurável: restaurar a última posição válida quando possível e somente expulsar após reincidências. Não aplique banimento permanente nem DataStore automaticamente. 8. Se o jogo possuir RemoteEvents relacionados a dash, sprint ou teleporte, explique como validá-los no servidor: limites de frequência, distância, estado do personagem, permissões e posição de destino. Todo input de RemoteEvent/RemoteFunction deve ser validado no servidor; nunca confie no cliente para dano, moeda, inventário, velocidade, posição ou autorização de teleporte. 9. O código deve usar Luau moderno, nomes claros, comentários úteis, checks de nil e tratamento correto de Character, Humanoid e HumanoidRootPart. Evite loops desnecessariamente caros por jogador e não use APIs obsoletas. FORMATO OBRIGATÓRIO DA RESPOSTA: - Comece com um resumo curto da estratégia e das limitações inevitáveis de anti-cheat no Roblox. - Entregue o código integral em um único bloco markdown identificado exatamente como ```lua. O código deve estar completo, sem pseudocódigo, sem trechos omitidos e pronto para colar em ServerScriptService. - Depois do código, explique quais constantes devo calibrar para meu jogo e forneça exemplos de integração server-side para um portal/checkpoint e para uma habilidade de dash legítima. - Finalize com instruções objetivas para testar no Roblox Studio usando Start Server com múltiplos Players, testes de respawn, lag simulado, veículos e teleporte legítimo. Explique também como verificar os logs no Output. Priorize precisão, segurança e baixa incidência de falsos positivos. Se houver conflito entre punir agressivamente e evitar punir jogadores legítimos, prefira registrar, aplicar strikes graduais e tornar os limites configuráveis.