Object Reference

Overview

Depending on the type of object, such as Service, Part, or Player, you can get the required object in various ways.

Getting the Service Object

A Service object refers to a built-in system object designed to perform specific functions within the game.

local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local ServerStorage = game:GetService("ServerStorage")
local StarterGui = game:GetService("StarterGui")
local StarterPlayer = game:GetService("StarterPlayer")
local Players = game:GetService("Players")
...

Referencing Parent Object

-- Parent of an object
local ParentPart   = Part.Parent  

-- Parent of a script
local ScriptParent = script.Parent

Referencing Child Object

-- Return object by address (may fail if object is not loaded yet)
local ChildPart1 = Workspace.ChildPart  

-- Return the first object matching the name
local ChildPart2 = Workspace:FindFirstChild("ChildPart")  

-- Wait for the object to be returned
local ChildPart3 = SomePart:WaitForChild("ChildPart")

Getting All Child Objects

When the hierarchy of the Part is as follows:

local Part = Workspace:WaitForChild("Part")  

-- Return all the first child objects of the parent object (Part)
local Children = Part:GetChildren()  

for _, child in ipairs(Children) do
    -- Print ChildPart1, ChildPart2
    print(child.Name)
end  
  

-- Return all descendant objects of the parent object (Part)
local Descendants = Part:GetDescendants()  

for _, descendant in ipairs(Descendants) do
    -- Print ChildPart1, ChildPart1-1, ChildPart2, ChildPart2-1
    print(descendant.Name)
end

Getting All Players

local Players = game:GetService("Players")
local PlayerList = Players:GetPlayers()

for i = 1, #PlayerList do
    print(PlayerList[i])
end

Getting LocalPlayer (LocalScript)

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

Getting Humanoid from Player

local Character = Player.Character
local Humanoid = Character:FindFirstChild("Humanoid")
local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")

Getting Player from Humanoid

local Character = Humanoid.Parent
local Player = Players:GetPlayerFromCharacter(Character)

Last updated