ESP and Hitboxes expander
Key Required

ESP and Hitboxes expander

🎃 Survive BRAINROT in Area 51! 🎃 [HALLOWEEN!]A2000A2000 12.1K views 41 executesUpdated Nov 1, 2025
Unrated
00
Lua Script•403 lines (13158 chars)
-- if you use this script credit me !! or I will complain about your script copy.

--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
-- Load the UI library
local Library = loadstring(game:HttpGet('https://gist.githubusercontent.com/MjContiga1/5b9535166d60560ac884a871cb0dc418/raw/e7fdb16802d9486d8d04d3e41d3607d89e6b4a1b/Libsuck.lua'))()

local camera = workspace.CurrentCamera
local RunService = game:GetService("RunService")

-- Variables for hitbox management
local originalSizes = {}
local modifiedParts = {}
local hasInitialized = false
local currentMultiplier = 2
local currentTransparency = 50
local hitboxChildConnection = nil

-- Variables for ESP
local espEnabled = false
local espObjects = {}
local espChildConnection = nil
local renderConnection = nil

-- Function to update sizes
local function updateSizes()
    if not hasInitialized then return end
    for i = #modifiedParts, 1, -1 do
        local obj = modifiedParts[i]
        if obj and obj.Parent then
            local multi = currentMultiplier
            if obj.Name == "Head" then
                obj.Size = originalSizes[obj] * multi * 1.5
            else
                obj.Size = originalSizes[obj] * multi
            end
        else
            table.remove(modifiedParts, i)
        end
    end
end

-- Function to update transparency
local function updateTransparency()
    if not hasInitialized then return end
    local trans = currentTransparency / 100
    for _, obj in pairs(modifiedParts) do
        if obj and obj.Parent then
            obj.Transparency = trans
        end
    end
end

-- Function to process a killer model for hitboxes
local function processKiller(model, spawnsFolder)
    local count = 0
    for _, obj in pairs(model:GetDescendants()) do
        if obj:IsA("BasePart") and (not spawnsFolder or not obj:IsDescendantOf(spawnsFolder)) then
            originalSizes[obj] = obj.Size
            obj.CanCollide = false
            local multi = currentMultiplier
            if obj.Name == "Head" then
                obj.Size = originalSizes[obj] * multi * 1.5
            else
                obj.Size = originalSizes[obj] * multi
            end
            obj.Transparency = currentTransparency / 100
            table.insert(modifiedParts, obj)
            count = count + 1
        end
    end
    return count
end

-- ESP Functions
local function createESP(model)
    local rootPart = model:FindFirstChild("HumanoidRootPart") or model.PrimaryPart
    if not rootPart then return end

    local box = Drawing.new("Square")
    box.Visible = false
    box.Size = Vector2.new(0, 0)
    box.Position = Vector2.new(0, 0)
    box.Color = Color3.fromRGB(255, 0, 0)
    box.Thickness = 2
    box.Filled = false
    box.Transparency = 0

    local text = Drawing.new("Text")
    text.Visible = false
    text.Size = 16
    text.Center = true
    text.Outline = true
    text.Font = 2
    text.Color = Color3.fromRGB(255, 255, 255)
    text.Text = model.Name

    table.insert(espObjects, {
        box = box,
        text = text,
        root = rootPart,
        model = model
    })
end

local function updateESP()
    for i = #espObjects, 1, -1 do
        local espData = espObjects[i]
        if not espData.model.Parent or not espData.root.Parent then
            espData.box:Remove()
            espData.text:Remove()
            table.remove(espObjects, i)
        else
            local head = espData.model:FindFirstChild("Head")
            local headPos = head and head.Position or espData.root.Position
            local legPos = espData.root.Position - Vector3.new(0, 5, 0)
            local topVector, _ = camera:WorldToViewportPoint(headPos)
            local bottomVector, _ = camera:WorldToViewportPoint(legPos)

            if topVector.Z > 0 and bottomVector.Z > 0 then
                local height = math.abs(topVector.Y - bottomVector.Y)
                local width = height * 0.5
                local centerX = (topVector.X + bottomVector.X) / 2
                local topY = math.min(topVector.Y, bottomVector.Y)
                espData.box.Size = Vector2.new(width, height)
                espData.box.Position = Vector2.new(centerX - width / 2, topY)
                espData.box.Visible = true

                espData.text.Position = Vector2.new(centerX, topY - 20)
                espData.text.Visible = true
            else
                espData.box.Visible = false
                espData.text.Visible = false
            end
        end
    end
end

local function clearESP()
    for i = #espObjects, 1, -1 do
        local esp = espObjects[i]
        esp.box:Remove()
        esp.text:Remove()
        table.remove(espObjects, i)
    end
end

-- Create main window
local window = Library:Window('Example UI')

-- Create tabs with icons replace ur own icon id
local mainTab = window:Tab({"Crafting", "rbxassetid://7734022041"})
local localTab = window:Tab({"LocalPlayer", "rbxassetid://7743875962"})
local hitboxesTab = window:Tab({"Hitboxes", "rbxassetid://7733673987"})
local espTab = window:Tab({"ESP", "rbxassetid://7733673987"})
local changelogTab = window:Tab({"Change Log", "rbxassetid://7733673987"})
local settingsTab = window:Tab({"Reward", "rbxassetid://7733673987"})

-- Main Tab Elements
mainTab:Label("Welcome to the UI Library!")

-- Button
mainTab:Button('Click Me!', function()
    print("Button clicked!")
    game.StarterGui:SetCore("SendNotification", {
        Title = "Notification";
        Text = "Button was clicked!";
        Duration = 3;
    })
end)

-- Toggle
mainTab:Toggle('Auto Clicker', false, function(state)
    print("Auto Clicker is now:", state and "ON" or "OFF")
end)

-- Slider
mainTab:Slider("Walk Speed", 16, 100, 16, function(value)
    print("Walk Speed set to:", value)
    game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = value
end)

-- Keybind
mainTab:Keybind("Toggle UI", Enum.KeyCode.RightShift, function(key)
    print("Key pressed:", key.Name)
end)

-- InputBox
mainTab:InputBox("Enter Text", "Type something...", function(text)
    print("Input text:", text)
end)

-- Single-select dropdown
local singleDropdown = mainTab:Dropdown("Select Weapon", {"Sword", "Gun", "Knife"}, function(selected)
    print("Selected weapon:", selected)
end)

-- Multi-select dropdown
local multiDropdown = mainTab:Dropdown("Select Features", {"ESP", "Aimbot", "Speed", "Jump"}, function(selected)
    print("Selected features:", table.concat(selected, ", "))
end, true) -- true enables multi-select

-- Button to refresh dropdowns
mainTab:Button('Refresh Dropdowns', function()
    singleDropdown:Refresh({"New Sword", "New Gun", "New Knife"})
    multiDropdown:Refresh({"New ESP", "New Aimbot", "New Speed", "New Jump", "New Feature"})
end)

-- Hitboxes Tab Elements
hitboxesTab:Label("Hitbox Settings")

-- Button to Initialize and Enlarge Killer Hitboxes (also removes collision)
hitboxesTab:Button('Initialize Bigger Hitboxes', function()
    local killersFolder = workspace:FindFirstChild("Killers")
    if not killersFolder then
        game.StarterGui:SetCore("SendNotification", {
            Title = "Error";
            Text = "Killers folder not found!";
            Duration = 3;
        })
        return
    end
    local spawnsFolder = killersFolder:FindFirstChild("KillerSpawns")
    
    originalSizes = {}
    modifiedParts = {}
    hasInitialized = true
    
    -- Process existing killers
    local totalCount = 0
    for _, child in pairs(killersFolder:GetChildren()) do
        if child.Name ~= "KillerSpawns" and child:IsA("Model") then
            totalCount = totalCount + processKiller(child, spawnsFolder)
        end
    end
    
    -- Connect to new killers
    if hitboxChildConnection then
        hitboxChildConnection:Disconnect()
    end
    hitboxChildConnection = killersFolder.ChildAdded:Connect(function(child)
        if child.Name == "KillerSpawns" or not child:IsA("Model") then return end
        wait(0.1) -- Small delay to allow parts to load
        processKiller(child, spawnsFolder)
        game.StarterGui:SetCore("SendNotification", {
            Title = "New Killer";
            Text = "Applied hitbox changes to new killer: " .. child.Name;
            Duration = 2;
        })
    end)
    
    game.StarterGui:SetCore("SendNotification", {
        Title = "Success";
        Text = "Initialized and enlarged hitboxes for " .. totalCount .. " parts! Collision removed.";
        Duration = 3;
    })
end)

-- Slider for Hitbox Size Multiplier
hitboxesTab:Slider("Hitbox Multiplier", 1, 10, 2, function(value)
    currentMultiplier = value
    updateSizes()
end)

-- Slider for Hitbox Transparency (0 = opaque, 100 = invisible)
hitboxesTab:Slider("Hitbox Transparency", 0, 100, 50, function(value)
    currentTransparency = value
    updateTransparency()
end)

-- ESP Tab Elements
espTab:Label("ESP Settings")

espTab:Toggle("Enable Killer ESP", false, function(state)
    local killersFolder = workspace:FindFirstChild("Killers")
    if not killersFolder then
        game.StarterGui:SetCore("SendNotification", {
            Title = "Error";
            Text = "Killers folder not found!";
            Duration = 3;
        })
        return
    end
    local spawnsFolder = killersFolder:FindFirstChild("KillerSpawns")
    
    if state then
        -- Clear existing ESP
        clearESP()
        
        -- Create for existing killers
        for _, child in pairs(killersFolder:GetChildren()) do
            if child.Name ~= "KillerSpawns" and child:IsA("Model") then
                createESP(child)
            end
        end
        
        -- Connect to new killers
        if not espChildConnection then
            espChildConnection = killersFolder.ChildAdded:Connect(function(child)
                if child.Name == "KillerSpawns" or not child:IsA("Model") then return end
                wait(0.1)
                createESP(child)
            end)
        end
        
        -- Connect render loop
        if not renderConnection then
            renderConnection = RunService.Heartbeat:Connect(updateESP)
        end
        
        game.StarterGui:SetCore("SendNotification", {
            Title = "ESP";
            Text = "Killer ESP enabled!";
            Duration = 2;
        })
    else
        -- Disable
        clearESP()
        
        if espChildConnection then
            espChildConnection:Disconnect()
            espChildConnection = nil
        end
        
        if renderConnection then
            renderConnection:Disconnect()
            renderConnection = nil
        end
        
        game.StarterGui:SetCore("SendNotification", {
            Title = "ESP";
            Text = "Killer ESP disabled!";
            Duration = 2;
        })
    end
end)

-- Change Log Tab Elements
changelogTab:Label("Change Log - Most Recent to Oldest")

changelogTab:Label("Version 1.5 - November 1, 2025")
changelogTab:Label("- Fixed ESP rendering errors and indexing issues.")

changelogTab:Label("Version 1.4 - October 31, 2025")
changelogTab:Label("- Added ESP tab with Killer ESP functionality.")
changelogTab:Label("- Created separate Hitboxes tab for hitbox controls.")
changelogTab:Label("- Fixed notification spam on hitbox multiplier changes.")

changelogTab:Label("Version 1.3 - October 30, 2025")
changelogTab:Label("- Added support for newly spawned killers to automatically apply hitbox changes.")

changelogTab:Label("Version 1.2 - October 29, 2025")
changelogTab:Label("- Added slider for dynamic hitbox size multiplier.")
changelogTab:Label("- Added slider for hitbox transparency.")
changelogTab:Label("- Removed collision for killers with the local player.")

changelogTab:Label("Version 1.1 - October 28, 2025")
changelogTab:Label("- Initial button to enlarge killer hitboxes, focusing on heads.")

changelogTab:Label("Version 1.0 - October 27, 2025")
changelogTab:Label("- First release: Basic hitbox enlargement for killers in workspace.Killers.")

-- LocalPlayer Tab Elements
localTab:Label("Local Player Settings")

localTab:Slider("Jump Power", 50, 200, 50, function(value)
    print("Jump Power set to:", value)
    game.Players.LocalPlayer.Character.Humanoid.JumpPower = value
end)

localTab:Toggle("Infinite Jump", false, function(state)
    print("Infinite Jump:", state and "ON" or "OFF")
    -- Add infinite jump logic here
end)

localTab:InputBox("Player Name", "Enter player name...", function(text)
    print("Looking for player:", text)
    -- Add player search logic here
end)

-- Settings Tab Elements
settingsTab:Label("UI Settings")

settingsTab:Toggle('Dark Mode', true, function(state)
    print("Dark Mode:", state)
    -- Add dark mode logic here
end)

settingsTab:Slider("UI Transparency", 0, 100, 100, function(value)
    print("UI Transparency:", value)
    -- Apply transparency to UI elements
end)

settingsTab:Keybind("Toggle Menu", Enum.KeyCode.Insert, function(key)
    print("Menu key changed to:", key.Name)
    -- Update menu toggle key here
end)

settingsTab:InputBox("Custom Title", "Enter title...", function(text)
    print("Custom title:", text)
    -- Update UI title here
end)

Features & Information

ESP Hitboxes expander & changer Walkspeed changer & Inf Jump Credit me if going to use this script!!

Community Comments (1)

SyrexGenesisXIsBackSyrexGenesisXIsBackNov 1, 2025(edited)

Nice ye roblox is cooked what's next counter brainrot global offensive a csgo ripoff!? Counter brainrot 2 a cs2 ripoff!? Welcome to brainrotburg!? Why is there so many copy of other games but brainrot edition 😭😭