Luau Vanguard Luau Vanguard
Sign in Get started

Professional Luau protection

A focused Luau protection studio for clean builds, protected runtime packages and dependable Roblox delivery.

Built for clean delivery

Automatic protection stays enabled while Studio keeps the workflow simple.

Runtime packaging

The protected program leaves as a packed encrypted runtime package and reconstructs its execution chunk only when it runs.

Control flow

Branches and loops flatten into opaque state machines so static reads no longer match the original structure.

Runtime integrity

Runtime integrity checks and compatibility probes designed to avoid unnecessary crashes or freezes.

Encoded constants

Constants and payloads leave as packed cipher data instead of readable source blocks.

Pricing

Start free. Upgrade to Elite when you need unlimited builds.

Starter

Free
  • 2 obfuscations per account
  • Complete protection stack
  • Studio access
Create account

Elite

Paid
  • Unlimited builds
  • Priority pipeline
  • Discord support
Contact sales

Documentation

Luau Vanguard v1.0.0. Guía completa para preparar, construir, validar y distribuir paquetes protegidos de Luau.

La protección está activada automáticamente en Studio. La interfaz se mantiene simple mientras el motor aplica las capas internas de forma consistente.

Overview

Luau Vanguard es una herramienta de empaquetado para proyectos que necesitan reducir la exposición del código fuente antes de distribuirlo. El flujo toma un script Luau, lo valida, transforma su representación, lo empaqueta y produce una salida autocontenida que puede reconstruir su contenido durante la ejecución cuando el entorno ofrece un cargador dinámico compatible.

El motor separa tres responsabilidades: análisis del código de entrada, generación del paquete protegido y validación del resultado. Esto permite detectar errores de sintaxis antes de gastar una compilación y evita que una transformación incompleta se entregue como si fuera válida.

Entrada

Luau con sintaxis válida, incluyendo cadenas largas, números, tablas, funciones y construcciones comunes de Roblox.

Salida

Un paquete generado de forma variable, con datos fragmentados y reconstrucción en runtime cuando el loader requerido está disponible.

Installation

El proyecto se ejecuta como una aplicación Node.js con Express. La raíz contiene index.html, el motor dentro de lib/, la API en api/ y las pruebas en tests/. La configuración de producción puede usar almacenamiento local o MongoDB mediante las variables de entorno del proyecto.

npm install
npm start

La aplicación expone la interfaz y las rutas de API desde el mismo proceso. En despliegues gestionados, el proceso debe arrancar desde api/index.js.

First build

  1. Abre Studio e introduce un archivo .lua o .luau.
  2. Ejecuta la validación disponible o continúa con Build script.
  3. Revisa el estado de salida y copia o descarga el resultado.
  4. Prueba primero en un entorno controlado antes de distribuirlo.

Un build correcto no debe mostrar el código de entrada como texto literal en la salida. Los textos del usuario pasan por las etapas de transformación antes de incorporarse al paquete final.

Studio

Studio está pensado para que el usuario no tenga que elegir una combinación de switches internos. La protección se aplica automáticamente y el panel se concentra en las acciones esenciales: cargar, construir, copiar y descargar.

Script

Editor para pegar o cargar el código de origen. Las estadísticas muestran tamaño y caracteres.

Output

Área de solo lectura donde aparece el paquete generado y validado.

History

Las cuentas guardan un historial limitado de compilaciones para mantener seguimiento básico del uso.

Account

La sesión controla el acceso al Studio y las cuotas de compilación del plan.

Build pipeline

El motor sigue un recorrido estructurado, pero usa valores variables en determinadas etapas del empaquetado. Primero limpia el texto de entrada y tokeniza el contenido. Después verifica delimitadores y bloques, renombra locales cuando es seguro hacerlo, transforma accesos de método y procesa literales que pueden ocultarse sin alterar su significado.

El resultado intermedio se encapsula en un paquete externo. Ese paquete fragmenta los datos, cambia el orden de los fragmentos, aplica capas de transformación y añade sellos de integridad. La representación exterior utiliza bloques numéricos decimales para evitar alfabetos de caracteres que pueden producir problemas de parser en determinados entornos.

Finalmente se valida la sintaxis estructural del código generado. Un resultado que no pasa esa etapa se considera un fallo del engine y no debe tratarse como una compilación válida.

Runtime package

En el paquete externo, los bytes están divididos en fragmentos y representados como enteros decimales. En tiempo de ejecución se restaura el orden, se verifica la longitud y se comprueba un sello del contenido. Después se invierten las capas de transformación para obtener el chunk protegido en memoria.

La reconstrucción está diseñada para suceder únicamente cuando el entorno proporciona un loader dinámico compatible, como loadstring o load. Cuando esa función no existe, el paquete termina de forma segura en vez de generar un error de diagnóstico intencional.

Esto mejora compatibilidad, pero no convierte el resultado en un script ejecutable en todos los contextos de Roblox. El soporte real depende de las capacidades del entorno donde se ejecute.

Output format

La representación exterior está compuesta por identificadores internos, parámetros numéricos y tablas de enteros. El contenido principal protegido no se deja como una llamada literal como print("hola") en la salida generada.

ComponenteFunción
FragmentosDividen el contenido para evitar una única región continua fácil de inspeccionar.
Orden variableCambia la disposición de los fragmentos entre compilaciones.
CapasAplica más de una transformación al contenido antes de almacenarlo.
IntegridadDetecta modificaciones accidentales o incompatibles del paquete.
ReconstrucciónForma el contenido de ejecución en memoria antes de entregarlo al loader.

Compatibility

El validador de entrada acepta una gama amplia de sintaxis Luau, pero el soporte de ejecución depende de la plataforma. Las construcciones más complejas pueden activar una ruta de empaquetado general en lugar de una transformación específica de una característica.

Para Roblox, prueba siempre el resultado en el mismo tipo de entorno donde será distribuido. Diferencias entre Studio, servidor, cliente y entornos con APIs añadidas pueden cambiar la disponibilidad de funciones dinámicas.

Limits

Las cuotas dependen de la cuenta. El plan gratuito conserva un límite de compilaciones y los planes superiores pueden tener una cuota ampliada. Además existe un límite de tamaño de entrada para impedir cargas accidentales excesivas y proteger la estabilidad del servicio.

Los builds muy grandes producen salidas mayores porque la representación numérica prioriza compatibilidad sobre compresión extrema. Para proyectos enormes, separa módulos y protege cada componente en lugar de convertir todo el proyecto en un único chunk.

API

Las rutas principales permiten validar, minificar y generar un paquete protegido. La autenticación controla la ruta de compilación cuando el servicio está configurado con cuentas.

POST /api/validate
POST /api/minify
POST /api/obfuscate
GET  /api/health
GET  /api/version

La solicitud de compilación utiliza JSON. El campo esencial es source; el nombre opcional se almacena en el historial de la cuenta.

{
  "source": "print(1)",
  "name": "Example"
}

Errors

Los errores de entrada se clasifican antes del build. Un LEX_ERROR indica un carácter o literal que no pudo tokenizarse; un SYNTAX_ERROR indica estructuras incompletas; un GENERATED_SYNTAX_ERROR representa un fallo interno de validación del resultado generado.

Los errores de servidor suelen indicar una dependencia faltante, una variable de entorno inválida, una base de datos no disponible o una entrada que excedió el límite configurado.

Troubleshooting

El resultado no ejecuta

Comprueba primero la disponibilidad de un loader dinámico en el entorno objetivo. Después revisa que el mismo entorno pueda ejecutar las APIs usadas por tu script original.

Se detiene antes del script

Reconstruye con la versión actual del engine. Si el resultado fue editado manualmente, una comprobación de integridad puede detener la ejecución del paquete.

El build falla

Valida primero el archivo. Corrige delimitadores, funciones incompletas o literales dañados y vuelve a compilar.

La salida es mucho mayor

La representación decimal usa datos explícitos para priorizar portabilidad del parser. El crecimiento esperado depende de las capas y del tamaño del script.

FAQ

¿Los builds son iguales?

No necesariamente. El motor introduce valores variables en el empaquetado, por lo que dos compilaciones del mismo origen pueden producir representaciones diferentes.

¿Se guarda mi código?

La política de almacenamiento depende de la configuración del servidor y del historial asociado a la cuenta. Consulta los términos del servicio antes de subir código sensible.

¿Puedo editar la salida?

No se recomienda. El paquete utiliza relaciones internas entre fragmentos, tamaños y sellos; alterar una parte puede invalidar el conjunto.

¿Es imposible recuperar el código?

No. Ningún ofuscador que deba ejecutar código en una máquina controlada por terceros puede garantizar una recuperación imposible. El objetivo práctico es aumentar el trabajo necesario para analizar el resultado.

Security model

La seguridad del producto se basa en capas de protección del artefacto: reducción de legibilidad, transformación de literales, fragmentación del contenido, variación entre builds y verificaciones de integridad. Las comprobaciones están diseñadas para ser conservadoras y evitar depender de APIs de depuración específicas del entorno.

El modelo no intenta congelar hilos, saturar el dispositivo ni lanzar excepciones deliberadas ante cada diferencia del entorno. Una protección que genera falsos positivos puede ser más perjudicial que una protección ligeramente menos agresiva que mantenga la ejecución normal.

Best practices

  • Conserva el código fuente original en un repositorio privado y trata la salida como un artefacto de distribución.
  • Prueba siempre funciones críticas antes de publicar una nueva versión del build.
  • Evita depender de comportamiento no documentado del entorno objetivo.
  • Cuando una aplicación usa módulos grandes, protege y prueba por componentes.
  • Mantén el servidor actualizado y cambia las credenciales de desarrollo antes de desplegar en producción.

Terms

Condiciones de uso de Luau Vanguard y reglas para la utilización del servicio de protección de código.

1. Aceptación

Al acceder a Luau Vanguard, crear una cuenta, ejecutar Studio o utilizar cualquier endpoint de la aplicación, aceptas estas condiciones. Si no estás de acuerdo, no utilices el servicio. Estas condiciones se aplican tanto a las funciones gratuitas como a las funciones asociadas a planes de pago o acceso especial.

2. Propiedad del código

Debes contar con los derechos necesarios para subir, procesar y distribuir el código que introduzcas en Luau Vanguard. No utilices el servicio para procesar material que no tengas autorización para manejar. La protección técnica de un archivo no transfiere la propiedad intelectual del contenido ni concede derechos sobre las bibliotecas, imágenes, módulos o dependencias de terceros incluidas en él.

3. Uso permitido

El servicio está destinado a proteger y empaquetar software legítimo. No debes utilizarlo para distribuir malware, robo de credenciales, persistencia no autorizada, fraude, abuso de servicios, evasión deliberada de controles de seguridad o cualquier otra actividad prohibida por la legislación aplicable o por las reglas de la plataforma en la que se ejecute el código.

4. Roblox y servicios externos

El usuario es responsable de comprobar que su contenido cumple las reglas de Roblox y de cualquier otra plataforma, biblioteca, API o servicio externo. Una compilación válida en el motor no implica que el comportamiento resultante esté permitido por terceros. Las restricciones de cada entorno pueden cambiar y el usuario debe verificar las políticas vigentes antes de distribuir una actualización.

5. Cuentas

La cuenta y sus credenciales deben mantenerse bajo control del propietario. No compartas sesiones, cookies, contraseñas o tokens de autenticación con terceros. Las cuotas, roles y privilegios se pueden limitar para mantener la estabilidad del servicio. Las cuentas que incumplan estas condiciones pueden perder el acceso de acuerdo con las reglas administrativas del proyecto.

6. Cuotas y disponibilidad

Las cuotas gratuitas y comerciales pueden variar según la configuración del servicio. Los límites de solicitudes, almacenamiento y tamaño de entrada existen para mantener un uso razonable. Luau Vanguard puede experimentar mantenimiento, interrupciones o incompatibilidades temporales y no garantiza disponibilidad ininterrumpida.

7. Código de terceros

No garantizamos que una transformación preserve comportamiento de código de terceros que dependa de APIs privadas, introspección específica, loaders especiales o características fuera del lenguaje soportado. Debes probar el resultado y conservar una copia del original antes de desplegar una actualización.

8. Limitación técnica

Un ofuscador no puede hacer que un programa sea matemáticamente imposible de analizar cuando el programa debe ejecutarse en un entorno controlado por otra persona. Luau Vanguard busca elevar el esfuerzo necesario para inspeccionar o modificar un artefacto, pero no promete invulnerabilidad absoluta, ocultación perfecta o imposibilidad de recuperación del contenido.

9. Responsabilidad del usuario

El usuario es responsable de probar las compilaciones antes de distribuirlas, comprobar la compatibilidad del entorno, verificar licencias y mantener copias del código fuente. Las decisiones de despliegue, seguridad y cumplimiento realizadas a partir de la herramienta son responsabilidad del usuario.

10. Cambios en el servicio

La arquitectura, endpoints, límites y características pueden evolucionar. Las futuras versiones pueden reemplazar componentes internos o cambiar la representación de salida para corregir errores, mejorar compatibilidad o reforzar la protección. Las actualizaciones relevantes se reflejarán en la documentación y en el historial de versiones.

11. Soporte

Cuando informes un problema, proporciona una descripción reproducible, el tipo de entorno donde aparece, la versión del proyecto y, cuando corresponda, un ejemplo mínimo que no revele secretos. No compartas contraseñas, cookies, tokens privados ni información sensible en solicitudes de soporte.

12. Contacto

Para soporte, dudas comerciales o reportes sobre el servicio, utiliza los canales oficiales enlazados por la aplicación. La información proporcionada en soporte debe limitarse a lo necesario para investigar el problema.

Welcome back

Sign in to open Studio, manage builds and continue protecting your Luau scripts.

  • Secure session
  • Build history on your plan
  • Elite upgrades via Discord

Sign in

Use your Luau Vanguard account.

No account? Create one

Start protecting

Create a free account and get two protected builds. Upgrade when your team needs unlimited capacity.

  • Free tier included
  • Complete protection stack
  • Studio in the browser

Create account

Takes under a minute.

Already registered? Sign in

Welcome back

Here’s where things stand.

Plan
Skidder
2 builds
Used
0
this account
All time
0
engine
Open Studio

Studio

Paste Luau and build. Protection is automatic.

Automatic protectionenabled by default
Script0
Output0

Admin

Protected control plane.

Building…