Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Script not creating object as usual?

Hello.


I've just learned about metatabes, so I made a script messing around with metatables.

It should create a new part, but I keep on getting an error saying:

ServerScriptService.Script:23: invalid argument #3 (BrickColor expected, got nil)


Here is the full script.

local part = {}
part.__index = part

function part.new()
	local partData = {}
	
	setmetatable(partData, part)
	
	partData.Transparency = 0
	partData.Anchored = true
	partData.BrickColor = BrickColor.new("Really red")
	partData.CanCollide = true
	partData.Material = Enum.Material.Neon
	
	return partData
end

function part:make()
	local actualPart = Instance.new("Part")
	actualPart.Transparency = self.Transparency
	actualPart.Anchored = self.Anchored 
	actualPart.BrickColor = self.BrickColor
	actualPart.CanCollide = self.CanCollide
	actualPart.Material = self.Material
	actualPart.Parent = workspace
	
	return actualPart
end

local data = part.new()
local partInWorkspace = part:make()

1 answer

Nevermind, I just wrote part:make() instead of data:make().

local part = {}
part.__index = part

function part.new()
    local partData = {}
    
    setmetatable(partData, part)
    
    partData.Transparency = 0
    partData.Anchored = true
    partData.BrickColor = BrickColor.new("Really red")
    partData.CanCollide = true
    partData.Material = Enum.Material.Neon
    
    return partData
end

function part:make()
    local actualPart = Instance.new("Part")
    
    actualPart.Transparency = self.Transparency
    actualPart.Anchored = self.Anchored 
    actualPart.BrickColor = self.BrickColor
    actualPart.CanCollide = self.CanCollide
    actualPart.Material = self.Material
    actualPart.Parent = workspace
    
    return actualPart
end

local data = part.new()
local partInWorkspace = data:make()

This discussion is preserved as it was. New answers, comments, and votes are closed.