ObjectValue

Show Deprecated

A ObjectValue is an object whose purpose is to store a single reference to another object. If this object is duplicated within studio and the value refers to an object also being copied, then the new ObjectValue will point to the copied object instead of the original. Otherwise, the same value is kept. Copying and pasting this object will clear the value field.

The value of this can be set within studio like other reference-type fields (such as Model.PrimaryPart): click the field within the Properties window, then click the object you wish to set it to within the game view or Explorer window. You can clear the field (set it to nil) by clicking the X that appears when you click the field.

Like all "-Value" objects, this single value is stored in the Value property. The Changed event for this (and other objects like it) will fire with the new value being stored in the object, instead of a string representing the property being changed.

Code Samples

ObjectValue Example

local objectValue = Instance.new("ObjectValue")
objectValue.Name = "MyBaseplateReference"
objectValue.Value = workspace:FindFirstChild("Baseplate")
objectValue.Parent = workspace

Properties

Read Parallel

Holds a reference to an instance.

Methods

Events

Changed

This event fires whenever the ObjectValue.Value property is changed. It will run with the new value being stored in the argument object, instead of a string representing the property being changed.

This event, like other changed events, can be used to track when an ObjectValue changes and to track the different values that it may change to.

For instance, this even may be useful in games that rely on ObjectValues to track game states and values, such as RPG targeting systems.

Equivalent changed events exist for similar objects, such as NumberValue and StringValue, depending on what object type best suits the need.

Parameters

value: Instance

The value after the change.


Code Samples

ObjectValue Changed

local objectValue = script.Parent.ObjectValue
local part = script.Parent.Part
local function printObject(object)
print(object:GetFullName())
end
objectValue.Changed:Connect(printObject)
objectValue.Value = part