The wall is not nil, and for some reason even though I call :Destroy()
on the function, the wall model is not nil.
20:23:31.824 Wall - Client - LocalScript:69
20:23:31.836 - Client - LocalScript:70
20:23:31.837 - Client - LocalScript:72
20:23:31.837 Wall - Client - LocalScript:73
This is the full script.
--\\ Variables //--
local tool = script.Parent
local handle = tool:WaitForChild("Handle")
local remoteEvent = tool:WaitForChild("RemoteEvent")
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local cooldown = false
local equipped = false
local rotation = CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))
local replicatedStorage = game:GetService("ReplicatedStorage")
local contextActionService = game:GetService("ContextActionService")
local wallModel = replicatedStorage:WaitForChild("Assets"):WaitForChild("Trowels"):WaitForChild("Wall")
local visualPlacementModel = nil
--\\ Functions //--
function rotateWall(actionName, inputState, inputObject)
if inputObject.KeyCode == Enum.KeyCode.Q and inputState == Enum.UserInputState.Begin then
rotation *= CFrame.Angles(math.rad(0), math.rad(-45), math.rad(0))
visualPlacementModel:PivotTo(CFrame.new(mouse.Hit.Position) * CFrame.new(0, visualPlacementModel:GetExtentsSize().Y/2, 0) * rotation)
elseif inputObject.KeyCode == Enum.KeyCode.E and inputState == Enum.UserInputState.Begin then
rotation *= CFrame.Angles(math.rad(0), math.rad(45), math.rad(0))
visualPlacementModel:PivotTo(CFrame.new(mouse.Hit.Position) * CFrame.new(0, visualPlacementModel:GetExtentsSize().Y/2, 0) * rotation)
end
end
mouse.Move:Connect(function()
if visualPlacementModel and equipped then
visualPlacementModel:PivotTo(CFrame.new(mouse.Hit.Position) * CFrame.new(0, visualPlacementModel:GetExtentsSize().Y/2, 0) * rotation)
end
end)
tool.Activated:Connect(function()
local mouseCFrame = mouse.Hit
if not cooldown and equipped then
cooldown = true
remoteEvent:FireServer(mouseCFrame, rotation)
task.wait(7)
cooldown = false
end
end)
tool.Equipped:Connect(function()
equipped = true
print(visualPlacementModel)
if not visualPlacementModel then
visualPlacementModel = wallModel:Clone()
visualPlacementModel.Parent = workspace.Terrain
for i, v in pairs(visualPlacementModel:GetDescendants()) do
if v:IsA("BasePart") then
v.BrickColor = player.TeamColor
v.CanCollide = false
v.CanQuery = false
v.Transparency = 0.5
end
end
end
end)
tool.Unequipped:Connect(function()
equipped = false
print(visualPlacementModel)
print(visualPlacementModel:Destroy())
visualPlacementModel:Destroy()
print(visualPlacementModel:Destroy())
print(visualPlacementModel)
end)
contextActionService:BindAction("rotateWall", rotateWall, true, Enum.KeyCode.Q, Enum.KeyCode.E)