OP script
Key Required

OP script

Steal a Fruit ⭐darkslayerdarkslayer 6.1K views 5.1K executesUpdated Jan 6, 2026
1.3/ 5(4 votes)
1325% Positive
Lua Script•268 lines (9655 chars)
-- DARK SLAYER VL V2 (PHONE UI EDITION)
if not game:IsLoaded() then game.Loaded:Wait() end

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")
local HttpService = game:GetService("HttpService")
local TeleportService = game:GetService("TeleportService")

local lp = Players.LocalPlayer
repeat task.wait() until lp.Character and lp.Character:FindFirstChild("HumanoidRootPart")
local cam = workspace.CurrentCamera

-- State
local flying, infJump, nocliping, espEnabled, isFrozen = false, false, false, false, false
local flySpeed, frozenPos = 120, nil
local timeLeft, timerOn = 0, false

-- Cleanup existing GUI
if CoreGui:FindFirstChild("DS_Phone_V1") then CoreGui["DS_Phone_V1"]:Destroy() end

-- ======= PHONE UI DESIGN =======
local gui = Instance.new("ScreenGui", CoreGui)
gui.Name = "DS_Phone_V1"

local main = Instance.new("Frame", gui)
main.Size = UDim2.new(0, 280, 0, 560)
main.Position = UDim2.new(0.5, -140, 0.5, -280)
main.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
main.BorderSizePixel = 0
main.Active, main.Draggable = true, true

local corner = Instance.new("UICorner", main)
corner.CornerRadius = UDim.new(0, 40)

local stroke = Instance.new("UIStroke", main)
stroke.Thickness = 4
stroke.Color = Color3.fromRGB(40, 40, 40)

local notch = Instance.new("Frame", main)
notch.Size = UDim2.new(0, 120, 0, 25)
notch.Position = UDim2.new(0.5, -60, 0, 0)
notch.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
Instance.new("UICorner", notch).CornerRadius = UDim.new(0, 10)

local homeBar = Instance.new("Frame", main)
homeBar.Size = UDim2.new(0, 100, 0, 5)
homeBar.Position = UDim2.new(0.5, -50, 1, -15)
homeBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
homeBar.BackgroundTransparency = 0.5
Instance.new("UICorner", homeBar)

local container = Instance.new("ScrollingFrame", main)
container.Size = UDim2.new(0.9, 0, 0.82, 0)
container.Position = UDim2.new(0.05, 0, 0.08, 0)
container.BackgroundTransparency = 1
container.CanvasSize = UDim2.new(0, 0, 1.2, 0)
container.ScrollBarThickness = 0

local function createBtn(text, pos, size, color)
    local b = Instance.new("TextButton", container)
    b.Size = size or UDim2.new(1, 0, 0, 40)
    b.Position = pos
    b.Text = text
    b.BackgroundColor3 = color or Color3.fromRGB(25, 25, 25)
    b.TextColor3 = Color3.new(1, 1, 1)
    b.TextScaled = true
    b.BorderSizePixel = 0
    Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8)
    return b
end

-- ======= FEATURES =======
local espBtn = createBtn("ESP: OFF", UDim2.new(0, 0, 0, 0), nil, Color3.fromRGB(70, 0, 0))
local noclipBtn = createBtn("NOCLIP: OFF", UDim2.new(0, 0, 0.08, 0), UDim2.new(0.48, 0, 0, 40))
local flyBtn = createBtn("FLY: OFF", UDim2.new(0.52, 0, 0.08, 0), UDim2.new(0.48, 0, 0, 40))
local speedBtn = createBtn("SPEED: OFF", UDim2.new(0, 0, 0.16, 0), UDim2.new(0.48, 0, 0, 40))
local jumpBtn = createBtn("INF JUMP: OFF", UDim2.new(0.52, 0, 0.16, 0), UDim2.new(0.48, 0, 0, 40))
local freezeBtn = createBtn("FREEZE: OFF", UDim2.new(0, 0, 0.24, 0), nil, Color3.fromRGB(0, 45, 90))

local hopBtn = createBtn("JOIN ACTIVE SERVER", UDim2.new(0, 0, 0.32, 0), nil, Color3.fromRGB(160, 0, 0))
hopBtn.MouseButton1Click:Connect(function()
    hopBtn.Text = "FINDING..."
    local url = "https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Desc&limit=100"
    local s, res = pcall(function() return HttpService:JSONDecode(game:HttpGet(url)).data end)
    if s then
        for _, v in pairs(res) do
            local openSlots = v.maxPlayers - v.playing
            if openSlots >= 2 and openSlots <= 5 and v.id ~= game.JobId then
                TeleportService:TeleportToPlaceInstance(game.PlaceId, v.id)
                return
            end
        end
    end
end)

-- Timer Section
local timerLabel = Instance.new("TextLabel", container)
timerLabel.Size = UDim2.new(1, 0, 0, 40)
timerLabel.Position = UDim2.new(0, 0, 0.40, 0)
timerLabel.Text = "00:00"
timerLabel.TextColor3 = Color3.new(1,1,1)
timerLabel.BackgroundTransparency = 1
timerLabel.TextScaled = true

local timeInput = Instance.new("TextBox", container)
timeInput.Size = UDim2.new(1, 0, 0, 30)
timeInput.Position = UDim2.new(0, 0, 0.48, 0)
timeInput.Text = "60"
timeInput.BackgroundColor3 = Color3.fromRGB(25,25,25)
timeInput.TextColor3 = Color3.new(1,1,1)
Instance.new("UICorner", timeInput)

local startBtn = createBtn("START", UDim2.new(0, 0, 0.55, 0), UDim2.new(0.48, 0, 0, 35), Color3.fromRGB(0, 70, 0))
local resetBtn = createBtn("RESET", UDim2.new(0.52, 0, 0.55, 0), UDim2.new(0.48, 0, 0, 35), Color3.fromRGB(70, 0, 0))

task.spawn(function()
    while task.wait(1) do
        if timerOn and timeLeft > 0 then
            timeLeft = timeLeft - 1
            timerLabel.Text = string.format("%02d:%02d", math.floor(timeLeft/60), timeLeft%60)
        end
    end
end)

-- Bases Teleport
local bases = {
    Vector3.new(-210,-11,-201), Vector3.new(-209,-11,-58), 
    Vector3.new(-209,-11,84), Vector3.new(179,-11,85), 
    Vector3.new(179,-11,-58), Vector3.new(180,-11,-201)
}
for i, pos in pairs(bases) do
    local b = createBtn("B"..i, UDim2.new(0 + ((i-1)%2)*0.52, 0, 0.65 + math.floor((i-1)/2)*0.08, 0), UDim2.new(0.48, 0, 0, 35))
    b.MouseButton1Click:Connect(function() 
        if lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") then
            lp.Character.HumanoidRootPart.CFrame = CFrame.new(pos + Vector3.new(0,5,0)) 
        end
    end)
end

local exitBtn = createBtn("SHUTDOWN", UDim2.new(0, 0, 0.92, 0), nil, Color3.fromRGB(40,40,40))
exitBtn.MouseButton1Click:Connect(function() gui:Destroy() end)

-- ESP LOGIC
local function applyESP(p)
    if p == lp then return end
    local function setup(char)
        local h = Instance.new("Highlight", char)
        h.Name = "DS_Highlight"
        h.FillColor = Color3.new(1, 0, 0)
        h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
        
        local head = char:WaitForChild("Head", 10)
        local bill = Instance.new("BillboardGui", head)
        bill.Name = "DS_Name"
        bill.Size = UDim2.new(0, 200, 0, 50)
        bill.AlwaysOnTop = true
        bill.ExtentsOffset = Vector3.new(0, 3, 0)
        
        local lbl = Instance.new("TextLabel", bill)
        lbl.Size = UDim2.new(1, 0, 1, 0)
        lbl.BackgroundTransparency = 1
        lbl.TextColor3 = Color3.new(1, 1, 1)
        lbl.TextStrokeTransparency = 0
        lbl.Font = Enum.Font.GothamBold
        lbl.TextSize = 14
        lbl.Text = p.DisplayName

        RunService.RenderStepped:Connect(function()
            h.Enabled = espEnabled
            bill.Enabled = espEnabled
        end)
    end
    p.CharacterAdded:Connect(setup)
    if p.Character then setup(p.Character) end
end

for _, p in pairs(Players:GetPlayers()) do applyESP(p) end
Players.PlayerAdded:Connect(applyESP)

-- LOOPS
RunService.Heartbeat:Connect(function(dt)
    if not lp.Character or not lp.Character:FindFirstChild("HumanoidRootPart") then return end
    local hrp = lp.Character.HumanoidRootPart
    
    if isFrozen and frozenPos then 
        hrp.CFrame = frozenPos
        hrp.Velocity = Vector3.new(0,0,0) 
    end
    
    if flying then
        local moveDir = Vector3.new(0,0,0)
        if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir += cam.CFrame.LookVector end
        if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir -= cam.CFrame.LookVector end
        if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir -= cam.CFrame.RightVector end
        if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir += cam.CFrame.RightVector end
        hrp.Velocity = Vector3.new(0,0.1,0)
        hrp.CFrame = hrp.CFrame + (moveDir * flySpeed * dt)
    end
    
    if nocliping then 
        for _, v in pairs(lp.Character:GetDescendants()) do 
            if v:IsA("BasePart") then v.CanCollide = false end 
        end 
    end
end)

-- Toggles
espBtn.MouseButton1Click:Connect(function() 
    espEnabled = not espEnabled
    espBtn.Text = "ESP: "..(espEnabled and "ON" or "OFF") 
end)

freezeBtn.MouseButton1Click:Connect(function() 
    isFrozen = not isFrozen
    frozenPos = isFrozen and lp.Character.HumanoidRootPart.CFrame or nil
    freezeBtn.Text = isFrozen and "FREEZE: ON" or "FREEZE: OFF" 
end)

flyBtn.MouseButton1Click:Connect(function() 
    flying = not flying
    flyBtn.Text = "FLY: "..(flying and "ON" or "OFF") 
    if lp.Character:FindFirstChild("Humanoid") then 
        lp.Character.Humanoid.PlatformStand = flying 
    end 
end)

speedBtn.MouseButton1Click:Connect(function() 
    local h = lp.Character:FindFirstChild("Humanoid") 
    if h then 
        h.WalkSpeed = (h.WalkSpeed == 16 and 100 or 16) 
        speedBtn.Text = "SPEED: "..(h.WalkSpeed > 20 and "ON" or "OFF")
    end 
end)

noclipBtn.MouseButton1Click:Connect(function() 
    nocliping = not nocliping
    noclipBtn.Text = "NOCLIP: "..(nocliping and "ON" or "OFF") 
end)

jumpBtn.MouseButton1Click:Connect(function() 
    infJump = not infJump
    jumpBtn.Text = "INF JUMP: "..(infJump and "ON" or "OFF") 
end)

UIS.JumpRequest:Connect(function() 
    if infJump and lp.Character:FindFirstChild("Humanoid") then 
        lp.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) 
    end 
end)

startBtn.MouseButton1Click:Connect(function() 
    if not timerOn then 
        timeLeft = tonumber(timeInput.Text) or 0
        timerOn = true
        startBtn.Text = "STOP" 
    else 
        timerOn = false
        startBtn.Text = "START" 
    end 
end)

resetBtn.MouseButton1Click:Connect(function() 
    timeLeft = 0
    timerOn = false
    timerLabel.Text = "00:00" 
end)

Features & Information

Steal a fruit OP script -esp -noclip -inf jump - speed/ doesnt work -set timer -sever hop -teleports

Community Comments (2)

minhhoaprominhhoaproFeb 2, 2026

Add administrative functions.

Replying to @minhhoapro

@minhhoapro it looks like it was made by chatgpt i doubt they will

More Scripts for Steal a Fruit ⭐