Roblox Luau - Nível 2 Flashcards
Explique a diferença entre um LocalScript e um Script no Roblox Studio.
Um Script é executado no servidor e controla a lógica do jogo para todos os jogadores, enquanto um LocalScript roda apenas no cliente (no dispositivo do jogador) e lida com elementos visuais ou inputs locais, como a interface do usuário.
Verdadeiro ou Falso: Um LocalScript pode modificar diretamente a vida (Humanoid.Health) de um personagem de outro jogador.
Falso. Alterações em propriedades que afetam todos os jogadores (como saúde) devem ser feitas por um Script no servidor por questões de segurança e sincronização.
Complete a lacuna: Para que um LocalScript funcione, ele deve ser filho de um objeto que esteja dentro de _______.
StarterPlayerScripts, StarterGui ou PlayerScripts (durante a execução).
O que está errado nesta afirmação?
“Um Script dentro de Workspace só pode ser executado se um jogador interagir com o objeto.”
O erro é que Scripts em Workspace são executados automaticamente quando o jogo inicia, sem necessidade de interação do jogador.
Qual é a função do Wait() em um script do Roblox Studio? Dê um exemplo simples.
Wait() pausa a execução do script por um curto período (ou até um evento ocorrer).
Exemplo:
while true do
print(“Esperando…”)
wait(1) – Pausa de 1 segundo
end
Verdadeiro ou Falso: A função print() exibe mensagens visíveis para todos os jogadores na tela do jogo.
Falso. print() envia mensagens apenas para o Output do Roblox Studio, útil para depuração.
Identifique a inconsistência:
“Um LocalScript dentro de ServerScriptService será executado normalmente no cliente.”
A inconsistência é que ServerScriptService é exclusivo do servidor. LocalScripts ali não funcionam; devem estar em pastas do cliente.
Explique o que é um Vector3 no Roblox Studio e dê um exemplo de uso.
Vector3 representa uma posição ou direção no espaço 3D (X, Y, Z).
Exemplo:
local posicao = Vector3.new(10, 5, 0) – Posição X=10, Y=5, Z=0
Complete a lacuna: Para mover um objeto para uma posição específica usando código, você deve modificar sua propriedade _______.
Position (ex: part.Position = Vector3.new(0, 10, 0)).
Verdadeiro ou Falso: A propriedade Transparency de uma Part aceita valores apenas entre 0 e 1, onde 0 é invisível e 1 é totalmente visível.
Falso. 0 é visível, 1 é invisível (transparência total).
O que está errado neste código?
local part = game.Workspace.Part
part.Color = “Vermelho”
Cores são definidas com Color3.new() ou valores RGB, não com strings.
Correto:
part.Color = Color3.new(1, 0, 0) – Vermelho
Descreva o propósito da pasta ReplicatedStorage no Roblox Studio.
ReplicatedStorage armazena dados e scripts acessíveis tanto pelo servidor quanto pelo cliente, útil para compartilhar informações sem duplicação.
Verdadeiro ou Falso: Um Script dentro de ReplicatedFirst será executado antes de qualquer outro script no jogo.
Verdadeiro. ReplicatedFirst é carregado primeiro, ideal para pré-carregar assets ou telas de loading.
Como você faria para criar uma nova Part vermelha no Workspace usando código Lua?
local part = Instance.new(“Part”)
part.Parent = game.Workspace
Complete a lacuna: Para conectar uma função a um evento (ex: toque em uma parte), usa-se o método _______.
Connect() (ex: part.Touched:Connect(function() end)).
O que está errado nesta linha?
“game.Players.PlayerAdded:Connect(function(player) print(player.Name) end) só funciona em LocalScripts.”
O erro é que PlayerAdded é um evento do servidor, logo, só funciona em Scripts, não em LocalScripts.
Explique o que é CFrame e como difere de Vector3.
CFrame define posição e rotação de um objeto, enquanto Vector3 só armazena posição.
Exemplo:
part.CFrame = CFrame.new(0, 5, 0) * CFrame.Angles(0, math.pi/2, 0) – Posição + rotação 90° em Y
Verdadeiro ou Falso: math.random(5) sempre retorna um número entre 1 e 5, incluindo decimais.
Falso. Retorna inteiros entre 1 e 5 (ex: 3), sem decimais.
Qual é a diferença entre Destroy() e Remove() ao deletar um objeto?
Destroy() é o método correto (ex: part:Destroy()), enquanto Remove() não é uma função válida em Lua/Roblox.
Como você faria um objeto girar continuamente no eixo Y usando um script?
while true do
script.Parent.CFrame = script.Parent.CFrame * CFrame.Angles(0, 0.1, 0)
wait(0.1)
end