User:NXTBoy/Scripts/"new" operator
From Legacy Roblox Wiki
< User:NXTBoy | Scripts
_G.new = function(typeName) local instance -- Instances if pcall(function() instance = Instance.new(typeName) end) then print("Instance") return function(properties) if type(properties) == "table" then for property, value in pairs(properties) do --Children if type(property) == "number" then value.Parent = instance --Events elseif type(value) == "function" then instance[property]:connect(function(...) value(instance, ...) end) --Properties else instance[property] = value end end end return instance end -- Built in classes elseif getfenv()[typeName] and type(getfenv()[typeName].new) == "function" then return getfenv()[typeName].new -- User classes defined in _G elseif _G[typeName] and type(_G[typeName].new) == "function" then return _G[typeName].new -- What is this I don't even else error("Unknown type \""..typeName..."\"", 2) end end
Usage as follows:
local new = _G.new local m = new "Model" { Name = "Test", Parent = workspace, new "Part" { Name = "My Part", BrickColor = new "BrickColor"("Bright red"), Size = new "Vector3"(2, 2, 2) } } local p = new "Part"() p.Parent = m