Scripting

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Scripts são arquivos de texto simples que permitem adicionar comportamentos dinâmicos e personalizados aos seus jogos. Você pode usar scripts para acionar eventos dentro do jogo, responder à entrada do jogador, salvar dados de jogadores, criar tabelas de líderes, gerar inimigos, controlar o comportamento de NPCs e muito mais.

Luau

Os scripts do Roblox usam a linguagem de programação Luau, que é derivada do Lua 5.1.

  • Em comparação com Lua 5.1, Luau adiciona melhorias de desempenho e muitos recursos úteis, incluindo um sistema de tipagem opcional, interpolação de strings e iteração generalizada para tabelas.
  • Todo código válido de Lua 5.1 é código válido de Luau, mas o oposto não é verdade.

A maioria dos livros e recursos online para Lua ainda é amplamente aplicável ao Luau. Para um resumo detalhado das diferenças, consulte Compatibilidade na documentação do Luau. Para a sintaxe da linguagem, veja a referência do Luau.

Noções básicas sobre Luau

Luau é tipado gradualmente, então você não precisa especificar um tipo ao criar uma variável. Você pode usar type() para verificar o tipo de um objeto:


logMessage = "O usuário tem mais de 10 itens!"
print(logMessage) --> O usuário tem mais de 10 itens!
print(type(logMessage)) --> string

Luau possui escopos globais e locais, mas é quase sempre melhor declarar variáveis e funções localmente com a palavra-chave local:


local logMessage = "O usuário tem mais de 10 itens!"
local function printMessage()
print(logMessage)
end
printMessage() --> O usuário tem mais de 10 itens!

Luau usa nil para representar inexistência ou nada, que avalia como false em declarações condicionais:


local messageToUser
print(messageToUser) --> nil
print(type(messageToUser)) --> nil
if messageToUser then
-- a declaração avalia como falsa
end

Como você pode ter notado, -- inicia um comentário de uma linha. --[[]] cria um comentário em bloco:


--[[
Desliga imediatamente o raio cósmico da lua.
Deve ser chamado somente dentro de 15 minutos da meia-noite do Horário Padrão das Montanhas
para evitar danos ao raio cósmico da lua.
]]
local function stopCosmicMoonRay()
-- adicione isso mais tarde, pode ser importante
end

Tabelas são o termo genérico para arrays e dicionários. Arrays são baseados em um em vez de zero, então o primeiro item é [1]. Você declara arrays e dicionários com um único conjunto de chaves:


local myArray = {"chips", "água com gás", "salsa"}
local myDictionary = {
snack = "chips",
drink = "água com gás",
dip = "salsa"
}
print(myArray[1]) --> chips
print(myDictionary.dip) --> salsa

Você pode iterar sobre tabelas usando loops for com a função ipairs() para arrays e a função pairs() para dicionários, mas Luau também permite omitir essas funções para uma sintaxe mais limpa:


for index, value in ipairs(myArray) do -- Lua padrão
print(index, value)
end
for key, value in pairs(myDictionary) do -- Lua padrão
print(key, value)
end
for key, value in myDictionary do -- iteração generalizada do Luau
print(key, value)
end

Seu primeiro script

  1. No Roblox Studio, passe o mouse sobre ServerScriptService na janela Explorer e clique em +.

  2. Selecione Script para adicionar um novo script.

  3. Clique com o botão direito no script e renomeie-o para HelloScript.

  4. Clique duas vezes no script para abri-lo no Editor de Script.

  5. Adicione o seguinte código ao arquivo:


    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. Certifique-se de que a janela Output esteja aberta.

  7. Execute seu jogo e note a saída:


    h
    e
    l (x2)
    o
    world

Sinta-se à vontade

Uma grande parte da adaptação a um novo ambiente de desenvolvimento é configurá-lo para atender às suas necessidades e entender as ferramentas à sua disposição:

  • A seção Editor de Script das Configurações do Studio permite que você ajuste recursos de qualidade de vida, como fonte, cores, recuo, autocompletar, colchetes e dicas. Você também pode querer habilitar o modo escuro na seção Studio.
  • Manter Ctrl ou Command e clicar em uma função ou variável leva você à sua declaração em seu código (ou na sua documentação online). Usar Encontrar e Encontrar Tudo pode ajudá-lo a navegar em projetos maiores.
  • A janela Output é a ferramenta mais básica para entender o comportamento de seus scripts. Use o menu para habilitar Mostrar Contexto e Mostrar Fonte.
  • A janela Análise de Script mostra um resumo de erros e avisos, mas você pode achar sua utilidade limitada; o Editor de Script já destaca esses problemas enquanto você digita.
  • As capacidades de registro são mínimas, sem conceito de níveis de registro como DEBUG ou FATAL. Use print() e warn().

Para mais informações sobre como configurar o Studio para scripts, consulte Editor de Script.

Seu segundo script

  1. No Roblox Studio, adicione um script ao ReplicatedStorage na janela Explorer e renomeie-o para OhNo.

  2. Adicione o seguinte código ao arquivo:


    print("Olá tipos e locais de script!")
  3. Note como a saída não é diferente da quando você executou seu primeiro script.

Para entender por que o script não foi executado, consulte Tipos e Locais de Script.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.