
Key Required

--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
--// Global toggle
getgenv().remover = false
--// Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
--// GUI Setup
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ObstacleRemoverGui"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local Frame = Instance.new("Frame")
Frame.Size = UDim2.fromScale(0.2, 0.15)
Frame.Position = UDim2.fromScale(0.4, 0.4)
Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
Frame.BorderSizePixel = 0
Frame.Parent = ScreenGui
local UICorner = Instance.new("UICorner", Frame)
UICorner.CornerRadius = UDim.new(0, 12)
local ToggleButton = Instance.new("TextButton")
ToggleButton.Size = UDim2.fromScale(0.9, 0.5)
ToggleButton.Position = UDim2.fromScale(0.05, 0.25)
ToggleButton.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
ToggleButton.Text = "Obstacle Remover: OFF"
ToggleButton.TextColor3 = Color3.new(1, 1, 1)
ToggleButton.TextScaled = true
ToggleButton.Font = Enum.Font.GothamBold
ToggleButton.Parent = Frame
local ButtonCorner = Instance.new("UICorner", ToggleButton)
ButtonCorner.CornerRadius = UDim.new(0, 10)
--// Obstacle Remover Class
local ObstacleRemove = {}
ObstacleRemove.__index = ObstacleRemove
function ObstacleRemove.new(obstaclesFolder)
local self = setmetatable({}, ObstacleRemove)
self.Folder = obstaclesFolder
or workspace:WaitForChild("Map"):WaitForChild("Obstacles")
self.OriginalPositions = {}
self:UpdateDescendants(self.Folder)
self.Folder.DescendantAdded:Connect(function(descendant)
self:UpdatePart(descendant)
end)
local lastState = getgenv().remover
RunService.RenderStepped:Connect(function()
if getgenv().remover ~= lastState then
lastState = getgenv().remover
self:UpdateDescendants(self.Folder)
end
end)
return self
end
function ObstacleRemove:UpdatePart(part)
if part:IsA("BasePart") then
part.CanCollide = false
part.CanTouch = false
end
if part.Name == "Hitbox" then
if not self.OriginalPositions[part] then
self.OriginalPositions[part] = part.Position
end
if getgenv().remover then
part.Position = Vector3.new(0, -5000, 0)
else
part.Position = self.OriginalPositions[part]
end
end
end
function ObstacleRemove:UpdateDescendants(parent)
for _, descendant in ipairs(parent:GetDescendants()) do
self:UpdatePart(descendant)
end
end
--// Initialize remover
local remover = ObstacleRemove.new()
--// Button Logic
ToggleButton.MouseButton1Click:Connect(function()
getgenv().remover = not getgenv().remover
if getgenv().remover then
ToggleButton.Text = "Obstacle Remover: ON"
ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
else
ToggleButton.Text = "Obstacle Remover: OFF"
ToggleButton.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
end
end)
--// Dragging Logic
local UserInputService = game:GetService("UserInputService")
local dragging = false
local dragStart
local startPos
local function updateDrag(input)
local delta = input.Position - dragStart
Frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
Frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = Frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
Frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
updateDrag(input)
end
end)



ohh i get it its all vibecoded
@klimmac yo what does vibecoded mean ?