Scripting

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Los scripts son archivos de texto plano que te permiten agregar comportamientos dinámicos y personalizados a tus juegos. Puedes usar scripts para activar eventos en el juego, responder a la entrada del jugador, guardar datos del jugador, crear tablas de clasificación, generar enemigos, controlar el comportamiento de NPC y mucho, mucho más.

Luau

Los scripts de Roblox utilizan el lenguaje de programación Luau, que se deriva de Lua 5.1.

  • En comparación con Lua 5.1, Luau añade mejoras de rendimiento y muchas características útiles, incluyendo un sistema de tipado opcional, interpolación de cadenas e iteración generalizada para tablas.
  • Todo el código válido de Lua 5.1 es código válido de Luau, pero lo opuesto no es cierto.

La mayoría de los libros y recursos en línea para Lua son aplicables a Luau. Para un resumen detallado de diferencias, consulta Compatibilidad en la documentación de Luau. Para la sintaxis del lenguaje, consulta la referencia de Luau.

Conceptos básicos de Luau

Luau es de tipo gradual, así que no necesitas especificar un tipo al crear una variable. Puedes usar type() para verificar el tipo de objeto:


logMessage = "¡El usuario tiene más de 10 artículos!"
print(logMessage) --> ¡El usuario tiene más de 10 artículos!
print(type(logMessage)) --> string

Luau tiene alcances globales y locales, pero casi siempre es mejor declarar variables y funciones localmente con la palabra clave local:


local logMessage = "¡El usuario tiene más de 10 artículos!"
local function printMessage()
print(logMessage)
end
printMessage() --> ¡El usuario tiene más de 10 artículos!

Luau utiliza nil para representar inexistencia o nada, lo que se evalúa como false en declaraciones condicionales:


local messageToUser
print(messageToUser) --> nil
print(type(messageToUser)) --> nil
if messageToUser then
-- la declaración se evalúa como falsa
end

Como habrás notado, -- inicia un comentario de una línea. --[[]] crea un comentario en bloque:


--[[
Apaga el rayo cósmico de la luna inmediatamente.
Solo debe ser llamado dentro de los 15 minutos previos a la medianoche, Hora Estándar de la Montaña,
para evitar daños al rayo cósmico de la luna.
]]
local function stopCosmicMoonRay()
-- añade esto más tarde, podría ser importante
end

Las tablas son el término genérico para arreglos y diccionarios. Los arreglos son basados en uno en lugar de basados en cero, por lo que el primer elemento es [1]. Declaras arreglos y diccionarios con un solo conjunto de llaves:


local myArray = {"papas fritas", "agua con gas", "salsa"}
local myDictionary = {
snack = "papas fritas",
drink = "agua con gas",
dip = "salsa"
}
print(myArray[1]) --> papas fritas
print(myDictionary.dip) --> salsa

Puedes iterar sobre tablas usando bucles for con la función ipairs() para arreglos y la función pairs() para diccionarios, pero Luau también te permite omitir estas funciones para una sintaxis más limpia:


for index, value in ipairs(myArray) do -- lua estándar
print(index, value)
end
for key, value in pairs(myDictionary) do -- lua estándar
print(key, value)
end
for key, value in myDictionary do -- iteración generalizada de Luau
print(key, value)
end

Tu primer script

  1. En Roblox Studio, pasa el cursor sobre ServerScriptService en la ventana de Explorer y haz clic en +.

  2. Selecciona Script para agregar un nuevo script.

  3. Haz clic derecho en el script y renómbralo a HelloScript.

  4. Haz doble clic en el script para abrirlo en el Editor de Scripts.

  5. Agrega el siguiente código al archivo:


    local helloArray = {"h", "e", "l", "l", "o"}
    local worldArray = {"w", "o", "r", "l", "d"}
    for index, value in helloArray do
    print(value)
    end
    print(table.concat(worldArray))
  6. Asegúrate de que la ventana de Output esté abierta.

  7. Ejecuta tu juego y observa la salida:


    h
    e
    l (x2)
    o
    world

Ponte cómodo

Una gran parte de adaptarse a un nuevo entorno de desarrollo es configurarlo para satisfacer tus necesidades y comprender las herramientas a tu disposición:

  • La sección del Editor de Scripts en Configuraciones de Studio te permite ajustar características de calidad de vida como fuente, colores, sangrías, autocompletar, corchetes y descripciones emergentes. También puede que desees habilitar el modo oscuro en la sección de Studio.
  • Manteniendo presionado Ctrl o Command y haciendo clic en una función o variable te lleva a su declaración en tu base de código (o su documentación en línea). Usar Buscar y Buscar todo puede ayudarte a navegar proyectos más grandes.
  • La ventana de Output es la herramienta más básica para comprender el comportamiento de tus scripts. Utiliza el menú para habilitar Mostrar contexto y Mostrar fuente.
  • La ventana de Análisis de Scripts muestra un resumen de errores y advertencias, pero puede que encuentres su utilidad limitada; el Editor de Scripts ya resalta estos problemas mientras escribes.
  • Las capacidades de registro son mínimas, sin ningún concepto de niveles de registro como DEBUG o FATAL. Usa print() y warn().

Para obtener más información sobre cómo configurar Studio para la programación, consulta Editor de Scripts.

Tu segundo script

  1. En Roblox Studio, agrega un script en ReplicatedStorage en la ventana de Explorer y renómbralo a OhNo.

  2. Agrega el siguiente código al archivo:


    print("¡Hola, tipos de scripts y ubicaciones!")
  3. Nota cómo la salida no es diferente a cuando ejecutaste tu primer script.

Para entender por qué el script no se ejecutó, consulta Tipos y Ubicaciones de Scripts.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.