![Sir Meme Hub | [16 GAMES] [$14.99 LIFETIME] | FARM/AIM/ESP](https://scriptblox.com/images/script/-1-1791044877945.webp)
Key Required VerifiedUniversal

-- f1 - remove
-- f2 - undo
-- f4 - undo all
-- LocalScript in StarterPlayerScripts
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- table of removed objects
local removedStack = {}
-- check: is the object part of a character (does the model have a Humanoid)?
local function isCharacterPart(part)
if part and part.Parent then
if part.Parent:FindFirstChildOfClass("Humanoid") then
return true
end
end
return false
end
-- delete the object under the cursor
local function deletePartUnderCursor()
local target = mouse.Target
if target and (target:IsA("Part") or target:IsA("MeshPart") or target:IsA("UnionOperation")) then
if isCharacterPart(target) then
warn("You cannot delete character parts!")
return
end
-- save the object and its parent in the stack
table.insert(removedStack, {
object = target,
parent = target.Parent
})
target.Parent = nil -- hide the object
print("Deleted object:", target.Name, "(in stack:", #removedStack .. ")")
else
print("No suitable object under the cursor")
end
end
-- restore the last removed object
local function restoreLastPart()
if #removedStack > 0 then
local data = table.remove(removedStack) -- get the last one
if data.object and data.parent then
data.object.Parent = data.parent
print("Restored object:", data.object.Name, "(remaining in stack:", #removedStack .. ")")
end
else
warn("No removed objects to restore")
end
end
-- restore all removed objects
local function restoreAllParts()
if #removedStack > 0 then
for i = #removedStack, 1, -1 do
local data = removedStack[i]
if data.object and data.parent then
data.object.Parent = data.parent
end
table.remove(removedStack, i)
end
print("All objects restored")
else
warn("No removed objects to restore")
end
end
-- key input handling
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed then
if input.KeyCode == Enum.KeyCode.F1 then
deletePartUnderCursor()
elseif input.KeyCode == Enum.KeyCode.F2 then
restoreLastPart()
elseif input.KeyCode == Enum.KeyCode.F4 then
restoreAllParts()
end
end
end)![Sir Meme Hub | [16 GAMES] [$14.99 LIFETIME] | FARM/AIM/ESP](https://scriptblox.com/images/script/-1-1791044877945.webp)



Can other people see?
@RCDHookify No, this is only for the client.