#Part not deleting

1 messages · Page 1 of 1 (latest)

native crest
#

So basically, the playerPreviews table isn't destroying the part when told to.
local preview = playerPreviews[player.UserId]
if preview then
preview:Destroy()
playerPreviews[player.UserId] = nil
end

Code below⬇️

#

Both in the same code, but Discord doesn't let me send it bc of the text limit

#

local placedFolder = workspace:FindFirstChild("PlacedParts") or Instance.new("Folder", workspace)
placedFolder.Name = "PlacedParts"

local minDistance = 1
local buildZone = workspace:WaitForChild("Part")
local playerPreviews = {}

local function removePlayerTool(player)
    if player.Character then
        local equipTool = player.Character:FindFirstChildOfClass("Tool")
        if equipTool then
            equipTool:Destroy()
            return
        end
    end

    if player:FindFirstChild("Backpack") then
        local bagTool = player.Backpack:FindFirstChildOfClass("Tool")
        if bagTool then
            bagTool:Destroy()
            return
        end
    end

end


placeRemote.OnServerEvent:Connect(function(player, mousePos, part, action)
    if not mousePos then return end

    local targetPos = Vector3.new(mousePos.X, part.Size.Y / 2, mousePos.Z)

    local zonePos = buildZone.Position
    local zoneSize = buildZone.Size / 2

    local insideX = targetPos.X >= (zonePos.X - zoneSize.X) and targetPos.X <= (zonePos.X + zoneSize.X)
    local insideY = targetPos.Y >= (zonePos.Y - zoneSize.Y) and targetPos.Y <= (zonePos.Y + zoneSize.Y)
    local insideZ = targetPos.Z >= (zonePos.Z - zoneSize.Z) and targetPos.Z <= (zonePos.Z + zoneSize.Z)
    local insideZone = insideX and insideY and insideZ

    if action == "Activated" then
        local clone = part:Clone()
        clone.Highlight.Enabled = false

        for _, placed in ipairs(placedFolder:GetChildren()) do
            if placed:IsA("BasePart") then
                local distance = (placed.Position - targetPos).Magnitude
                if distance < (placed.Size.Magnitude / 2 + clone.Size.Magnitude / 2 + minDistance) then
                    clone:Destroy()
                    return
                end
            end
        end```
#
            print("Placement failed: outside build area")
            clone:Destroy()
            return
        end

        clone.Parent = placedFolder
        clone.Anchored = true
        clone.Position = targetPos
        clone.CanCollide = true
        
        
        local preview = playerPreviews[player.UserId]
        if preview then
            preview:Destroy() 
            playerPreviews[player.UserId] = nil
        end

        removePlayerTool(player)
    end

    if action == "Equipped" then
        local preview = playerPreviews[player.UserId]
        if not preview then
            preview = part:Clone()
            preview.Anchored = true
            preview.CanCollide = false
            preview.Highlight.Enabled = true
            preview.Parent = workspace
            playerPreviews[player.UserId] = preview
        end

        preview.Position = targetPos

        if insideZone then
            preview.Highlight.FillColor = Color3.fromRGB(0, 255, 0)
        else
            preview.Highlight.FillColor = Color3.fromRGB(255, 0, 0)
        end

    elseif action == "Unequipped" then
        local preview = playerPreviews[player.UserId]
        if preview then
            preview:Destroy()
            playerPreviews[player.UserId] = nil
        end
    end
end)
dusk basinBOT
#

studio** You are now Level 4! **studio

native crest
#

Both parts come from RecStorage

#

Local Script: