loadstring([[ local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer local camera = Workspace.CurrentCamera local locked = false local target = nil local espEnabled = false local camConn, highlight, lockVisual local espObjects = {} local MAX_LOCK_DIST = 900 local CENTER_TOLERANCE = 0.90 local BULLET_SPEED = 2800 local function getRoot(m) if not m then return nil end return m:FindFirstChild("HumanoidRootPart") or m:FindFirstChild("UpperTorso") or m:FindFirstChild("Torso") or m.PrimaryPart end local function isAlive(m) if not m or not m.Parent then return false end local hum = m:FindFirstChildOfClass("Humanoid") return hum and hum.Health > 0.1 end local function createLockVisual(parent) local bg = Instance.new("BillboardGui") bg.Name = "LockVisual" bg.Size = UDim2.new(0, 50, 0, 50) bg.AlwaysOnTop = true bg.Adornee = getRoot(parent) bg.Parent = parent local outer = Instance.new("Frame", bg) outer.Name = "Outer" outer.AnchorPoint = Vector2.new(0.5, 0.5) outer.Position = UDim2.new(0.5, 0, 0.5, 0) outer.Size = UDim2.new(1, 0, 1, 0) outer.BackgroundTransparency = 1 Instance.new("UICorner", outer).CornerRadius = UDim.new(1, 0) local s1 = Instance.new("UIStroke", outer) s1.Color = Color3.fromRGB(255, 0, 0) s1.Thickness = 2 local inner = Instance.new("Frame", bg) inner.Name = "Inner" inner.AnchorPoint = Vector2.new(0.5, 0.5) inner.Position = UDim2.new(0.5, 0, 0.5, 0) inner.Size = UDim2.new(0.7, 0, 0.7, 0) inner.BackgroundTransparency = 1 Instance.new("UICorner", inner).CornerRadius = UDim.new(1, 0) local s2 = Instance.new("UIStroke", inner) s2.Color = Color3.fromRGB(255, 80, 80) s2.Thickness = 1.5 return bg end local function resetCamera() locked = false target = nil if camConn then camConn:Disconnect() camConn = nil end camera.CameraType = Enum.CameraType.Custom if highlight then highlight:Destroy() highlight = nil end if lockVisual then lockVisual:Destroy() lockVisual = nil end if _G.lb then _G.lb.Text = "BLOQUEAR" _G.lb.BackgroundColor3 = Color3.fromRGB(35, 35, 35) end end local function actualizarESP() if not espEnabled then return end for _, p in ipairs(Players:GetPlayers()) do if p ~= player and p.Character and isAlive(p.Character) then local char = p.Character if not espObjects[char] then local hl = Instance.new("Highlight", char) hl.FillColor = Color3.fromRGB(255, 0, 0) local bg = Instance.new("BillboardGui", char) bg.Size = UDim2.new(0, 100, 0, 20) bg.AlwaysOnTop = true bg.Adornee = getRoot(char) bg.StudsOffset = Vector3.new(0, 3, 0) local txt = Instance.new("TextLabel", bg) txt.Size = UDim2.new(1, 0, 1, 0) txt.BackgroundTransparency = 1 txt.TextColor3 = Color3.new(1, 1, 1) txt.Font = Enum.Font.SourceSansBold txt.TextSize = 13 espObjects[char] = {hl = hl, ui = txt} end local dist = math.floor((camera.CFrame.Position - getRoot(char).Position).Magnitude) espObjects[char].ui.Text = p.Name .. " [" .. dist .. "m]" end end for char, data in pairs(espObjects) do if not char.Parent or not isAlive(char) then if data.hl then data.hl:Destroy() end if data.ui and data.ui.Parent then data.ui.Parent:Destroy() end espObjects[char] = nil end end end local function predictPos(m, camPos) local root = getRoot(m) if not root then return Vector3.new() end local pos = root.Position local vel = root.AssemblyLinearVelocity local ping = (player:GetNetworkPing() or 0.05) local dist = (pos - camPos).Magnitude local time = (dist / BULLET_SPEED) + ping return pos + (vel * time) + Vector3.new(0, 1.2, 0) end local function uc() if not isAlive(player.Character) or not locked or not target or not isAlive(target) then resetCamera() return end local myRoot = getRoot(player.Character) if not myRoot then return end local aimPos = predictPos(target, camera.CFrame.Position) local eyePos = myRoot.Position + Vector3.new(0, 3.5, 0) local targetRotation = CFrame.lookAt(eyePos - (aimPos - eyePos).Unit * 12.5, aimPos) local dotProduct = camera.CFrame.LookVector:Dot((aimPos - camera.CFrame.Position).Unit) local smoothness = (dotProduct < 0.98) and 0.35 or 0.12 camera.CFrame = camera.CFrame:Lerp(targetRotation, smoothness) end local function toggleLock() if locked then resetCamera() else local camLook = camera.CFrame.LookVector local best, bestScore = nil, -1 for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Model") and obj ~= player.Character and obj:FindFirstChildOfClass("Humanoid") and isAlive(obj) then local root = getRoot(obj) if root then local dot = camLook:Dot((root.Position - camera.CFrame.Position).Unit) if dot > CENTER_TOLERANCE and dot > bestScore then best, bestScore = obj, dot end end end end if best then target = best locked = true _G.lb.Text = "ON" _G.lb.BackgroundColor3 = Color3.fromRGB(180, 0, 0) lockVisual = createLockVisual(target) camera.CameraType = Enum.CameraType.Scriptable camConn = RunService.RenderStepped:Connect(uc) end end end -- GUI con DisplayOrder máximo para estar por encima de todo local sg = Instance.new("ScreenGui", player.PlayerGui) sg.Name = "DBK_TOP_LAYER" sg.ResetOnSpawn = false sg.IgnoreGuiInset = true sg.DisplayOrder = 2147483647 -- El valor máximo posible en Roblox local lb = Instance.new("TextButton", sg) lb.Size = UDim2.new(0, 80, 0, 80) lb.Position = UDim2.new(1, -250, 0.32, -40) lb.Text = "LOCK" lb.BackgroundColor3 = Color3.fromRGB(35, 35, 35) lb.TextColor3 = Color3.new(1, 1, 1) lb.Font = Enum.Font.SourceSansBold lb.TextSize = 14 lb.ZIndex = 10 -- Prioridad alta dentro de la GUI Instance.new("UICorner", lb).CornerRadius = UDim.new(1, 0) _G.lb = lb local eb = Instance.new("TextButton", sg) eb.Size = UDim2.new(0, 90, 0, 40) eb.Position = UDim2.new(1, -95, 0, 10) -- Posición original restaurada eb.Text = "ESP OFF" eb.BackgroundColor3 = Color3.fromRGB(35, 35, 35) eb.TextColor3 = Color3.new(1, 1, 1) eb.Font = Enum.Font.SourceSansBold eb.TextSize = 14 eb.ZIndex = 10 Instance.new("UICorner", eb) lb.MouseButton1Click:Connect(toggleLock) eb.MouseButton1Click:Connect(function() espEnabled = not espEnabled eb.Text = espEnabled and "ESP ON" or "ESP OFF" eb.BackgroundColor3 = espEnabled and Color3.fromRGB(10, 90, 10) or Color3.fromRGB(35, 35, 35) if not espEnabled then for char, data in pairs(espObjects) do if data.hl then data.hl:Destroy() end if data.ui and data.ui.Parent then data.ui.Parent:Destroy() end end espObjects = {} end end) UserInputService.InputBegan:Connect(function(i, g) if not g and i.KeyCode == Enum.KeyCode.Q then toggleLock() end end) RunService.Heartbeat:Connect(actualizarESP) print("✅ GUI forzada al frente y posición restaurada") ]])()