Clone (Method)

From Legacy Roblox Wiki
Revision as of 03:49, 27 April 2023 by Realjame (talk | contribs) (Text replacement - "<code lua>" to "<SyntaxHighlight code="lua">")
Jump to navigationJump to search
Clone( )
Returns Instance
Description: Returns a clone of the object and its children, unless its Archivable property is false. The clone will have the same properties as the original object and the same descendants (except those with an Archivable property set to false). The clone's Parent will be nil.
Member of: Instance


Example
local Model = Workspace.Model
while true do
    local ModelCopy = Model:Clone()
    ModelCopy.Parent = Workspace
    wait(300)
end


Objects that cannot be cloned

When Archivable is set to false on an object, the game sees that as a temporary object that should not be involved in saving, nor cloning. When Clone creates the clone of an object and its descendants, any objects with the Archivable property set to false will not be included in the clone. For example, if a Model contains a Part whose Archivable property is set to false, when the Model is cloned, the clone Model will not contain a clone of the Part.

This means that if Clone is called directly on a non-archivable object, it will return nil.

Several classes of objects, such as Hats, the DataModel and services can never be cloned, and behave in the same way as a non-archivable object.

Example

This code demonstrates how you can prevent an object from being cloned using the Archivable property:

local Part = Instance.new('Part', Workspace)
print(Part) --> Part
Part.Archivable = false
print(Part) --> Part
local newPart = Part:Clone()
print(newPart) --> nil