Back to Scripts
Auto Complete
ScriptBlox
Free
Game: Obby Royale
203
Views
0
Likes
2
Dislikes

viku
offline
Features
Auto Complete stages in Obby Royale
- Removed death parts for easy completion of Death Penalty
- Wait time of 10 seconds on start to avoid detections
- Automatic tweening to stage completion
Script Code
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
local tops = {}
local spawns = workspace.Arena.Spawns
for i = 1, 8 do
local spawnFolder = spawns:FindFirstChild(tostring(i))
if spawnFolder then
local top = spawnFolder:FindFirstChild("Top")
if top and top:IsA("BasePart") then
table.insert(tops, top)
end
end
end
local targetPart = workspace.Middle.CollideableTop.Collideable
if not targetPart or not targetPart:IsA("BasePart") then
return
end
local function moveKillParts()
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") and (string.find(string.lower(part.Name), "kill") or string.find(string.lower(part.Name), "damage") or part.Material == Enum.Material.Neon) then
part.CFrame = CFrame.new(0, -1000, 0)
end
end
end
moveKillParts()
workspace.DescendantAdded:Connect(function(descendant)
if descendant:IsA("BasePart") and (string.find(string.lower(descendant.Name), "kill") or string.find(string.lower(descendant.Name), "damage") or descendant.Material == Enum.Material.Neon) then
descendant.CFrame = CFrame.new(0, -1000, 0)
end
end)
local isEnabled = true
local timer = 0
local checkInterval = 0.1
local lastCheckTime = 0
local aboveThreshold = 9.5
local tweenSpeed = 55
local heightOffset = 3
local topRadius = 10
local collideableRadius = 8
local originalColors = {}
local colorConnection
local function removeClothing(char)
for _, item in ipairs(char:GetDescendants()) do
if item:IsA("Shirt") or item:IsA("Pants") or item:IsA("ShirtGraphic") then
item:Destroy()
elseif item:IsA("Accessory") or item:IsA("Hat") then
item:Destroy()
end
end
local bodyColors = char:FindFirstChildOfClass("BodyColors")
if bodyColors then
bodyColors:Destroy()
end
end
local function setupRainbowEffect(char)
wait(2.5)
removeClothing(char)
originalColors = {}
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then
originalColors[part] = part.Color
end
end
if colorConnection then
colorConnection:Disconnect()
end
local hue = 0
colorConnection = RunService.Heartbeat:Connect(function()
hue = (hue + 0.005) % 1
local rainbowColor = Color3.fromHSV(hue, 1, 1)
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.Parent == char then
part.Color = rainbowColor
end
end
end)
end
setupRainbowEffect(character)
local function getTopPart()
local playerPos = humanoidRootPart.Position
for _, top in ipairs(tops) do
if (top.Position - playerPos).Magnitude <= topRadius then
return top
end
end
return nil
end
local function fireTouchInterest()
if targetPart and humanoidRootPart then
firetouchinterest(humanoidRootPart, targetPart, 0)
wait(0.1)
firetouchinterest(humanoidRootPart, targetPart, 1)
end
end
local function tweenToTarget()
if not humanoidRootPart or humanoid.Health <= 0 then return end
local targetPosition = targetPart.Position + Vector3.new(0, heightOffset, 0)
if (humanoidRootPart.Position - targetPosition).Magnitude <= collideableRadius then
fireTouchInterest()
return
end
local distance = (targetPosition - humanoidRootPart.Position).Magnitude
local tweenTime = distance / tweenSpeed
local tweenInfo = TweenInfo.new(tweenTime, Enum.EasingStyle.Linear)
local tween = TweenService:Create(humanoidRootPart, tweenInfo, {CFrame = CFrame.new(targetPosition)})
tween:Play()
tween.Completed:Wait()
fireTouchInterest()
end
local connection
local lastTopPart = nil
local function startMonitoring()
if connection then return end
connection = RunService.Heartbeat:Connect(function()
local currentTime = tick()
if currentTime - lastCheckTime >= checkInterval then
lastCheckTime = currentTime
local currentTop = getTopPart()
if currentTop then
if currentTop == lastTopPart then
timer = timer + checkInterval
if timer >= aboveThreshold then
tweenToTarget()
timer = 0
end
else
timer = 0
lastTopPart = currentTop
end
else
timer = 0
lastTopPart = nil
end
end
end)
end
local function stopMonitoring()
if connection then
connection:Disconnect()
connection = nil
end
timer = 0
lastTopPart = nil
end
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AutoCompleteGui"
screenGui.Parent = player:WaitForChild("PlayerGui")
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 180, 0, 70)
mainFrame.Position = UDim2.new(0.5, -90, 0.05, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 10)
mainCorner.Parent = mainFrame
local mainStroke = Instance.new("UIStroke")
mainStroke.Thickness = 2
mainStroke.Color = Color3.fromRGB(0, 180, 180)
mainStroke.Transparency = 0
mainStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
mainStroke.Parent = mainFrame
local strokeHue = 0
RunService.Heartbeat:Connect(function()
strokeHue = (strokeHue + 0.005) % 1
mainStroke.Color = Color3.fromHSV(strokeHue, 0.8, 1)
end)
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 28)
titleBar.Position = UDim2.new(0, 0, 0, 0)
titleBar.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 10)
titleCorner.Parent = titleBar
local titleFix = Instance.new("Frame")
titleFix.Size = UDim2.new(1, 0, 0, 10)
titleFix.Position = UDim2.new(0, 0, 1, -10)
titleFix.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
titleFix.BorderSizePixel = 0
titleFix.Parent = titleBar
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -20, 1, 0)
titleLabel.Position = UDim2.new(0, 8, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "AUTO COMPLETE"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 13
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = titleBar
local statusIndicator = Instance.new("Frame")
statusIndicator.Size = UDim2.new(0, 8, 0, 8)
statusIndicator.Position = UDim2.new(1, -15, 0.5, -4)
statusIndicator.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
statusIndicator.BorderSizePixel = 0
statusIndicator.Parent = titleBar
local indicatorCorner = Instance.new("UICorner")
indicatorCorner.CornerRadius = UDim.new(1, 0)
indicatorCorner.Parent = statusIndicator
local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0, 160, 0, 32)
toggleButton.Position = UDim2.new(0.5, -80, 0, 34)
toggleButton.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
toggleButton.BorderSizePixel = 0
toggleButton.Text = "ENABLED"
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.TextSize = 14
toggleButton.Font = Enum.Font.GothamBold
toggleButton.AutoButtonColor = false
toggleButton.Parent = mainFrame
local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 7)
buttonCorner.Parent = toggleButton
local buttonStroke = Instance.new("UIStroke")
buttonStroke.Thickness = 1.5
buttonStroke.Color = Color3.fromRGB(120, 220, 120)
buttonStroke.Transparency = 0.5
buttonStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
buttonStroke.Parent = toggleButton
toggleButton.MouseEnter:Connect(function()
TweenService:Create(toggleButton, TweenInfo.new(0.2), {BackgroundColor3 = isEnabled and Color3.fromRGB(120, 220, 120) or Color3.fromRGB(220, 80, 80)}):Play()
end)
toggleButton.MouseLeave:Connect(function()
TweenService:Create(toggleButton, TweenInfo.new(0.2), {BackgroundColor3 = isEnabled and Color3.fromRGB(100, 200, 100) or Color3.fromRGB(200, 60, 60)}):Play()
end)
local dragging = false
local dragInput
local dragStart
local startPos
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
toggleButton.MouseButton1Click:Connect(function()
isEnabled = not isEnabled
if isEnabled then
toggleButton.Text = "ENABLED"
toggleButton.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
buttonStroke.Color = Color3.fromRGB(120, 220, 120)
statusIndicator.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
startMonitoring()
local original = toggleButton.Size
TweenService:Create(toggleButton, TweenInfo.new(0.1), {Size = UDim2.new(0, 155, 0, 30)}):Play()
wait(0.1)
TweenService:Create(toggleButton, TweenInfo.new(0.1), {Size = original}):Play()
else
toggleButton.Text = "DISABLED"
toggleButton.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
buttonStroke.Color = Color3.fromRGB(220, 80, 80)
statusIndicator.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
stopMonitoring()
local original = toggleButton.Size
TweenService:Create(toggleButton, TweenInfo.new(0.1), {Size = UDim2.new(0, 155, 0, 30)}):Play()
wait(0.1)
TweenService:Create(toggleButton, TweenInfo.new(0.1), {Size = original}):Play()
end
end)
player.CharacterAdded:Connect(function(newChar)
character = newChar
humanoidRootPart = newChar:WaitForChild("HumanoidRootPart")
humanoid = newChar:WaitForChild("Humanoid")
timer = 0
lastTopPart = nil
setupRainbowEffect(newChar)
moveKillParts()
end)
startMonitoring()
Comments (0)
Please login to comment
Login with Discord
Loading comments...