Lua in Roblox
Coding in Roblox with Lua
1/ Create scripts
Create script by pressing the (+) sign next to Workspace or a Part.
Rename the script if you like (as you can run multiple scripts per object).
Write comments in script with —
2/ Objects
Dot notation
script.parent to refer to the parent of the script
For every object we have properties, built-in functions, and events.
3/ Change properties
game.Workspace.Part.BrickColor = BrickColor.new(“Really red”)
game.Workspace.Part.Transparency = 0 – – disappear with 0
game.Workspace.Part.Reflectance = 0.5
game.Workspace.Part.Material = “Brick”
game.Workspace.Part.Anchored = true
game.Workspace.Part.CanCollide = false
4/ Referencing a part
part = game.Workspace.myPart
and then:
part.Transparency = 1
5/ Variables
myVariable = “hello”
x = 5
done = true
print(myVariable)
6/ Create new part
part = Instance.new(“Part”) –from advanced objects see what parts are available
part.Parent = game.Workspace
Alternatively:
part = Instance.new(“Part”, game.Workspace)
7/ Positions
part.Position = Vector3.new(0, 0, 0)
8/ Loops & conditionals
— while loop
counter = 0 while counter < 10 do local part = Instance.new(“Part”, game.Workspace) wait(1) counter ++ end
— for loop
for i = 1, 10, 1 do print (i) end
general form:
for i = x, y, z do
x initial value
y final value
z step
9/ Functions
function myFunction() game.Workspace.Baseplate.BrickColor = BrickColor.new(“Really Red”) end wait(2) myFunction()
Parameters
function addition (number1, number2) print(number1 + number2) end addition(5, 7)
10/ Events
An event listens for something to happen and when it does, it triggers an action.
Set up an event (listener to events) – Connect it to a function.
View >> Object Browser. See events (lighting icons) per object. You can use any event available for the specific object.
For objects Part there is an event called “Touched”.
Create a Part. Call it “TouchedEventPart”.
Create a script in Workspace. Inside the script we refer to the TouchedEventPart:
game.Workspace.TouchedEventPart.Touched:Connect(function() game.Workspace.Baseplate.BrickColor = BrickColor.new("Black") end)
Another example: Create a Part. Name it PartMurder. When touched it will print “Kill him!”
function killPlayer() print ("Kill him!") end game.Workspace.PartMurder.Touched:Connect(killPlayer)
Parameters: You can pass to the function a parameter. The type of the parameter is defined if you choose the event and see the input type. Eg for the touched event the parameter is the object which touched the part.
game.Workspace.TouchedEventPart.Touched:Connect(function(hit)
print (hit.Name)
end)
The instance hit will receive the other part (body part i.e. RightFoot, LeftLeg etc).
game.Workspace.TouchedEventPart.Touched:Connect(function(hit) print (hit.Parent.Name) end)
Print the name of the player.
game.Workspace.TouchedEventPart.Touched:Connect(function(hit)
hit.Parent.Humanoid.Sit = True
end)
Make the player sit. Humanoid is a property for players.
game.Workspace.TouchedEventPart.Touched:Connect(function(hit) if game.Players:GetPlayerFromCharacter(hit.Parent) then hit.Parent.Humanoid.Sit = True end end)
11/ If statements
if 2+3 == 5 then print (“correct”) end
if game.Lighting.TimeOfDay == “12:00:00” then print (“Correct”) end
Computer Science teacher