Hitbox expander pro
Key RequiredUniversal

Hitbox expander pro

Universal Scriptbalabalajel12121984balabalajel12121984 1.1K views 2.7K executesUpdated Aug 17, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•368 lines (12694 chars)
-- [[ HITBOX EXPANDER PRO v1.0 ]]
-- [[ KEY: 89271 ]]
-- [[ FEATURES: Hitbox Expander, ESP, X-Ray ]]

local key = "89271"
local entered = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("KeyPrompt")
if entered then entered.Text = key end

local function loadScript()
    -- GUI
    local sg = Instance.new("ScreenGui")
    sg.Name = "HitboxPro"
    sg.ResetOnSpawn = false
    sg.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
    
    local main = Instance.new("Frame")
    main.Size = UDim2.new(0, 280, 0, 220)
    main.Position = UDim2.new(0.5, -140, 0.5, -110)
    main.BackgroundColor3 = Color3.fromRGB(15, 15, 25)
    main.BackgroundTransparency = 0.05
    main.BorderSizePixel = 0
    main.Active = true
    main.Draggable = true
    main.Parent = sg
    
    local title = Instance.new("Frame")
    title.Size = UDim2.new(1, 0, 0, 30)
    title.BackgroundColor3 = Color3.fromRGB(40, 30, 60)
    title.BorderSizePixel = 0
    title.Parent = main
    
    local tl = Instance.new("TextLabel")
    tl.Size = UDim2.new(1, 0, 1, 0)
    tl.BackgroundTransparency = 1
    tl.Text = "HITBOX PRO [89271]"
    tl.TextColor3 = Color3.fromRGB(255, 200, 80)
    tl.Font = Enum.Font.GothamBold
    tl.TextSize = 14
    tl.Parent = title
    
    local close = Instance.new("TextButton")
    close.Size = UDim2.new(0, 25, 1, 0)
    close.Position = UDim2.new(1, -25, 0, 0)
    close.BackgroundColor3 = Color3.fromRGB(200, 40, 40)
    close.Text = "X"
    close.TextColor3 = Color3.new(1,1,1)
    close.Font = Enum.Font.GothamBold
    close.TextSize = 14
    close.Parent = title
    
    local scroll = Instance.new("ScrollingFrame")
    scroll.Size = UDim2.new(1, -10, 1, -40)
    scroll.Position = UDim2.new(0, 5, 0, 35)
    scroll.BackgroundTransparency = 1
    scroll.CanvasSize = UDim2.new(0, 0, 0, 300)
    scroll.ScrollBarThickness = 4
    scroll.Parent = main
    
    local layout = Instance.new("UIListLayout")
    layout.Padding = UDim.new(0, 6)
    layout.SortOrder = Enum.SortOrder.LayoutOrder
    layout.Parent = scroll
    
    local state = {
        hitbox = true,
        esp = true,
        xray = false,
        scale = 3.0
    }
    
    -- Toggle helper
    local function toggle(parent, text, stateKey, default)
        local f = Instance.new("Frame")
        f.Size = UDim2.new(1, -10, 0, 32)
        f.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
        f.BorderSizePixel = 0
        f.Parent = parent
        
        local l = Instance.new("TextLabel")
        l.Size = UDim2.new(0.65, 0, 1, 0)
        l.BackgroundTransparency = 1
        l.Text = text
        l.TextColor3 = Color3.new(1,1,1)
        l.TextXAlignment = Enum.TextXAlignment.Left
        l.Font = Enum.Font.Gotham
        l.TextSize = 13
        l.Parent = f
        
        local b = Instance.new("TextButton")
        b.Size = UDim2.new(0, 55, 0, 25)
        b.Position = UDim2.new(1, -60, 0.5, -12.5)
        b.BackgroundColor3 = default and Color3.fromRGB(0,180,0) or Color3.fromRGB(150,0,0)
        b.Text = default and "ON" or "OFF"
        b.TextColor3 = Color3.new(1,1,1)
        b.Font = Enum.Font.GothamBold
        b.TextSize = 12
        b.Parent = f
        
        state[stateKey] = default
        b.MouseButton1Click:Connect(function()
            state[stateKey] = not state[stateKey]
            b.BackgroundColor3 = state[stateKey] and Color3.fromRGB(0,180,0) or Color3.fromRGB(150,0,0)
            b.Text = state[stateKey] and "ON" or "OFF"
            if stateKey == "xray" then
                game.Lighting.Brightness = state.xray and 10 or 2
                game.Lighting.Ambient = state.xray and Color3.fromRGB(255,255,255) or Color3.fromRGB(0,0,0)
            end
        end)
        return f
    end
    
    -- Scale slider
    local function scaleSlider(parent)
        local f = Instance.new("Frame")
        f.Size = UDim2.new(1, -10, 0, 50)
        f.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
        f.BorderSizePixel = 0
        f.Parent = parent
        
        local l = Instance.new("TextLabel")
        l.Size = UDim2.new(1, 0, 0, 20)
        l.BackgroundTransparency = 1
        l.Text = "Hitbox Scale: " .. tostring(state.scale)
        l.TextColor3 = Color3.new(1,1,1)
        l.Font = Enum.Font.Gotham
        l.TextSize = 12
        l.Parent = f
        
        local box = Instance.new("TextBox")
        box.Size = UDim2.new(1, -20, 0, 25)
        box.Position = UDim2.new(0, 10, 0, 22)
        box.BackgroundColor3 = Color3.fromRGB(50,50,65)
        box.Text = tostring(state.scale)
        box.TextColor3 = Color3.new(1,1,1)
        box.Font = Enum.Font.Gotham
        box.TextSize = 14
        box.Parent = f
        
        box.FocusLost:Connect(function(e)
            if e then
                local v = tonumber(box.Text)
                if v then
                    state.scale = math.clamp(v, 1, 10)
                    box.Text = string.format("%.1f", state.scale)
                    l.Text = "Hitbox Scale: " .. string.format("%.1f", state.scale)
                else
                    box.Text = tostring(state.scale)
                end
            end
        end)
        return f
    end
    
    toggle(scroll, "Hitbox Expander", "hitbox", true)
    toggle(scroll, "ESP (Players)", "esp", true)
    toggle(scroll, "X-Ray Vision", "xray", false)
    scaleSlider(scroll)
    
    -- HITBOX LOGIC
    local Players = game:GetService("Players")
    local RunService = game:GetService("RunService")
    local LocalPlayer = Players.LocalPlayer
    local Camera = workspace.CurrentCamera
    local originalSizes = {}
    
    local function getParts(char)
        local parts = {}
        local names = {"HumanoidRootPart","Head","UpperTorso","LowerTorso","Torso","LeftArm","RightArm","LeftLeg","RightLeg"}
        for _, n in ipairs(names) do
            local p = char:FindFirstChild(n)
            if p and p:IsA("BasePart") then table.insert(parts, p) end
        end
        for _, c in ipairs(char:GetDescendants()) do
            if c:IsA("BasePart") and c.Name ~= "Handle" then
                local found = false
                for _, p in ipairs(parts) do if p == c then found = true end end
                if not found then table.insert(parts, c) end
            end
        end
        return parts
    end
    
    local function expand(player)
        if player == LocalPlayer then return end
        if not state.hitbox then return end
        local char = player.Character
        if not char then return end
        local hum = char:FindFirstChild("Humanoid")
        if not hum or hum.Health <= 0 then return end
        local parts = getParts(char)
        for _, p in ipairs(parts) do
            if not originalSizes[player] then originalSizes[player] = {} end
            if not originalSizes[player][p] then originalSizes[player][p] = p.Size end
            pcall(function()
                p.Size = originalSizes[player][p] * state.scale
                p.Transparency = 0.6
                p.Color = Color3.fromRGB(255,0,0)
                p.Material = Enum.Material.Neon
                p.CanCollide = false
            end)
        end
    end
    
    local function revert(player)
        if not originalSizes[player] then return end
        local char = player.Character
        if not char then return end
        for p, s in pairs(originalSizes[player]) do
            if p and p.Parent then
                pcall(function()
                    p.Size = s
                    p.Transparency = 0
                    p.Color = Color3.fromRGB(255,255,255)
                    p.Material = Enum.Material.Plastic
                    p.CanCollide = true
                end)
            end
        end
        originalSizes[player] = nil
    end
    
    local function applyAll()
        for _, p in ipairs(Players:GetPlayers()) do
            if p ~= LocalPlayer then
                if state.hitbox then expand(p) else revert(p) end
            end
        end
    end
    
    for _, p in ipairs(Players:GetPlayers()) do
        if p ~= LocalPlayer then
            p.CharacterAdded:Connect(function() task.wait(0.3); expand(p) end)
            if p.Character then task.wait(0.3); expand(p) end
        end
    end
    Players.PlayerAdded:Connect(function(p)
        if p ~= LocalPlayer then
            p.CharacterAdded:Connect(function() task.wait(0.3); expand(p) end)
        end
    end)
    Players.PlayerRemoving:Connect(revert)
    
    RunService.Heartbeat:Connect(function()
        if not state.hitbox then return end
        for _, p in ipairs(Players:GetPlayers()) do
            if p ~= LocalPlayer and p.Character then
                expand(p)
            end
        end
    end)
    
    -- ESP LOGIC
    RunService.RenderStepped:Connect(function()
        for _, v in ipairs(sg:GetChildren()) do
            if v:IsA("Frame") and v.Name == "ESPBox" and v ~= main then v:Destroy() end
        end
        if not state.esp then return end
        for _, p in ipairs(Players:GetPlayers()) do
            if p == LocalPlayer then continue end
            local char = p.Character
            if not char then continue end
            local root = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso")
            if not root then continue end
            local pos = root.Position
            local sp, on = Camera:WorldToViewportPoint(pos)
            if not on then continue end
            local head = char:FindFirstChild("Head")
            if not head then continue end
            local hp = head.Position
            local dist = (pos - Camera.CFrame.Position).Magnitude
            local h = 4 / dist * 500
            local w = h * 0.5
            local box = Instance.new("Frame")
            box.Name = "ESPBox"
            box.Size = UDim2.new(0, w, 0, h)
            box.Position = UDim2.new(0, sp.X - w/2, 0, sp.Y - h/2)
            box.BackgroundColor3 = p.Team and p.Team.TeamColor.Color or Color3.fromRGB(255,0,0)
            box.BackgroundTransparency = 0.5
            box.BorderSizePixel = 1
            box.BorderColor3 = Color3.new(1,1,1)
            box.Parent = sg
        end
    end)
    
    -- X-RAY LOGIC
    if state.xray then
        game.Lighting.Brightness = 10
        game.Lighting.Ambient = Color3.fromRGB(255,255,255)
    end
    
    -- OPEN/CLOSE
    local vis = true
    close.MouseButton1Click:Connect(function()
        vis = not vis
        main.Visible = vis
    end)
    
    game:GetService("UserInputService").InputBegan:Connect(function(i, g)
        if g then return end
        if i.KeyCode == Enum.KeyCode.RightShift then
            vis = not vis
            main.Visible = vis
        end
    end)
    
    print("Hitbox Pro v1.0 Loaded | Key: 89271")
end

-- Key system
local function promptKey()
    local sg = Instance.new("ScreenGui")
    sg.Name = "KeyPrompt"
    sg.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
    
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(0, 300, 0, 150)
    frame.Position = UDim2.new(0.5, -150, 0.5, -75)
    frame.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
    frame.BorderSizePixel = 0
    frame.Parent = sg
    
    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1, 0, 0, 30)
    label.Position = UDim2.new(0, 0, 0, 10)
    label.BackgroundTransparency = 1
    label.Text = "ENTER KEY:"
    label.TextColor3 = Color3.fromRGB(255, 200, 80)
    label.Font = Enum.Font.GothamBold
    label.TextSize = 18
    label.Parent = frame
    
    local box = Instance.new("TextBox")
    box.Size = UDim2.new(0.8, 0, 0, 35)
    box.Position = UDim2.new(0.1, 0, 0.35, 0)
    box.BackgroundColor3 = Color3.fromRGB(50, 50, 65)
    box.Text = ""
    box.PlaceholderText = "Enter Key"
    box.TextColor3 = Color3.new(1,1,1)
    box.Font = Enum.Font.Gotham
    box.TextSize = 16
    box.Parent = frame
    
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0.4, 0, 0, 35)
    btn.Position = UDim2.new(0.3, 0, 0.65, 0)
    btn.BackgroundColor3 = Color3.fromRGB(0, 150, 200)
    btn.Text = "ACTIVATE"
    btn.TextColor3 = Color3.new(1,1,1)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 16
    btn.Parent = frame
    
    btn.MouseButton1Click:Connect(function()
        if box.Text == key then
            sg:Destroy()
            loadScript()
        else
            box.Text = ""
            box.PlaceholderText = "WRONG KEY!"
            box.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
            task.wait(1)
            box.BackgroundColor3 = Color3.fromRGB(50, 50, 65)
            box.PlaceholderText = "Enter Key"
        end
    end)
end

promptKey()

Features & Information

Hitbox expander ESP XRAY (DON'T WORK) Key is *89271*
#HITBOX EXPANDER ESP

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts