Universal Npc Hitbox
Key RequiredUniversal

Universal Npc Hitbox

Universal ScriptMyolanScriptMyolanScript 1.7K views 3.8K executesUpdated Apr 29, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•214 lines (7058 chars)
--[[
	NPC HITBOX V6 - FIXED DISABLE
]]
local lp = game:GetService("Players").LocalPlayer
local pgui = lp:WaitForChild("PlayerGui")
local TweenService = game:GetService("TweenService")

-- Cleanup
if pgui:FindFirstChild("MyolanNPCHitbox") then pgui.MyolanNPCHitbox:Destroy() end

local sg = Instance.new("ScreenGui")
sg.Name = "MyolanNPCHitbox"
sg.Parent = pgui
sg.ResetOnSpawn = false

-- // --- 1. INTRO --- //
local IntroLabel = Instance.new("TextLabel")
IntroLabel.Size = UDim2.new(0, 500, 0, 60)
IntroLabel.Position = UDim2.new(0.5, -250, 0.5, -30)
IntroLabel.BackgroundTransparency = 1
IntroLabel.Text = "Made By Myolan"
IntroLabel.TextColor3 = Color3.fromRGB(200, 0, 0)
IntroLabel.Font = Enum.Font.GothamBold
IntroLabel.TextSize = 50
IntroLabel.TextTransparency = 1
IntroLabel.Parent = sg

task.spawn(function()
    task.wait(1)
    TweenService:Create(IntroLabel, TweenInfo.new(1.5), {TextTransparency = 0}):Play()
    task.wait(2.5)
    TweenService:Create(IntroLabel, TweenInfo.new(1.5), {TextTransparency = 1}):Play()
end)

-- // --- 2. VARIABLES & SYSTEM --- //
local enabled = false
local hitboxSize = 6
local hitboxTransparency = 0.5 -- Şeffaflık değişkeni
local priorityParts = {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}
local originalData = {} -- Parçaların eski hallerini saklamak için tablo

local function isNPC(model)
    if game.Players:GetPlayerFromCharacter(model) then return false end
    if model:FindFirstChildOfClass("Humanoid") or model:FindFirstChildOfClass("AnimationController") then 
        return true 
    end
    return false
end

-- Parçaları Eski Haline Döndüren Fonksiyon
local function resetHitboxes()
    for part, data in pairs(originalData) do
        if part and part.Parent then
            part.Size = data.Size
            part.Transparency = data.Transparency
            part.Material = data.Material
            part.Color = data.Color
            part.CanCollide = data.CanCollide
        end
    end
    originalData = {} -- Tabloyu temizle
end

local function expand(part)
    if part and part:IsA("BasePart") then
        -- Eğer parça tabloda yoksa orijinal özelliklerini kaydet
        if not originalData[part] then
            originalData[part] = {
                Size = part.Size,
                Transparency = part.Transparency,
                Material = part.Material,
                Color = part.Color,
                CanCollide = part.CanCollide
            }
        end
        
        -- Hitbox uygula
        if part.Size.X ~= hitboxSize or part.Transparency ~= hitboxTransparency then
            part.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize)
            part.Transparency = hitboxTransparency
            part.Material = Enum.Material.Neon
            part.Color = Color3.fromRGB(255, 70, 70)
            part.CanCollide = false
        end
    end
end

local function processNPC(model)
    for _, name in ipairs(priorityParts) do
        local part = model:FindFirstChild(name)
        if part and part:IsA("BasePart") then 
            expand(part)
        end
    end
end

-- // --- 3. MAIN PANEL --- //
local Main = Instance.new("Frame")
Main.Size = UDim2.new(0, 200, 0, 250)
Main.Position = UDim2.new(1.5, 0, 0.5, -125) 
Main.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
Main.ClipsDescendants = true
Main.Active = true
Main.Draggable = true
Main.Parent = sg
Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 15)

local Bg = Instance.new("ImageLabel")
Bg.Size = UDim2.new(1.2, 0, 1.2, 0)
Bg.Position = UDim2.new(-0.1, 0, -0.1, 0)
Bg.BackgroundTransparency = 1
Bg.Image = "https://www.roblox.com/asset-thumbnail/image?assetId=10149736922&width=420&height=420&format=png"
Bg.ImageTransparency = 0.7
Bg.ZIndex = 1
Bg.Parent = Main

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 40)
Title.Text = "NPC HITBOX V5"
Title.TextColor3 = Color3.new(1, 1, 1)
Title.BackgroundTransparency = 1
Title.Font = Enum.Font.GothamBold
Title.ZIndex = 2
Title.Parent = Main

local SizeLabel = Instance.new("TextLabel")
SizeLabel.Size = UDim2.new(1, 0, 0, 30)
SizeLabel.Position = UDim2.new(0, 0, 0.2, 0)
SizeLabel.Text = "Size: " .. hitboxSize
SizeLabel.TextColor3 = Color3.new(1, 1, 1)
SizeLabel.BackgroundTransparency = 1
SizeLabel.ZIndex = 2
SizeLabel.Parent = Main

-- // --- 4. TOGGLE SYSTEM --- //
local ToggleIcon = Instance.new("ImageButton")
ToggleIcon.Size = UDim2.new(0, 50, 0, 50)
ToggleIcon.Position = UDim2.new(0.95, -60, 0.5, -25)
ToggleIcon.Image = "https://www.roblox.com/asset-thumbnail/image?assetId=10149736922&width=420&height=420&format=png"
ToggleIcon.Visible = false
ToggleIcon.Parent = sg
Instance.new("UICorner", ToggleIcon).CornerRadius = UDim.new(1, 0)

local menuOpen = false
ToggleIcon.MouseButton1Click:Connect(function()
    menuOpen = not menuOpen
    local target = menuOpen and UDim2.new(0.5, -100, 0.5, -125) or UDim2.new(1.5, 0, 0.5, -125)
    TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quart), {Position = target}):Play()
end)

task.delay(6, function() ToggleIcon.Visible = true end)

-- // --- 5. BUTTONS --- //
local function createBtn(txt, pos, color)
    local b = Instance.new("TextButton")
    b.Size = UDim2.new(0.8, 0, 0, 35)
    b.Position = pos
    b.BackgroundColor3 = color
    b.Text = txt
    b.TextColor3 = Color3.new(1, 1, 1)
    b.Font = Enum.Font.GothamBold
    b.ZIndex = 2
    b.Parent = Main
    Instance.new("UICorner", b)
    return b
end

local PlusBtn = createBtn("+", UDim2.new(0.55, 0, 0.35, 0), Color3.fromRGB(50, 50, 50))
local MinusBtn = createBtn("-", UDim2.new(0.1, 0, 0.35, 0), Color3.fromRGB(50, 50, 50))
PlusBtn.Size = UDim2.new(0.35, 0, 0, 35)
MinusBtn.Size = UDim2.new(0.35, 0, 0, 35)

local EnableBtn = createBtn("ENABLE", UDim2.new(0.1, 0, 0.6, 0), Color3.fromRGB(150, 0, 0))

PlusBtn.MouseButton1Click:Connect(function()
    if hitboxSize < 100 then hitboxSize += 1 end
    SizeLabel.Text = "Size: " .. hitboxSize
end)

MinusBtn.MouseButton1Click:Connect(function()
    if hitboxSize > 3 then hitboxSize -= 1 end
    SizeLabel.Text = "Size: " .. hitboxSize
end)

EnableBtn.MouseButton1Click:Connect(function()
    enabled = not enabled
    if enabled then
        EnableBtn.Text = "DISABLE"
        EnableBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0)
    else
        EnableBtn.Text = "ENABLE"
        EnableBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0)
        resetHitboxes() -- Devre dışı kaldığında boyutları sil/sıfırla
    end
end)

-- // --- 6. PERFORMANCE OPTIMIZED AUTO-EXPANDER --- //
task.spawn(function()
    while task.wait(0.5) do 
        if enabled then
            for _, v in ipairs(workspace:GetChildren()) do
                if v:IsA("Model") and isNPC(v) then
                    processNPC(v)
                elseif v:IsA("Folder") then
                    for _, npc in ipairs(v:GetChildren()) do
                        if npc:IsA("Model") and isNPC(npc) then
                            processNPC(npc)
                        end
                    end
                end
            end
        end
    end
end)

Features & Information

Npc Hitbox Updated: Now it wont delete the hitbox after npc respawns. Thanks For using my scripts!
#npc#hitbox

Community Comments (3)

Alex7799Alex7799May 7, 2026

not working

Replying to @Alex7799
MyolanScriptMyolanScriptMay 8, 2026

hey hi there! i fixed the script u can use it now sorry for bugs!!

AranthemanAranthemanMay 21, 2026

Is not working, it only works when the npc res* and the hitbox shows

More Scripts for Universal Scripts