-- 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)