Instalación

Instalación del anticheat — paso a paso

Esta guía te lleva de cero a una configuración funcional. También explica por qué importa cada paso, para que sepas dónde mirar si algo falla.

Antes de empezar — requisitos

RequisitoPor qué es necesario
FiveM artifact 6121+Los net events del servidor en los que se apoya el anticheat (giveWeaponEvent, explosionEvent) solo se comportan de forma fiable a partir de esta build.
OneSync activadoset onesync on. La propiedad de entidades y las detecciones con autoridad de servidor no funcionan sin él.
oxmysqlLa única dependencia obligatoria. Baneos, detecciones y ajustes se leen y escriben a través de él.
MySQL / MariaDB 10.4+¿Aún sin base de datos? Consulta la guía de base de datos.
screenshot-basic (opcional)Captura capturas de pantalla como prueba en el momento del baneo.

1. Descargar el paquete

Cuando tu suscripción esté activa: Panel → Servidores → tu servidor → «Descargar anticheat»

O directamente con tu clave de licencia:

curl -H "X-License-Key: YOUR_LICENSE_KEY" \
     -o tosun-ac.zip \
     https://admin.tosundev.com/api/ac_package_download.php
Cada descarga es única para ti. El paquete lleva un Build ID ligado a tu licencia, registrado en server/core/anticheat_000_license.lua. Si tu copia aparece en otro sitio, se puede demostrar su origen. No compartas tu paquete ni tu clave de licencia.

2. Extraer en tu carpeta resources

resources/
└── [tosun]/
    ├── tosun-ac/
    └── tosun-ac-guardian/

Ambas carpetas deben estar al mismo nivel. Guardian es un recurso independiente — en un momento verás por qué.

3. Importar el esquema de base de datos

Solo en la primera instalación:

mysql -u USER -p DATABASE < tosun-ac/sql/ts_anticheat.sql

Como alternativa, pon ts.autoSQL = true en configs/anticheat_config.lua, arranca el servidor una vez y vuelve a dejarlo en false.

ℹ️ En las actualizaciones, las diferencias de esquema se aplican automáticamente (ADD COLUMN IF NOT EXISTS) — nada manual.

4. server.cfg — el orden importa

ensure oxmysql
ensure tosun-ac
ensure tosun-ac-guardian
¿Por qué es esencial Guardian? La vía de escape más común era simplemente detener el anticheat: ejecutar stop tosun-ac y jugar sin ser baneado nunca. El problema es que cuando tosun-ac se detiene, sus propios hilos de protección mueren con él — no puede revivirse solo.

tosun-ac-guardian es un recurso separado, así que sobrevive: ante una parada no autorizada reinicia el anticheat en menos de un segundo y detiene el recurso que emitió el comando. Ambos se vigilan mutuamente — apagarlos a la vez no es posible.

Guardian debe ir después de tosun-ac.

5. Conectar el panel

En configs/anticheat_config.lua:

ts.webPanelURL = "https://admin.tosundev.com"
ts.webPanelKey = "YOUR_API_KEY"

Obtén la clave API en Panel → Servidores → tu servidor → Clave API.

Puedes dejar ambos vacíos — el anticheat los toma de la tabla panel_settings al arrancar. Si lo configuraste desde el panel, ya están ahí.

6. Arrancar y verificar

Reinicia el servidor. Deberías ver:

[Tosun AC v9.0] NetEventGuard aktif
[AC-Guardian] Aktif — tosun-ac harici gözetmen koruması altında.

Después, dentro del juego:

/ts status     → estado de los módulos
/ts test       → autodiagnóstico

Panel → AC → Live debería mostrar tu servidor en línea en menos de 30 segundos.

7. Endurecer la plataforma — el paso de mayor valor

Estos ajustes bloquean una gran parte de las trampas en la capa de enrutado de FiveM. Ningún cheat del cliente puede sortearlos, porque el servidor nunca retransmite el paquete. No cuestan nada al anticheat y no se pueden eludir.
# Los clientes no pueden crear entidades en red (vehículos/peds/objetos)
set sv_entityLockdown "relaxed"

# Solo el servidor puede escribir state bags
set sv_stateBagStrictMode "true"

# Secuestro del control de entidades (lanzar vehículos, lanzar jugadores)
set sv_filterRequestControl "2"

# Eventos en red susceptibles de abuso
set sv_enableNetworkedSounds "false"
set sv_enableNetworkedPhoneExplosions "false"
set sv_enableNetworkedScriptEntityStates "false"

# Clientes con ScriptHookV
set sv_scriptHookAllowed "false"

# Archivos de cliente modificados (usados para silent aim)
set sv_pureLevel "1"

El anticheat audita estos valores al arrancar y enumera los que falten. Para que los seguros se apliquen automáticamente:

ts.hardening.autoApply = true
sv_entityLockdown strict puede romper scripts antiguos que spawnean vehículos desde el cliente (algunos concesionarios). Empieza con relaxed, prueba y luego aprieta. Este ajuste nunca se aplica automáticamente.

8. Conceder acceso de administrador

Cualquiera de estas opciones funciona; gana la primera coincidencia:

# 1) server.cfg — ACE
add_ace group.admin tosun.admin allow
add_principal identifier.license:YOUR_LICENSE group.admin

# 2) txAdmin — se reconoce automáticamente (ts.txAdminAuth = true)

# 3) admins/anticheat_admins.lua
Admins = { "license:xxxxxxxxxxxxxxxxxxxxxxxx" }

# 4) Panel → AC → Admin Grants

Abre el menú con /tsmenu, /ts menu o F7.

Cambio de seguridad en v9.0: la autorización del menú usa ahora una ida y vuelta al servidor con un nonce generado en el cliente. En versiones anteriores un cheat podía disparar eventos localmente para marcarse como admin, obteniendo acceso al menú e inmunidad frente a cualquier baneo. Ese agujero está cerrado.

Lista de verificación de instalación

  • ☐ La consola muestra NetEventGuard aktif
  • ☐ La consola muestra [AC-Guardian] Aktif
  • ☐ Ningún bloque rojo GUVENLIK UYARISI (o has omitido deliberadamente las convars listadas)
  • ☐ El servidor aparece en línea en el panel
  • /tsmenu se abre para un administrador
  • /tsmenu no hace nada para un jugador normal

Problemas frecuentes

SíntomaCausa y solución
Expulsión con Anticheat failed to loadNunca llegó un heartbeat del cliente. Suele ser una descarga lenta — sube ts.HeartBeat.firstHeartbeatDeadline. Si afecta a todos, confirma que oxmysql arranca antes que tosun-ac.
Un administrador es baneadoComprueba que se le reconoce: /ts whoami. El identificador en admins.lua debe coincidir exactamente (incluido el prefijo license:). Los permisos del panel pueden tardar hasta 20 segundos.
Jugadores normales pueden abrir el menúEstás en v8.x. Actualiza a v9.0 — era una vulnerabilidad conocida.
Los botones del menú no respondenLa NUI no pudo cargar SweetAlert2 desde su CDN. v9.0 usa un respaldo automático; revisa la consola NUI (F8 → nui_devtools).
No se emite ningún baneoRevisa ts.punishType y ts.DetectionPunishments — una detección asignada a LOG nunca banea. ts.Debug debe estar en false.
Siguen apareciendo NPC ambientalesPon ts.NpcBlocker.enabled = true y blockPeds = true. Los peds creados por scripts nunca se eliminan a propósito.

Actualizar

  1. Descarga el nuevo paquete desde el panel (misma URL — siempre sirve la última build para tu licencia)
  2. Haz copia de tus carpetas configs/, admins/ y editable/
  3. Sustituye la carpeta del recurso
  4. Restaura tus archivos de configuración — nunca se ofuscan precisamente para que puedas seguir editándolos
  5. Reinicia

Al pedir soporte, incluye tu Build ID (en server/core/anticheat_000_license.lua) — identifica tu build exacta.

Volver al inicio Tosun Dev Docs