I am making a plugin that creates walls along the edges of the selected part, but it keeps coming out with this error:
08:10:43.551 - Plugin_191344304.MakeWalls.Script:50: bad argument #1 to '?' (Vector3 expected, got number)
08:10:43.552 - Script 'Plugin_191344304.MakeWalls.Script', Line 50
08:10:43.552 - Stack End
08:10:43.553 - Disconnected event because of exception
The code is here:
local pluginVersion = 0.35
local hasLoaded = plugin:GetSetting("pluginHasLoaded")
print("Loading ExplosionCreate Plugin v" .. pluginVersion) --Just a loading message
if not hasLoaded then
plugin:SetSetting("pluginHasLoaded", true)
end
-- Setup Toolbar
local toolbar = plugin:CreateToolbar("dudemanloserr Productions") --Toolbar Name
local isActive = false
-- Setup button
local button = toolbar:CreateButton(
"MakeWalls", -- Button Text
"MakeWalls Plugin: Click a part to create 3-stud-tall walls, of the same color, along it's edges.", --Text that appears when you hover over the button with the mouse
"9869681" -- Button Icon ID
)
button.Click:connect(function() -- When the plugin button is clicked, do this stuff.
if isActive == false then
plugin:Activate(true)
isActive = true
elseif isActive == true then
plugin:Activate(false)
isActive = false
end
end)
--MouseButton1(left mouse) function
local mouse = plugin:GetMouse()
mouse.Button1Down:connect(function()
if isActive then
local targ = mouse.Target
local wallsMade = 0 -- Amount of walls made
while wallsMade < 4 do --Nobody likes For loops, right?
local wall = Instance.new("Part", targ.Parent)
wall.Name = "WallPart"
wall.BrickColor = targ.BrickColor
--Code from here going down makes the walls surfaces the same as the target's
wall.BackSurface = targ.BackSurface
wall.BottomSurface = targ.BottomSurface
wall.FrontSurface = targ.FrontSurface
wall.LeftSurface = targ.LeftSurface
wall.RightSurface = targ.RightSurface
wall.TopSurface = targ.TopSurface
--The surfaces should be the same by this point.
local x = targ.Position.X-targ.Size.X/2
local y = targ.Position.Y+targ.Size/2 -- (LINE 50)
local z = targ.Position.Z
if wallsMade == 0 then --Negative X
wall.Position = Vector3.new(x, y, z)
wall.Size = Vector3.new(targ.Size.X, 3, 1)
elseif wallsMade == 1 then
x = targ.Position.X
z = targ.Position.Z-targ.Size.Z/2
wall.Position = Vector3.new(x, y, z) --Negative Z
wall.Size = Vector3.new(1, 3, targ.Size.Z)
elseif wallsMade == 2 then
x = targ.Position.X+targ.Size.X/2
z = targ.Position.Z
wall.Position = Vector3.new(x,y,z) --Positive X
wall.Size = Vector3.new(targ.Size.X, 3, 1)
elseif wallsMade == 3 then
x = targ.Position.X
z = targ.Position.Z+targ.Size/2
wall.Position = Vector3.new(x,y,z) --Positive Z
wall.Size = Vector3.new(1, 3, targ.Size.Z)
end
wallsMade = wallsMade + 1
end
end
end)
print("Loaded WallsPlug Plugin v" .. pluginVersion) --Another loading message
