do local OldInstance = Instance Instance = {} local function Blank(...) return ... end local function Test(Obj,Prop) local Result = nil pcall(function() Result = Blank(Obj[Prop]) end) return Result end local ObjFunctions = {} ObjFunctions.Edit = function(Object,Table) for i,v in pairs(Table)do Object[i] = v end end Instance.new = function(Type,Parent) local Object = OldInstance.new(Type,Parent or nil) local ObjectController = setmetatable({}, { __index = function(self, i) return (type(Test(Object,i)) == "function" and ObjFunctions[i] == nil) and function() Object[i](Object) end or (ObjFunctions[i] or Object[i]) end, __newindex = function(self, i, v) Object[i] = v end, __tostring = function(table) return Object.Name end }) return ObjectController end end Object = Instance.new("Part",workspace) Object:Edit{CFrame = CFrame.new(0,5,0),Anchored = true} Object.CFrame = CFrame.new(0,0,0) wait(1) Object:Destroy()