#Part not deleting
1 messages · Page 1 of 1 (latest)
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)
** You are now Level 4! **