Universal Script – Cheap (doodoo but good) (Aimbot) - Verified script for Universal Roblox
Key RequiredUniversal

Universal Script – Cheap (doodoo but good) (Aimbot)

Universal ScriptBrandywandyBrandywandy 676 views 3.2K executesUpdated Oct 18, 2026
Unrated
00
Lua Script•195 lines (7639 chars)
-- 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)

How to Execute Universal Script – Cheap (doodoo but good) (Aimbot)

Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.

Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.

Step 3: Join Experience: Launch Roblox and join Universal Script.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

Brandywandy
Brandywandy
Script Creator
View Author Profile

Features & Information

Execute Universal Script – Cheap (doodoo but good) (Aimbot). Key system required, created by Brandywandy, updated Oct 18, 2026. Tested and working on supported executors.

Script Changelog (1)

@BrandywandyOct 18, 2026

Create script

Community Comments (1)

BrandywandyBrandywandyOct 18, 2026

Should I make it minimizable?

Frequently Asked Questions

How do I execute Universal Script – Cheap (doodoo but good) (Aimbot) in Roblox?

To run Universal Script – Cheap (doodoo but good) (Aimbot), copy the Lua loadstring from the code viewer above, launch Roblox and join Universal Script, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.

Is Universal Script – Cheap (doodoo but good) (Aimbot) keyless or does it require an access key?

Universal Script – Cheap (doodoo but good) (Aimbot) requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is Universal Script – Cheap (doodoo but good) (Aimbot) currently safe and working?

This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.