El mayor portal de MU Online de Brasil — desde 2003
Tutorial Avanzado Admin

Cómo configurar anti-speed hack en MU Online

Configura la protección contra speed hack en tu servidor de MU Online ajustando los límites de velocidad de ataque y movimiento en el GameServer, validando paquetes del lado del servidor y calibrando thresholds sin castigar a jugadores legítimos con ping alto.

BR Bruno · Actualizado el 12 nov 2024 · ⏱ 17 min de lectura
Respuesta rápida

El speed hack es una de las trampas más destructivas en servidores de MU Online porque ataca el corazón de la jugabilidad: la velocidad. Un jugador con speed hack ataca dos o tres veces más rápido de lo que debería, anda como si se teletransportara por el mapa y limpia spots de XP a un ritmo imposib

El speed hack es una de las trampas más destructivas en servidores de MU Online porque ataca el corazón de la jugabilidad: la velocidad. Un jugador con speed hack ataca dos o tres veces más rápido de lo que debería, anda como si se teletransportara por el mapa y limpia spots de XP a un ritmo imposible para quien juega limpio. En PvP es prácticamente imbatible; en farmeo, rompe la economía. El agravante es que muchos administradores confían solo en la protección del lado del cliente — y esa protección es justamente la parte que el tramposo controla y modifica. La defensa que de verdad funciona vive en el servidor: medir el intervalo entre las acciones que el cliente envía y rechazar todo lo que venga por encima de lo físicamente posible. Esta guía muestra cómo configurar y calibrar esa protección. Todos los valores de velocidad, nombres de parámetro y rutas son ejemplos que varían por season/emulador — tú vas a medir tus propios límites.

Requisitos previos

  • Acceso administrativo al directorio del GameServer (ej.: C:\MuServer\GameServer\).
  • Conocimiento de qué emulador/season corre el servidor (IGCN, MuEMU, X-Files, etc.).
  • Un personaje de prueba bien equipado por clase para medir velocidades reales.
  • Acceso a los logs del GameServer para observar violaciones.
  • SSMS conectado a la base de datos MuOnline, en caso de que quieras registrar violaciones y automatizar castigos.
  • Copia de seguridad completa de los archivos de configuración antes de editar.
  • Idealmente, un segundo administrador con ping alto para probar falsos positivos.

> Nunca actives el castigo automático de speed hack sin antes correr en modo de log. Los jugadores con ping alto, picos de latencia y reenvío de paquetes pueden disparar violaciones puntuales. Calibrar antes de castigar es lo que impide que la protección se convierta en un generador de quejas.

Cómo funciona el speed hack (y cómo funciona la defensa)

En MU Online, cada acción del jugador — un golpe, un paso, el uso de una habilidad — se envía del cliente al servidor como un paquete. Entre una acción y la siguiente existe un intervalo mínimo natural, determinado por la velocidad de ataque (attack speed) y de movimiento (move speed) de ese personaje. El speed hack acorta artificialmente ese intervalo, haciendo que el cliente dispare paquetes a una frecuencia más alta de la que el juego permite.

La defensa del lado del servidor es conceptualmente simple: para cada tipo de acción, el servidor registra el momento del último paquete y calcula el intervalo hasta el siguiente. Si el intervalo es menor que el mínimo permitido para esa clase y equipamiento, es una violación. Una violación aislada puede ser lag; violaciones repetidas en una ventana corta son trampa. La tabla siguiente resume los vectores comunes.

Vector de speed hackQué acelera el hackerCómo lo detecta el servidor
Attack speed hackFrecuencia de golpes/skillsIntervalo entre paquetes de ataque por debajo del mínimo de la clase
Move speed hackVelocidad de desplazamientoDistancia recorrida por unidad de tiempo por encima del techo
Skill spamUso de habilidades en ráfagaCooldown ignorado entre casts
Pick/loot hackRecolección de ítems ultra-rápidaIntervalo entre recolecciones por debajo de lo humano

Paso 1 — Localizar los parámetros de velocidad en el GameServer

La mayoría de los emuladores expone los límites de velocidad en un archivo de configuración del GameServer, comúnmente en GameServer\Data\ o en un .ini en la raíz del GameServer. Los nombres varían bastante entre builds, pero el bloque suele parecerse a esto:

[SpeedHack]
Enable                = 1
AttackSpeedCheck      = 1
MoveSpeedCheck        = 1
Tolerance             = 15      ; margen porcentual para absorber lag
ViolationLimit        = 5       ; violaciones en la ventana antes de actuar
ViolationWindowSec    = 10      ; ventana de conteo (segundos)
Punishment            = 0       ; 0=log, 1=kick, 2=ban temporal
LogEnable             = 1
LogPath               = Logs\SpeedHack\

> Si tu build no tiene una sección dedicada, busca parámetros con nombres como CheckSpeedHack, AttackSpeedLimit, MoveSpeedLimit o MaxAttackSpeed repartidos por la configuración. La nomenclatura varía por season/emulador — consulta la documentación de tu compilado o el foro del emulador.

Empieza siempre con Punishment = 0 (solo log). Vas a activar el castigo solo después de la calibración.

Paso 2 — Medir las velocidades reales por clase

Aquí está el paso que la mayoría de los administradores se salta y que causa la mayor parte de los falsos positivos: necesitas los números reales de tu servidor. El attack speed y el move speed dependen de la clase, del nivel, del equipamiento y de la season. Copiar valores de otro servidor es receta para el desastre.

Para cada clase (DK, DW, Elf, MG, DL, etc.), haz lo siguiente:

  1. Crea o usa un personaje de prueba de la clase, bien equipado, en el nivel típico de endgame.
  2. Anota el attack speed mostrado (muchos builds lo muestran en la pantalla de estado o vía comando de GM).
  3. Registra en el log, con el hack apagado, el intervalo mínimo real entre golpes durante un combate intenso.
  4. Repite con equipamiento de attack speed máximo (ítems Excellent con opción de velocidad, buffs de swell/greater).
  5. Anota el move speed en carrera continua por el mapa.

Arma una tabla de referencia por clase. Un ejemplo ilustrativo (los números varían por season/emulador y solo sirven de formato):

ClaseAttack speed máx. legítimoIntervalo mínimo de golpe (ms)Observaciones
Dark Knightvalor medidovalor medidoEl combo aumenta la ráfaga momentánea
Elfvalor medidovalor medidoMulti-shot dispara varios paquetes juntos
Dark Wizardvalor medidovalor medidoNova/skills continuas
Magic Gladiatorvalor medidovalor medidoLos buffs suman attack speed

Guarda esa referencia. Es la base de todo lo que viene después.

Paso 3 — Definir el techo con margen de tolerancia

Con los números reales en mano, define el límite del servidor por encima del máximo legítimo, añadiendo un margen para absorber lag y picos de red. Si el intervalo mínimo real de golpe de una clase es X ms, el servidor debe rechazar solo intervalos bastante por debajo de X — nunca igual o justo por debajo, o pillarás al jugador legítimo en un pico de latencia.

El margen se aplica de dos formas, combinadas:

  • Tolerancia porcentual (Tolerance): qué tan por debajo del mínimo ignora el servidor antes de contar como violación. Un margen inicial generoso evita falso positivo mientras calibras.
  • Conteo de violaciones en ventana (ViolationLimit / ViolationWindowSec): en lugar de castigar en la primera anomalía, solo actúa cuando varias violaciones se acumulan en un período corto. Esto es lo que distingue el lag ocasional del hack sostenido.
[SpeedHack]
Enable             = 1
Tolerance          = 20     ; empieza generoso, aprieta tras calibrar
ViolationLimit     = 6      ; 6 violaciones...
ViolationWindowSec = 8      ; ...en 8 segundos = patron sostenido
Punishment         = 0      ; todavia en log

La lógica es clara: un speed hacker genera decenas de violaciones por segundo de forma continua. Un jugador con mal ping genera una o dos esporádicas. La ventana de conteo separa a los dos.

Paso 4 — Registrar violaciones en la base de datos para análisis

El log en archivo es útil, pero centralizar las violaciones en la base de datos facilita la calibración y la auditoría. Crea una tabla y, si el emulador ofrece hook, dirige las violaciones hacia ella; de lo contrario, impórtalas periódicamente del 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,       -- violaciones en la ventana
    ClientIP     VARCHAR(45)  NULL,
    DetectedAt   DATETIME     DEFAULT GETDATE()
);
GO

Después de algunos días en modo log, esta query revela quiénes son los sospechosos reales y ayuda a apretar los 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;

Las cuentas con centenas de violaciones e intervalos absurdamente bajos son hackers. Las cuentas con pocas violaciones e intervalos cercanos al límite son jugadores con mala red — no los castigues.

Paso 5 — Activar el castigo gradual

Después de la calibración (mínimo 48 a 72 horas en log), activa el castigo de forma escalonada. Empieza por kick, que es reversible y reeducativo, antes de partir hacia el ban.

[SpeedHack]
Enable             = 1
Tolerance          = 12     ; apretado tras calibrar
ViolationLimit     = 5
ViolationWindowSec = 8
Punishment         = 1      ; kick al violar
LogEnable          = 1

Observa por algunos días más. Si los kicks están pillando solo a hackers reales y no hay quejas de jugadores legítimos, puedes subir a ban temporal para reincidentes. La reacción a un ban de speed hack forma parte de la misma disciplina de moderación de cualquier castigo — registra el motivo y la evidencia siempre. Si todavía no tienes la base de moderación montada, vale la pena empezar por lo esencial en cómo crear un servidor de MU Online antes de endurecer el anti-cheat.

Paso 6 — Automatizar el ban de reincidentes

Para transformar violaciones graves y repetidas en ban temporal automático, programa un procedure que actúe sobre quien cruce un umbral alto de violaciones confirmadas:

USE MuOnline;
GO

CREATE PROCEDURE dbo.SP_SpeedHack_Enforce
AS
BEGIN
    SET NOCOUNT ON;

    -- Banear cuentas con patron sostenido de speed hack en las 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   -- mitad del 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

El criterio MeasuredMs < AllowedMs * 0.5 es deliberadamente severo: solo banear automáticamente cuando la velocidad es claramente imposible (la mitad del intervalo mínimo). Los casos límite quedan para revisión humana. Prográmalo en el SQL Server Agent con intervalo de 30 minutos.

Paso 7 — Combinar con protección del lado del cliente

El anti-speed hack del servidor es la autoridad final, pero dificultar la trampa en el cliente reduce el volumen de intentos. Si tu build soporta GameGuard, HackShield o un módulo anti-cheat equivalente, mantenlo activo en paralelo. Intenta bloquear la inyección y la modificación de memoria que originan el speed hack, mientras la validación en el servidor garantiza que lo que pase aun así sea rechazado. Las dos capas juntas cubren tanto la prevención como la detección.

Errores comunes y soluciones

ProblemaCausa probableSolución
Jugadores legítimos siendo kickeadosTolerancia baja o ventana demasiado cortaAumenta Tolerance y ViolationWindowSec; vuelve al modo log
Elf/BK pillados al usar multi-hitLas skills disparan varios paquetes juntosAumenta el margen para esas clases o trata los combos por separado
Los hackers no se detectanEnable=0 o comprobación de la acción equivocadaConfirma AttackSpeedCheck/MoveSpeedCheck activos y el build correcto
Violaciones con ping altoLatencia generando ráfagas de paquetesSube la tolerancia; cuenta violaciones en ventana, no aisladas
Config ignorada tras editarEl GameServer no recarga en calienteReinicia el GameServer por completo
Valores copiados de otro server fallanLas velocidades difieren por season/equipamientoMide los límites reales en tu propio build
El ban automático pilla a un inocenteUmbral de enforce demasiado bajoUsa criterio severo (ej.: 50% del mínimo) y revisa la cola

Lista de verificación de lanzamiento

  • Sección de anti-speed hack localizada en el GameServer
  • Velocidades reales medidas por clase con personaje de prueba
  • Tabla de referencia de attack/move speed documentada
  • Techo definido por encima del máximo legítimo, con margen
  • Tolerancia y ventana de violación configuradas
  • Punishment = 0 (log) activo por 48-72h de calibración
  • Tabla SpeedHack_Log recibiendo violaciones
  • Query de análisis revisada; thresholds apretados con base en los datos
  • Prueba con cuenta de ping alto para descartar falso positivo
  • Castigo escalonado: kick antes de ban
  • SP_SpeedHack_Enforce con criterio severo y revisión de la cola
  • Protección del lado del cliente (GameGuard/anti-cheat) activa en paralelo
  • Copia de seguridad de los archivos de config hecha antes de editar

Un anti-speed hack bien hecho no se trata de encontrar el número mágico — se trata de medir, calibrar y escalar con cuidado. Al validar la velocidad en el servidor, medir los límites reales de tu build, absorber el lag con tolerancia y ventana, y solo endurecer el castigo después de ver los datos, eliminas a los tramposos que rompen el PvP y la economía sin convertir a cada jugador de ping alto en sospechoso. Es esa disciplina la que mantiene la competencia justa y el servidor confiable. </parameter>

Preguntas frecuentes

¿Qué es exactamente un speed hack en MU Online?

Es una manipulación que hace que el cliente envíe acciones más rápido de lo que el juego permite: atacar, andar, recolectar o usar habilidades a una cadencia por encima del límite natural de la clase. El jugador obtiene una ventaja desleal, farmeando y matando mucho más rápido. La defensa es que el servidor valide el tiempo entre las acciones y rechace o castigue lo que venga por encima del límite físicamente posible para esa clase y equipamiento.

¿Por qué el anti-speed hack debe correr en el servidor y no en el cliente?

Porque el cliente está bajo control del jugador y puede modificarse. Cualquier verificación hecha solo en el cliente es burlable. La validación confiable mide, del lado del servidor, el intervalo entre los paquetes de acción que el cliente envía y lo compara con el mínimo permitido. Solo el servidor tiene autoridad final sobre lo que se acepta, así que es ahí donde la comprobación de velocidad debe vivir.

¿El anti-speed hack puede castigar a jugadores con ping alto o lag?

Sí, si está mal calibrado. La latencia y el reenvío de paquetes pueden hacer que las acciones lleguen en ráfaga y parezcan demasiado rápidas. Por eso se usa un margen de tolerancia y un conteo de violaciones en ventana de tiempo, en lugar de castigar en la primera anomalía. El objetivo es atrapar el patrón sostenido de velocidad imposible, no el pico ocasional causado por una red mala.

¿Qué valores de velocidad debo usar para cada clase?

No existe un número universal. El attack speed y el move speed dependen de la clase, del nivel, del equipamiento y de la propia season/emulador. El camino correcto es medir los límites reales en tu build con un personaje legítimo bien equipado, añadir un margen de tolerancia y usar esos valores como techo. Copiar números de otro servidor sin calibrar genera falso positivo o brecha.

¿El anti-speed hack sustituye a GameGuard o al anti-cheat de cliente?

No, son capas complementarias. El anti-speed hack del lado del servidor valida la cadencia de las acciones independientemente del cliente. GameGuard y similares intentan impedir la inyección y la modificación de memoria en el cliente. Un buen servidor usa ambos: protección en el cliente para dificultar la trampa y validación en el servidor para garantizar que, incluso si el cliente es adulterado, la velocidad imposible sea rechazada.

BR
Editor de eventos, mapas e ítems

Bruno es especialista en eventos, mapas, bosses y economía de ítems de MU Online. Documenta cada detalle basándose en el juego real.

Sigue leyendo

Artículos relacionados