O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Administração

Como configurar anti-speed hack no MU Online

Configure a proteção contra speed hack no seu servidor de MU Online ajustando os limites de velocidade de ataque e movimento no GameServer, validando pacotes no lado do servidor e calibrando thresholds sem punir jogadores legítimos com ping alto.

BR Bruno · Atualizado em 12 nov 2024 · ⏱ 17 min de leitura
Resposta rápida

O speed hack é uma das trapaças mais destrutivas em servidores de MU Online porque ataca o coração da jogabilidade: a velocidade. Um jogador com speed hack ataca duas ou três vezes mais rápido do que deveria, anda como se teleportasse pelo mapa e limpa spots de XP num ritmo impossível para quem joga

O speed hack é uma das trapaças mais destrutivas em servidores de MU Online porque ataca o coração da jogabilidade: a velocidade. Um jogador com speed hack ataca duas ou três vezes mais rápido do que deveria, anda como se teleportasse pelo mapa e limpa spots de XP num ritmo impossível para quem joga limpo. Em PvP ele é praticamente imbatível; em farm, ele quebra a economia. O agravante é que muitos administradores confiam apenas na proteção do lado do cliente — e essa proteção é justamente a parte que o trapaceiro controla e modifica. A defesa que realmente funciona vive no servidor: medir o intervalo entre as ações que o cliente envia e recusar tudo que vier acima do fisicamente possível. Este guia mostra como configurar e calibrar essa proteção. Todos os valores de velocidade, nomes de parâmetro e caminhos são exemplos que variam por season/emulador — você vai medir os seus próprios limites.

Pré-requisitos

  • Acesso administrativo ao diretório do GameServer (ex.: C:\MuServer\GameServer\).
  • Conhecimento de qual emulador/season o servidor roda (IGCN, MuEMU, X-Files, etc.).
  • Um personagem de teste bem equipado por classe para medir velocidades reais.
  • Acesso aos logs do GameServer para observar violações.
  • SSMS conectado ao banco MuOnline, caso queira registrar violações e automatizar punições.
  • Backup completo dos arquivos de configuração antes de editar.
  • Idealmente, um segundo administrador com ping alto para testar falsos positivos.

> Nunca ative punição automática de speed hack sem antes rodar em modo de log. Jogadores com ping alto, picos de latência e reentrega de pacotes podem disparar violações pontuais. Calibrar antes de punir é o que impede que a proteção vire um gerador de reclamações.

Como o speed hack funciona (e como a defesa funciona)

No MU Online, cada ação do jogador — um golpe, um passo, o uso de uma habilidade — é enviada do cliente ao servidor como um pacote. Entre uma ação e a próxima existe um intervalo mínimo natural, determinado pela velocidade de ataque (attack speed) e de movimento (move speed) daquele personagem. O speed hack encurta artificialmente esse intervalo, fazendo o cliente disparar pacotes numa frequência mais alta do que o jogo permite.

A defesa do lado do servidor é conceitualmente simples: para cada tipo de ação, o servidor registra o horário do último pacote e calcula o intervalo até o próximo. Se o intervalo for menor do que o mínimo permitido para aquela classe e equipamento, é uma violação. Uma violação isolada pode ser lag; violações repetidas em uma janela curta são trapaça. A tabela abaixo resume os vetores comuns.

Vetor de speed hackO que o hacker aceleraComo o servidor detecta
Attack speed hackFrequência de golpes/skillsIntervalo entre pacotes de ataque abaixo do mínimo da classe
Move speed hackVelocidade de deslocamentoDistância percorrida por unidade de tempo acima do teto
Skill spamUso de habilidades em rajadaCooldown ignorado entre casts
Pick/loot hackColeta de itens ultra-rápidaIntervalo entre coletas abaixo do humano

Passo 1 — Localizar os parâmetros de velocidade no GameServer

A maioria dos emuladores expõe limites de velocidade em um arquivo de configuração do GameServer, comumente em GameServer\Data\ ou em um .ini na raiz do GameServer. Os nomes variam bastante entre builds, mas o bloco costuma parecer com isto:

[SpeedHack]
Enable                = 1
AttackSpeedCheck      = 1
MoveSpeedCheck        = 1
Tolerance             = 15      ; margem percentual para absorver lag
ViolationLimit        = 5       ; violacoes na janela antes de agir
ViolationWindowSec    = 10      ; janela de contagem (segundos)
Punishment            = 0       ; 0=log, 1=kick, 2=ban temporario
LogEnable             = 1
LogPath               = Logs\SpeedHack\

> Se o seu build não tiver uma seção dedicada, procure por parâmetros com nomes como CheckSpeedHack, AttackSpeedLimit, MoveSpeedLimit ou MaxAttackSpeed espalhados pela configuração. A nomenclatura varia por season/emulador — consulte a documentação do seu compilado ou o fórum do emulador.

Comece sempre com Punishment = 0 (apenas log). Você vai ativar punição só depois da calibração.

Passo 2 — Medir as velocidades reais por classe

Aqui está o passo que a maioria dos administradores pula e que causa a maior parte dos falsos positivos: você precisa dos números reais do seu servidor. Attack speed e move speed dependem da classe, do nível, do equipamento e da season. Copiar valores de outro servidor é receita para desastre.

Para cada classe (DK, DW, Elf, MG, DL, etc.), faça o seguinte:

  1. Crie ou use um personagem de teste da classe, bem equipado, no nível típico de endgame.
  2. Anote o attack speed exibido (muitos builds mostram na tela de status ou via comando de GM).
  3. Registre no log, com o hack desligado, o intervalo mínimo real entre golpes durante um combate intenso.
  4. Repita com equipamentos de attack speed máximo (itens de excellent com opção de velocidade, buffs de swell/greater).
  5. Anote o move speed em corrida contínua no mapa.

Monte uma tabela de referência por classe. Um exemplo ilustrativo (os números variam por season/emulador e servem só de formato):

ClasseAttack speed máx. legítimoIntervalo mínimo de golpe (ms)Observações
Dark Knightvalor medidovalor medidoCombo aumenta rajada momentânea
Elfvalor medidovalor medidoMulti-shot dispara vários pacotes juntos
Dark Wizardvalor medidovalor medidoNova/skills contínuas
Magic Gladiatorvalor medidovalor medidoBuffs somam attack speed

Guarde essa referência. É a base de tudo que vem depois.

Passo 3 — Definir o teto com margem de tolerância

Com os números reais em mãos, defina o limite do servidor acima do máximo legítimo, adicionando uma margem para absorver lag e picos de rede. Se o intervalo mínimo real de golpe de uma classe é X ms, o servidor deve recusar apenas intervalos bem abaixo de X — nunca igual ou logo abaixo, ou você pega o jogador legítimo em pico de latência.

A margem se aplica de duas formas, combinadas:

  • Tolerância percentual (Tolerance): quão abaixo do mínimo o servidor ignora antes de contar como violação. Uma margem inicial generosa evita falso positivo enquanto você calibra.
  • Contagem de violações em janela (ViolationLimit / ViolationWindowSec): em vez de punir na primeira anomalia, só age quando várias violações se acumulam num curto período. Isso é o que distingue o lag ocasional do hack sustentado.
[SpeedHack]
Enable             = 1
Tolerance          = 20     ; comece generoso, aperte apos calibrar
ViolationLimit     = 6      ; 6 violacoes...
ViolationWindowSec = 8      ; ...em 8 segundos = padrao sustentado
Punishment         = 0      ; ainda em log

A lógica é clara: um speed hacker gera dezenas de violações por segundo de forma contínua. Um jogador com ping ruim gera uma ou duas esporádicas. A janela de contagem separa os dois.

Passo 4 — Registrar violações no banco para análise

O log em arquivo é útil, mas centralizar as violações no banco facilita a calibração e a auditoria. Crie uma tabela e, se o emulador oferecer hook, direcione as violações para ela; caso contrário, importe periodicamente do log.

USE MuOnline;
GO

CREATE TABLE dbo.SpeedHack_Log (
    LogID        INT IDENTITY(1,1) PRIMARY KEY,
    AccountID    VARCHAR(10)  NULL,
    CharName     VARCHAR(10)  NOT NULL,
    ViolationType VARCHAR(20) NOT NULL,   -- ATTACK, MOVE, SKILL
    MeasuredMs   INT          NULL,       -- intervalo medido
    AllowedMs    INT          NULL,       -- minimo permitido
    ViolCount    INT          NULL,       -- violacoes na janela
    ClientIP     VARCHAR(45)  NULL,
    DetectedAt   DATETIME     DEFAULT GETDATE()
);
GO

Depois de alguns dias em modo log, esta query revela quem são os suspeitos reais e ajuda a apertar os thresholds:

SELECT CharName, ViolationType,
       COUNT(*)          AS TotalViolacoes,
       AVG(MeasuredMs)   AS MediaIntervalo,
       MIN(MeasuredMs)   AS MenorIntervalo,
       MAX(ViolCount)    AS PicoNaJanela
FROM dbo.SpeedHack_Log
WHERE DetectedAt >= DATEADD(DAY, -3, GETDATE())
GROUP BY CharName, ViolationType
HAVING COUNT(*) > 50
ORDER BY TotalViolacoes DESC;

Contas com centenas de violações e intervalos absurdamente baixos são hackers. Contas com poucas violações e intervalos próximos do limite são jogadores com rede ruim — não puna estes.

Passo 5 — Ativar a punição gradual

Depois da calibração (mínimo 48 a 72 horas em log), ative a punição de forma escalonada. Comece por kick, que é reversível e reeducativo, antes de partir para ban.

[SpeedHack]
Enable             = 1
Tolerance          = 12     ; apertado apos calibrar
ViolationLimit     = 5
ViolationWindowSec = 8
Punishment         = 1      ; kick ao violar
LogEnable          = 1

Observe por mais alguns dias. Se os kicks estão pegando só hackers reais e não há reclamação de jogadores legítimos, você pode subir para ban temporário para reincidentes. A reação a um ban de speed hack faz parte da mesma disciplina de moderação de qualquer punição — registre motivo e evidência sempre. Se ainda não tem a base de moderação montada, vale começar pelo essencial em como criar servidor de MU Online antes de endurecer o anti-cheat.

Passo 6 — Automatizar ban de reincidentes

Para transformar violações graves e repetidas em ban temporário automático, agende uma procedure que atua sobre quem cruza um limiar alto de violações confirmadas:

USE MuOnline;
GO

CREATE PROCEDURE dbo.SP_SpeedHack_Enforce
AS
BEGIN
    SET NOCOUNT ON;

    -- Banir contas com padrao sustentado de speed hack nas ultimas 2h
    UPDATE m
    SET m.bloc_code = 1
    FROM MEMB_INFO m
    INNER JOIN (
        SELECT AccountID
        FROM dbo.SpeedHack_Log
        WHERE DetectedAt >= DATEADD(HOUR, -2, GETDATE())
          AND MeasuredMs < AllowedMs * 0.5   -- metade do minimo = inequivoco
        GROUP BY AccountID
        HAVING COUNT(*) > 200
    ) s ON m.memb___id = s.AccountID
    WHERE m.bloc_code = 0;

    PRINT 'SpeedHack enforce concluido: ' + CAST(GETDATE() AS VARCHAR);
END;
GO

O critério MeasuredMs < AllowedMs * 0.5 é deliberadamente severo: só banir automático quando a velocidade é claramente impossível (metade do intervalo mínimo). Casos limítrofes ficam para revisão humana. Agende no SQL Server Agent com intervalo de 30 minutos.

Passo 7 — Combinar com proteção do lado do cliente

O anti-speed hack do servidor é a autoridade final, mas dificultar a trapaça no cliente reduz o volume de tentativas. Se o seu build suporta GameGuard, HackShield ou um módulo anti-cheat equivalente, mantenha-o ativo em paralelo. Ele tenta bloquear a injeção e a modificação de memória que originam o speed hack, enquanto a validação no servidor garante que o que passar mesmo assim seja recusado. As duas camadas juntas cobrem tanto a prevenção quanto a detecção.

Erros comuns e soluções

ProblemaCausa provávelSolução
Jogadores legítimos sendo kickadosTolerância baixa ou janela curta demaisAumente Tolerance e ViolationWindowSec; volte ao modo log
Elf/BK pegos ao usar multi-hitSkills disparam vários pacotes juntosAumente a margem para essas classes ou trate combos separadamente
Hackers não são detectadosEnable=0 ou checagem da ação erradaConfirme AttackSpeedCheck/MoveSpeedCheck ativos e o build correto
Violações sob ping altoLatência gerando rajadas de pacotesSuba a tolerância; conte violações em janela, não isoladas
Config ignorada após editarGameServer não recarrega a quenteReinicie o GameServer completamente
Valores copiados de outro server falhamVelocidades diferem por season/equipamentoMeça os limites reais no seu próprio build
Ban automático pega inocenteLimiar de enforce baixo demaisUse critério severo (ex.: 50% do mínimo) e revise a fila

Checklist de lançamento

  • Seção de anti-speed hack localizada no GameServer
  • Velocidades reais medidas por classe com personagem de teste
  • Tabela de referência de attack/move speed documentada
  • Teto definido acima do máximo legítimo, com margem
  • Tolerância e janela de violação configuradas
  • Punishment = 0 (log) ativo por 48-72h de calibração
  • Tabela SpeedHack_Log recebendo violações
  • Query de análise revisada; thresholds apertados com base nos dados
  • Teste com conta de ping alto para descartar falso positivo
  • Punição escalonada: kick antes de ban
  • SP_SpeedHack_Enforce com critério severo e revisão da fila
  • Proteção do lado do cliente (GameGuard/anti-cheat) ativa em paralelo
  • Backup dos arquivos de config feito antes de editar

Anti-speed hack bem-feito não é sobre encontrar o número mágico — é sobre medir, calibrar e escalar com cuidado. Ao validar a velocidade no servidor, medir os limites reais do seu build, absorver o lag com tolerância e janela, e só endurecer a punição depois de ver os dados, você elimina os trapaceiros que quebram o PvP e a economia sem transformar cada jogador de ping alto em suspeito. É essa disciplina que mantém a competição justa e o servidor confiável.

Perguntas frequentes

O que exatamente é um speed hack no MU Online?

É uma manipulação que faz o cliente enviar ações mais rápido do que o jogo permite: atacar, andar, coletar ou usar habilidades em uma cadência acima do limite natural da classe. O jogador ganha vantagem desleal, farmando e matando muito mais rápido. A defesa é o servidor validar o tempo entre as ações e recusar ou punir o que vier acima do limite fisicamente possível para aquela classe e equipamento.

Por que o anti-speed hack precisa rodar no servidor e não no cliente?

Porque o cliente está sob controle do jogador e pode ser modificado. Qualquer verificação feita só no cliente é burlável. A validação confiável mede, no lado do servidor, o intervalo entre os pacotes de ação que o cliente envia e compara com o mínimo permitido. Só o servidor tem autoridade final sobre o que é aceito, então é lá que a checagem de velocidade precisa viver.

O anti-speed hack pode punir jogadores com ping alto ou lag?

Sim, se mal calibrado. Latência e reentrega de pacotes podem fazer ações chegarem em rajada e parecerem rápidas demais. Por isso se usa uma margem de tolerância e uma contagem de violações em janela de tempo, em vez de punir na primeira anomalia. O objetivo é pegar o padrão sustentado de velocidade impossível, não o pico ocasional causado por rede ruim.

Quais valores de velocidade devo usar para cada classe?

Não existe número universal. Attack speed e move speed dependem da classe, do nível, do equipamento e da própria season/emulador. O caminho correto é medir os limites reais no seu build com um personagem legítimo bem equipado, adicionar uma margem de tolerância e usar esses valores como teto. Copiar números de outro servidor sem calibrar gera falso positivo ou brecha.

Anti-speed hack substitui GameGuard ou anti-cheat de cliente?

Não, eles são camadas complementares. O anti-speed hack do lado servidor valida a cadência das ações independentemente do cliente. GameGuard e afins tentam impedir a injeção e a modificação de memória no cliente. Um bom servidor usa ambos: proteção no cliente para dificultar a trapaça e validação no servidor para garantir que, mesmo se o cliente for adulterado, a velocidade impossível seja recusada.

BR
Editor de eventos, mapas e itens

Bruno é especialista em eventos, mapas, bosses e economia de itens do MU Online. Documenta cada detalhe com base em jogo real.

Continue lendo

Artigos relacionados