local roblox = require("@lune/roblox") :: any local Instance = roblox.Instance local root = Instance.new("Model") local child = Instance.new("Part") local objValue1 = Instance.new("ObjectValue") local objValue2 = Instance.new("ObjectValue") objValue1.Name = "ObjectValue1" objValue2.Name = "ObjectValue2" objValue1.Value = root objValue2.Value = child objValue1.Parent = child objValue2.Parent = child child.Parent = root local clonedChild = child:Clone() assert(clonedChild ~= child) assert(clonedChild.Parent == nil) local clonedObjValue1 = clonedChild[objValue1.Name] local clonedObjValue2 = clonedChild[objValue2.Name] assert(clonedObjValue1 ~= objValue1) assert(clonedObjValue2 ~= objValue2) assert(clonedObjValue1.Value == root, "ObjectValue1.Value should still point to original root") assert(clonedObjValue2.Value == clonedChild, "ObjectValue2.Value should point to cloned child")