Todas las guíasTutorial

Guía para Principiantes de Luau en Roblox Studio

5 de abril de 20265 min de lecturaRblxScript Editorial

No necesitas ser programador para copiar un script. Pero saber un poco de Luau marca la diferencia entre adivinar qué hace un script y leerlo de verdad. Esta guía te lleva a ese punto en más o menos una hora.

¿Qué es Luau?

Luau es el lenguaje de programación que usa Roblox en todos los juegos de la plataforma. Nació de Lua 5.1, un lenguaje pequeño creado en Brasil en los años noventa. Con los años, Roblox lo convirtió en su propia versión, le añadió tipos opcionales y lo hizo más rápido. Hoy Luau es de código abierto y tiene su propio sitio.

Un lenguaje de programación pequeño, rápido e integrable, basado en Lua, con un sistema de tipos gradual.
— luau.org, el sitio oficial de Luau (traducción propia)

¿Por qué te importa? Porque el código que se ve raro suele ser simplemente Luau más nuevo. Cosas como local x: number = 5, las declaraciones type o x += 1 no son errores de tipeo. El Lua original no las tiene, pero Luau sí.

Cinco ideas que abren todo lo demás

1. Las tablas son la única colección

Luau tiene un solo tipo de colección: la tabla. Sirve como lista, como diccionario y como objeto. Cuando ves local players = {}, esa variable puede convertirse en una lista de jugadores, en un mapa de nombres a puntuaciones o en un registro con campos. El código de alrededor te dice cuál.

2. Las funciones son valores

Puedes guardar una función en una variable, meterla en una tabla o pasarla a otra función. La línea Players.PlayerAdded:Connect(function(player) ... end) es justo eso: una función que se entrega a un evento para que se ejecute cada vez que alguien entra.

3. Los servicios son las puertas del motor

Casi todos los scripts empiezan pidiendo servicios con game:GetService(). Workspace guarda el mundo 3D. Players guarda a las personas del servidor. ReplicatedStorage guarda lo que comparten servidor y cliente. RunService te da código que se ejecuta en cada fotograma. Aprende estos cuatro y las primeras líneas de la mayoría de los scripts tendrán sentido.

4. Eventos y conexiones

La mayor parte del código de Roblox reacciona a algo: un jugador que entra, una tecla que se pulsa, una pieza que se toca. Los scripts conectan una función a un evento con :Connect(). Cuando el script termina, uno ordenado llama a :Disconnect(). Uno descuidado deja conexiones abiertas y consume CPU en segundo plano.

5. La librería task

task.wait, task.spawn y task.delay reemplazan a los antiguos wait() y spawn(). Funcionan con el planificador de Roblox, por eso los scripts modernos los usan. Si un script todavía usa las versiones antiguas, probablemente también sea antiguo.

Chuleta: palabras que verás en los scripts

En el códigoQué significa
localCrea una variable que solo existe en ese bloque
LocalPlayerTú, el jugador que ejecuta el script
Character / HumanoidRootPartTu avatar y la pieza que marca su posición
FireServerEnvía un mensaje de tu juego al servidor
getgenv()Una tabla exclusiva de los executors para compartir ajustes entre scripts
pcallEjecuta código y atrapa los errores para que el script no se cierre

Por cierto, esa línea con getgenv() es una buena pista. No existe en Roblox Studio. Solo la agregan los executors, así que verla te dice que el script se escribió para un executor.

La línea que más vas a ver: loadstring

Abre casi cualquier ficha de RblxScript y el código es una sola línea. Se parece a loadstring(game:HttpGet("https://...")). Esto es lo que hace, de adentro hacia afuera.

Maqueta del editor de un executor con una pestaña script.lua que contiene una línea que empieza con loadstring(game:HttpGetAsync( y una URL de GitHub, y los botones Execute, Clear y Execute Clipboard
Un script típico de una línea: descarga código desde una URL y lo ejecuta.
  1. game:HttpGet(url) descarga texto desde esa dirección. Ese texto es código Luau.
  2. loadstring(texto) convierte ese texto en una función.
  3. El () final ejecuta la función.

O sea, el script real no está en la ficha. Vive en la URL. Eso tiene dos consecuencias. El autor puede actualizarlo sin tocar la ficha, y por eso los scripts de una línea siguen funcionando después de un arreglo. Y el autor también puede cambiar lo que hace en cualquier momento sin que lo notes.

Cómo leer un script real en cinco minutos

  1. Lee las primeras diez líneas. Muestran qué servicios usa el script y qué librería de interfaz carga.
  2. Busca las palabras Connect y while true do. Ahí es donde el script hace su trabajo.
  3. Busca HttpGet, request o webhook. Significan que el script se comunica con internet. Un webhook de Discord que envía tus datos a otro lado es una señal de alarma.
  4. Revisa el final por si hay limpieza, como Disconnect o Destroy. Los autores cuidadosos la incluyen.

Dónde aprender en serio

Para empezar bastan dos fuentes gratuitas. El sitio de Luau tiene la referencia del lenguaje. El Creator Hub de Roblox tiene un curso de programación que empieza desde cero, dentro de Roblox Studio. Studio es gratis, así que puedes escribir tu propio código en tu propio juego sin romper ninguna regla. Después de un fin de semana con los dos, la mayoría de los scripts de la comunidad dejará de parecer ruido.

Documentación de Luau en el Creator Hub de Roblox

La guía oficial de Roblox sobre Luau: variables, tablas, funciones y tipos.

Introducción a la programación (Creator Hub de Roblox)

El tutorial oficial de Roblox para escribir tu primer script en Studio.

luau.org

El sitio oficial del lenguaje Luau, con la referencia y la guía del sistema de tipos. En inglés.

Explora los scripts de la comunidad

Ahora que puedes leer Luau, mira lo que publican los autores.

Scripts sin key, explicados

Qué significa "no key" y por qué algunos scripts piden una.

Etiquetas#luau#lua#beginners#studio