--[[
OP GUI – Speed + VIP Walls Delete + Tsunamis Delete + Fly + Noclip + Anti‑Ragdoll
All toggles show ON/OFF correctly.
Press P to toggle the GUI.
--]]
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")
-- Anti‑ragdoll variables
local antiRagdollEnabled = false
local bodyGyro = nil
-- GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = player.PlayerGui
screenGui.ResetOnSpawn = false
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 300, 0, 420)
frame.Position = UDim2.new(0.5, -150, 0.5, -210)
frame.BackgroundColor3 = Color3.fromRGB(20, 20, 40)
frame.BackgroundTransparency = 0.15
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = screenGui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 30)
title.Text = "🔥 OP Tool"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBold
title.TextSize = 18
title.Parent = frame
local function makeButton(text, y, callback, width)
width = width or 260
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, width, 0, 30)
btn.Position = UDim2.new(0.5, -width/2, 0, y)
btn.Text = text
btn.BackgroundColor3 = Color3.fromRGB(40, 80, 200)
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 14
btn.Parent = frame
btn.MouseButton1Click:Connect(callback)
return btn
end
-- Speed slider
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(0, 200, 0, 20)
speedLabel.Position = UDim2.new(0.5, -100, 0, 40)
speedLabel.Text = "Speed: 16"
speedLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
speedLabel.BackgroundTransparency = 1
speedLabel.Font = Enum.Font.GothamBold
speedLabel.TextSize = 14
speedLabel.Parent = frame
local speedSlider = Instance.new("TextBox")
speedSlider.Size = UDim2.new(0, 200, 0, 30)
speedSlider.Position = UDim2.new(0.5, -100, 0, 65)
speedSlider.Text = "16"
speedSlider.TextColor3 = Color3.fromRGB(255, 255, 255)
speedSlider.BackgroundColor3 = Color3.fromRGB(40, 40, 70)
speedSlider.Font = Enum.Font.Gotham
speedSlider.TextSize = 16
speedSlider.ClearTextOnFocus = false
speedSlider.Parent = frame
local applySpeedBtn = makeButton("Apply Speed", 105, function()
local val = tonumber(speedSlider.Text)
if val then
humanoid.WalkSpeed = val
speedLabel.Text = "Speed: " .. val
print("✅ Speed set to", val)
else
print("⚠️ Invalid number")
end
end)
-- Delete VIP Walls
local vipWallsBtn = makeButton("🗑️ Delete VIP Walls", 145, function()
local map = workspace:FindFirstChild("Map")
local vip = map and map:FindFirstChild("VIP")
if vip then
local count = 0
for _, child in ipairs(vip:GetDescendants()) do
if child:IsA("BasePart") then
pcall(function() child:Destroy() end)
count = count + 1
end
end
print("✅ Deleted", count, "parts in VIP folder.")
vipWallsBtn.Text = "✅ Done (" .. count .. ")"
task.wait(1.5)
vipWallsBtn.Text = "🗑️ Delete VIP Walls"
else
print("⚠️ VIP folder not found at Workspace.Map.VIP")
vipWallsBtn.Text = "❌ Not Found"
task.wait(1)
vipWallsBtn.Text = "🗑️ Delete VIP Walls"
end
end)
-- Delete Tsunamis
local tsunamiBtn = makeButton("🌊 Delete Tsunamis", 185, function()
local map = workspace:FindFirstChild("Map")
local tsunamis = map and map:FindFirstChild("Tsunamis")
if tsunamis then
pcall(function()
tsunamis:Destroy()
print("✅ Tsunamis folder deleted!")
tsunamiBtn.Text = "✅ Deleted!"
task.wait(1)
tsunamiBtn.Text = "🌊 Delete Tsunamis"
end)
else
print("⚠️ Tsunamis folder not found at Workspace.Map.Tsunamis")
tsunamiBtn.Text = "❌ Not Found"
task.wait(1)
tsunamiBtn.Text = "🌊 Delete Tsunamis"
end
end)
-- Fly toggle
local flyEnabled = false
local bodyVelocity = nil
local flyBtn = makeButton("✈️ Fly: OFF", 225, function()
flyEnabled = not flyEnabled
if flyEnabled then
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(10000, 10000, 10000)
bodyVelocity.Parent = rootPart
flyBtn.Text = "✈️ Fly: ON"
print("✈️ Fly enabled")
else
if bodyVelocity then bodyVelocity:Destroy(); bodyVelocity = nil end
flyBtn.Text = "✈️ Fly: OFF"
print("✈️ Fly disabled")
end
end)
-- Noclip toggle
local noclipEnabled = false
local noclipBtn = makeButton("🚫 Noclip: OFF", 265, function()
noclipEnabled = not noclipEnabled
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = not noclipEnabled
end
end
noclipBtn.Text = noclipEnabled and "🚫 Noclip: ON" or "🚫 Noclip: OFF"
print("🔄 Noclip:", noclipEnabled)
end)
-- Anti‑Ragdoll toggle (prevents falling over)
local antiRagdollBtn = makeButton("🧠 Anti‑Ragdoll: OFF", 305, function()
antiRagdollEnabled = not antiRagdollEnabled
if antiRagdollEnabled then
humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
humanoid.PlatformStand = false
if bodyGyro then bodyGyro:Destroy() end
bodyGyro = Instance.new("BodyGyro")
bodyGyro.Parent = rootPart
bodyGyro.MaxTorque = Vector3.new(99999, 99999, 99999)
bodyGyro.CFrame = rootPart.CFrame
humanoid.AutoRotate = true
antiRagdollBtn.Text = "🧠 Anti‑Ragdoll: ON"
print("🧠 Anti‑Ragdoll enabled")
else
humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, true)
if bodyGyro then bodyGyro:Destroy(); bodyGyro = nil end
humanoid.AutoRotate = false
antiRagdollBtn.Text = "🧠 Anti‑Ragdoll: OFF"
print("🧠 Anti‑Ragdoll disabled")
end
end)
-- Close button
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 20, 0, 20)
closeBtn.Position = UDim2.new(1, -30, 0, 5)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 40, 40)
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 14
closeBtn.Parent = frame
closeBtn.MouseButton1Click:Connect(function()
screenGui:Destroy()
end)
-- Fly movement
game:GetService("RunService").RenderStepped:Connect(function()
if flyEnabled and bodyVelocity then
local move = Vector3.new(0, 0, 0)
local camera = workspace.CurrentCamera
local uis = game:GetService("UserInputService")
if uis:IsKeyDown(Enum.KeyCode.W) then move = move + camera.CFrame.LookVector * 50 end
if uis:IsKeyDown(Enum.KeyCode.S) then move = move - camera.CFrame.LookVector * 50 end
if uis:IsKeyDown(Enum.KeyCode.A) then move = move - camera.CFrame.RightVector * 50 end
if uis:IsKeyDown(Enum.KeyCode.D) then move = move + camera.CFrame.RightVector * 50 end
if uis:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0, 50, 0) end
if uis:IsKeyDown(Enum.KeyCode.LeftShift) then move = move - Vector3.new(0, 50, 0) end
bodyVelocity.Velocity = move
end
-- Keep upright when anti‑ragdoll is on
if antiRagdollEnabled and bodyGyro and rootPart then
bodyGyro.CFrame = CFrame.new(rootPart.Position, rootPart.Position + Vector3.new(0, 1, 0))
end
end)
-- Toggle GUI with P
game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.P then
screenGui.Enabled = not screenGui.Enabled
end
end)
print("✅ OP GUI loaded. Press P to toggle.")