-- Mobile PvP Hub for Delta iOS (Aimbot + ESP) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera local RunService = game:GetService("RunService") local CoreGui = game:GetService("CoreGui") -- Configuration Variables local _G = getgenv and getgenv() or _G _G.AimbotEnabled = false _G.EspEnabled = false _G.TeamCheck = false _G.MaxDistance = 500 -- Create Screen GUI (Parented to CoreGui to prevent detection/resetting) local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "DeltaPvPHub" ScreenGui.Parent = CoreGui ScreenGui.ResetOnSpawn = false -- Main Menu Frame local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 220, 0, 180) MainFrame.Position = UDim2.new(0.05, 0, 0.3, 0) -- Top-left safe zone for mobile players MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true -- Allows you to drag the menu anywhere on screen MainFrame.Parent = ScreenGui -- UICorner for rounded layout local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 8) MainCorner.Parent = MainFrame -- Menu Title local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 35) Title.BackgroundColor3 = Color3.fromRGB(35, 35, 45) Title.Text = "DELTA PVP MENU" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.GothamBold Title.TextSize = 14 Title.Parent = MainFrame local TitleCorner = Instance.new("UICorner") TitleCorner.CornerRadius = UDim.new(0, 8) TitleCorner.Parent = Title -- Reusable Function to Build Mobile Toggle Buttons local function CreateToggle(name, text, position, globalVar) local Button = Instance.new("TextButton") Button.Name = name Button.Size = UDim2.new(0, 190, 0, 35) Button.Position = position Button.BackgroundColor3 = Color3.fromRGB(45, 45, 55) Button.Text = text .. ": OFF" Button.TextColor3 = Color3.fromRGB(255, 75, 75) Button.Font = Enum.Font.Gotham Button.TextSize = 13 Button.Parent = MainFrame local ButtonCorner = Instance.new("UICorner") ButtonCorner.CornerRadius = UDim.new(0, 6) ButtonCorner.Parent = Button -- Click Functionality Button.MouseButton1Click:Connect(function() _G[globalVar] = not _G[globalVar] if _G[globalVar] then Button.Text = text .. ": ON" Button.TextColor3 = Color3.fromRGB(75, 255, 75) Button.BackgroundColor3 = Color3.fromRGB(55, 65, 55) else Button.Text = text .. ": OFF" Button.TextColor3 = Color3.fromRGB(255, 75, 75) Button.BackgroundColor3 = Color3.fromRGB(45, 45, 55) end end) end -- Generate Menu Toggles CreateToggle("AimbotToggle", "🎯 AIMBOT", UDim2.new(0, 15, 0, 50), "AimbotEnabled") CreateToggle("EspToggle", "👁️ PLAYER ESP", UDim2.new(0, 15, 0, 95), "EspEnabled") CreateToggle("TeamToggle", "👥 TEAM CHECK", UDim2.new(0, 15, 0, 140), "TeamCheck") -- ========================================== -- AIMBOT CORE LOGIC -- ========================================== local function getClosestPlayer() local closestPlayer = nil local shortestDistance = math.huge for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player.Character:FindFirstChild("Humanoid") then if player.Character.Humanoid.Health > 0 then if _G.TeamCheck and player.Team == LocalPlayer.Team then continue end local targetPart = player.Character.HumanoidRootPart local screenPosition, onScreen = Camera:WorldToViewportPoint(targetPart.Position) if onScreen then local screenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local targetPosVector = Vector2.new(screenPosition.X, screenPosition.Y) local distanceToCenter = (targetPosVector - screenCenter).Magnitude local worldDistance = (targetPart.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude if distanceToCenter < shortestDistance and worldDistance <= _G.MaxDistance then closestPlayer = player shortestDistance = distanceToCenter end end end end end return closestPlayer end RunService.RenderStepped:Connect(function() if _G.AimbotEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local target = getClosestPlayer() if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then Camera.CFrame = CFrame.new(Camera.CFrame.Position, target.Character.HumanoidRootPart.Position) end end end) -- ========================================== -- ESP CORE LOGIC (Highlights & Billboard Tags) -- ========================================== local function applyESP(player) if player == LocalPlayer then return end local function setupVisuals(character) if not character then return end local head = character:WaitForChild("Head", 5) local humanoid = character:WaitForChild("Humanoid", 5) if not head or not humanoid then return end -- 1. Chams/Highlight Wallhack local highlight = character:FindFirstChild("ESPHighlight") or Instance.new("Highlight") highlight.Name = "ESPHighlight" highlight.FillColor = Color3.fromRGB(255, 0, 100) highlight.FillTransparency = 0.5 highlight.OutlineColor = Color3.fromRGB(255, 255, 255) highlight.OutlineTransparency = 0 highlight.Parent = character -- 2. Name & Health Billboard Tag local billboard = head:FindFirstChild("ESPTag") or Instance.new("BillboardGui") billboard.Name = "ESPTag" billboard.Size = UDim2.new(0, 150, 0, 30) billboard.StudsOffset = Vector3.new(0, 2.5, 0) billboard.AlwaysOnTop = true billboard.Parent = head local label = billboard:FindFirstChild("TextLabel") or Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextStrokeTransparency = 0 label.Font = Enum.Font.GothamBold label.TextSize = 12 label.Parent = billboard -- Loop to update tracking values dynamically local connection connection = RunService.RenderStepped:Connect(function() if not character.Parent or not _G.EspEnabled then highlight.Enabled = false billboard.Enabled = false if not _G.EspEnabled then return end else highlight.Enabled = true billboard.Enabled = true label.Text = string.format("%s\n[HP: %d]", player.Name, math.floor(humanoid.Health)) end end) humanoid.Died:Connect(function() connection:Disconnect() highlight:Destroy() billboard:Destroy() end) end if player.Character then setupVisuals(player.Character) end player.CharacterAdded:Connect(setupVisuals) end -- Initialize ESP for current and joining players for _, p in pairs(Players:GetPlayers()) do applyESP(p) end Players.PlayerAdded:Connect(applyESP)