Instance

Show Deprecated
Not Creatable
Not Browsable

Summary

Properties

Methods

Properties

Archivable

Read Parallel

Capabilities

SecurityCapabilities
Read Parallel

Name

Read Parallel

Parent

Not Replicated
Read Parallel

RobloxLocked

Hidden
Plugin Security
Read Parallel

Sandboxed

Not Replicated
Read Parallel

UniqueId

UniqueId
Not Replicated
Not Scriptable
Roblox Security
Read Parallel

Methods

AddTag

()

Parameters

tag: string
Default Value: ""

Returns

()

ClearAllChildren

()

Returns

()

Returns

Code Samples

Cloning an Instance

local Workspace = game:GetService("Workspace")
-- Get a reference to an existing object
local model = script.Parent.Model
-- Create a clone of the model
local clone = model:Clone()
-- Move the clone so it's not overlapping the original model
clone:PivotTo(model.PrimaryPart.CFrame - (Vector3.xAxis * 10))
-- Add the clone to the Workspace
clone.Parent = Workspace

Destroy

()

Returns

()

Code Samples

Instance:Destroy()

local part = script.Parent.Part
part:Destroy()

FindFirstAncestor

Write Parallel

Parameters

name: string
Default Value: ""

Returns

FindFirstAncestorOfClass

Write Parallel

Parameters

className: string
Default Value: ""

Returns

FindFirstAncestorWhichIsA

Write Parallel

Parameters

className: string
Default Value: ""

Returns

FindFirstChild

Write Parallel

Parameters

name: string
Default Value: ""
recursive: boolean
Default Value: false

Returns

Code Samples

Instance:FindFirstChild

local found = workspace:FindFirstChild("Brick")
if found then
found.Name = "Foo"
end

FindFirstChildOfClass

Write Parallel

Parameters

className: string
Default Value: ""

Returns

Code Samples

Instance:FindFirstChildOfClass

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid
while not humanoid do
humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then
character.ChildAdded:Wait()
end
end

FindFirstChildWhichIsA

Write Parallel

Parameters

className: string
Default Value: ""
recursive: boolean
Default Value: false

Returns

FindFirstDescendant

Write Parallel

Parameters

name: string
Default Value: ""

Returns

GetActor

Write Parallel

Returns

GetAttribute

Variant
Write Parallel

Parameters

attribute: string
Default Value: ""

Returns

Variant

GetAttributeChangedSignal

Parameters

attribute: string
Default Value: ""

Returns

GetAttributes

Write Parallel

Returns

GetChildren

Instances
Write Parallel

Returns

Instances

Code Samples

Instance:GetChildren

local children = workspace:GetChildren()
for i = 1, #children do
print(i, children[i].Name)
end

GetDebugId

Not Browsable
Plugin Security

Parameters

scopeLength: number
Default Value: 4

Returns

Code Samples

Instance:GetDebugId

print(workspace:GetDebugId()) --> 39FA_12
print(workspace:GetDebugId(10)) --> 39FA2FEF4D_12
print(workspace:GetDebugId(math.huge)) --> 12

GetDescendants

Write Parallel

Returns

Code Samples

Instance:GetDescendants

local descendants = workspace:GetDescendants()
-- Loop through all of the descendants of the Workspace. If a
-- BasePart is found, the code changes that parts color to green
for _, descendant in pairs(descendants) do
if descendant:IsA("BasePart") then
descendant.BrickColor = BrickColor.Green()
end
end

GetFullName

Write Parallel

Returns

Code Samples

Instance:GetFullName

-- Create a simple hierarchy
local model = Instance.new("Model")
local part = Instance.new("Part")
part.Parent = model
local fire = Instance.new("Fire")
fire.Parent = part
print(fire:GetFullName()) --> Model.Part.Fire
model.Parent = workspace
print(fire:GetFullName()) --> Workspace.Model.Part.Fire
part.Name = "Hello, world"
print(fire:GetFullName()) --> Workspace.Model.Hello, world.Fire
Instance:GetFullName Lua Implementation

local function getFullName(object)
local result = object.Name
object = object.Parent
while object and object ~= game do
-- Prepend parent name
result = object.Name .. "." .. result
-- Go up the hierarchy
object = object.Parent
end
return result
end
print(getFullName(workspace.Camera)) --> Workspace.Camera

GetStyled

Variant

Parameters

name: string
Default Value: ""

Returns

Variant

GetStyledPropertyChangedSignal

Parameters

property: string
Default Value: ""

Returns

GetTags

Write Parallel

Returns

HasTag

Write Parallel

Parameters

tag: string
Default Value: ""

Returns

IsAncestorOf

Write Parallel

Parameters

descendant: Instance
Default Value: ""

Returns

Code Samples

Instance:IsAncestorOf()

local Workspace = game:GetService("Workspace")
local spawnLocation = Workspace.SpawnLocation
local decal = spawnLocation.Decal
-- These statements are true
print(Workspace:IsAncestorOf(spawnLocation))
print(Workspace:IsAncestorOf(decal))
print(spawnLocation:IsAncestorOf(decal))
-- These statements are false
print(spawnLocation:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(Workspace))
print(decal:IsAncestorOf(spawnLocation))

IsDescendantOf

Write Parallel

Parameters

ancestor: Instance
Default Value: ""

Returns

Code Samples

Instance:IsDescendantOf

local part = Instance.new("Part")
print(part:IsDescendantOf(game))
--> false
part.Parent = workspace
print(part:IsDescendantOf(game))
--> true
part.Parent = game
print(part:IsDescendantOf(game))
--> true

IsPropertyModified

Parameters

property: string
Default Value: ""

Returns

RemoveTag

()

Parameters

tag: string
Default Value: ""

Returns

()

ResetPropertyToDefault

()

Parameters

property: string
Default Value: ""

Returns

()

SetAttribute

()

Parameters

attribute: string
Default Value: ""
value: Variant
Default Value: ""

Returns

()

WaitForChild

Can Yield

Parameters

childName: string
Default Value: ""
timeOut: number
Default Value: ""

Returns

Code Samples

Instance:WaitForChild

local part = workspace:WaitForChild("Part")
print(part.Name .. " has been added to the Workspace")

Events

AncestryChanged

Parameters

child: Instance
parent: Instance

Code Samples

Instance.AncestryChanged

local Workspace = game:GetService("Workspace")
local redPart = script.Parent.RedPart
local bluePart = script.Parent.BluePart
local changingPart = script.Parent.ChangingPart
-- Change the color of changingPart based on it's Parent
local function onAncestryChanged(part: Part, parent: Instance)
if parent == redPart then
changingPart.Color = Color3.new(1, 0, 0)
elseif parent == bluePart then
changingPart.Color = Color3.new(0, 0, 1)
else
changingPart.Color = Color3.new(1, 1, 1)
end
print(`{part.Name} is now parented to {parent.Name}`)
end
changingPart.AncestryChanged:Connect(onAncestryChanged)
-- Set changingPart's Parent property to different instances over time
while true do
task.wait(2)
changingPart.Parent = redPart
task.wait(2)
changingPart.Parent = bluePart
task.wait(2)
changingPart.Parent = Workspace
end

AttributeChanged

Parameters

attribute: string

ChildAdded

Parameters

child: Instance

Code Samples

Instance.ChildAdded

local function onChildAdded(instance)
print(instance.Name .. " added to the workspace")
end
workspace.ChildAdded:Connect(onChildAdded)
local part = Instance.new("Part")
part.Parent = workspace --> Part added to the Workspace

ChildRemoved

Parameters

child: Instance

Code Samples

Instance.ChildRemoved

local function onChildRemoved(instance)
print(instance.Name .. " removed from the workspace")
end
workspace.ChildRemoved:Connect(onChildRemoved)
local part = Instance.new("Part")
part.Parent = workspace
task.wait(2)
part:Destroy()

DescendantAdded

Parameters

descendant: Instance

Code Samples

Instance.DescendantAdded

local function onDescendantAdded(descendant)
print(descendant)
end
workspace.DescendantAdded:Connect(onDescendantAdded)
local part = Instance.new("Part")
part.Parent = workspace

DescendantRemoving

Parameters

descendant: Instance

Code Samples

Instance.DescendantRemoving

workspace.DescendantRemoving:Connect(function(descendant)
print(descendant.Name .. " is currently parented to " .. tostring(descendant.Parent))
end)
local part = Instance.new("Part")
part.Parent = workspace
part.Parent = nil
--> Part is currently parented to Workspace
print(part.Parent)
--> nil

Destroying


Code Samples

Using the Destroying Event (Immediate signals)

local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("Before yielding:", part:GetFullName(), #part:GetChildren())
task.wait()
print("After yielding:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
part:Destroy()
Using the Destroying Event (Deferred signals)

local part = Instance.new("Part", workspace)
local function onPartDestroying()
print("In signal:", part:GetFullName(), #part:GetChildren())
end
part.Destroying:Connect(onPartDestroying)
print("Before destroying:", part:GetFullName(), #part:GetChildren())
part:Destroy()
print("After destroying:", part:GetFullName(), #part:GetChildren())

StyledPropertiesChanged