Debug hub V2 0
Key RequiredUniversal

Debug hub V2 0

Universal ScriptHell_worldHell_world 850 views 276 executesUpdated Feb 21, 2026
5.0/ 5(3 votes)
30100% Positive
Lua Script•196 lines (7139 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Stats = game:GetService("Stats")
local CoreGui = game:GetService("CoreGui")

local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()
local Camera = workspace.CurrentCamera

for _, old in ipairs(CoreGui:GetChildren()) do
    if old.Name == "F3_Final_Fixed" then old:Destroy() end
end

local sg = Instance.new("ScreenGui", CoreGui)
sg.Name = "F3_Final_Fixed"
sg.IgnoreGuiInset = true

local function makeDraggable(obj)
    local dragging, dragInput, dragStart, startPos

    obj.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            dragStart = input.Position
            startPos = obj.Position

            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)

    obj.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
            dragInput = input
        end
    end)

    UserInputService.InputChanged:Connect(function(input)
        if input == dragInput and dragging then
            local delta = input.Position - dragStart
            obj.Position = UDim2.new(
                startPos.X.Scale, 
                startPos.X.Offset + delta.X, 
                startPos.Y.Scale, 
                startPos.Y.Offset + delta.Y
            )
        end
    end)
end

local btn = Instance.new("TextButton", sg)
btn.Size = UDim2.new(0, 80, 0, 30)
btn.Position = UDim2.new(0, 10, 0, 10)
btn.Text = "F3 MENU"
btn.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.SourceSansBold
btn.BorderSizePixel = 0
makeDraggable(btn)

local frame = Instance.new("Frame", sg)
frame.Size = UDim2.new(0, 300, 0, 480)
frame.Position = UDim2.new(0, 10, 0, 50)
frame.BackgroundColor3 = Color3.new(0, 0, 0)
frame.BackgroundTransparency = 0.4
frame.BorderSizePixel = 0
frame.Active = true
makeDraggable(frame)

local info = Instance.new("TextLabel", frame)
info.Size = UDim2.new(1, -20, 0, 200)
info.Position = UDim2.new(0, 10, 0, 10)
info.BackgroundTransparency = 1
info.TextColor3 = Color3.new(1, 1, 1)
info.TextXAlignment = Enum.TextXAlignment.Left
info.TextYAlignment = Enum.TextYAlignment.Top
info.Font = Enum.Font.Code
info.TextSize = 13
info.RichText = true

local function makeGraph(name, yPos, color)
    local label = Instance.new("TextLabel", frame)
    label.Text = name
    label.Size = UDim2.new(1, 0, 0, 15)
    label.Position = UDim2.new(0, 10, 0, yPos - 18)
    label.TextColor3 = color
    label.BackgroundTransparency = 1
    label.TextSize = 10
    label.Font = Enum.Font.Code
    label.TextXAlignment = Enum.TextXAlignment.Left
    
    local gFrame = Instance.new("Frame", frame)
    gFrame.Size = UDim2.new(1, -20, 0, 40)
    gFrame.Position = UDim2.new(0, 10, 0, yPos)
    gFrame.BackgroundColor3 = Color3.new(0, 0, 0)
    gFrame.BackgroundTransparency = 0.7
    
    local bars = {}
    for i = 1, 30 do
        local b = Instance.new("Frame", gFrame)
        b.Size = UDim2.new(1/30, -1, 0.1, 0)
        b.Position = UDim2.new((i-1)/30, 0, 1, 0)
        b.AnchorPoint = Vector2.new(0, 1)
        b.BackgroundColor3 = color
        b.BorderSizePixel = 0
        bars[i] = b
    end
    return bars
end

local fBars = makeGraph("FPS PERFORMANCE", 250, Color3.new(0, 1, 0))
local tBars = makeGraph("TPS (PHYSICS)", 310, Color3.new(1, 1, 0))
local pBars = makeGraph("NETWORK PING", 370, Color3.new(0, 0.8, 1))

local gizmo = Instance.new("Frame", sg)
gizmo.Size = UDim2.new(0, 80, 0, 80)
gizmo.Position = UDim2.new(1, -100, 0, 20)
gizmo.BackgroundTransparency = 1

local function addAxis(color, name)
    local a = Instance.new("Frame", gizmo)
    a.Size = UDim2.new(0, 2, 0, 30)
    a.BackgroundColor3 = color
    a.AnchorPoint = Vector2.new(0.5, 0.5)
    local t = Instance.new("TextLabel", a)
    t.Text = name; t.TextColor3 = color; t.Size = UDim2.new(0,10,0,10); t.Position = UDim2.new(0,0,0,-12); t.BackgroundTransparency = 1
    return a
end
local axX, axY, axZ = addAxis(Color3.new(1,0,0),"X"), addAxis(Color3.new(0,1,0),"Y"), addAxis(Color3.new(0,0,1),"Z")

local fpsH, tpsH, pngH = {}, {}, {}
local lastT = tick()
local fr = 0

RunService.RenderStepped:Connect(function()
    if not frame.Visible then return end
    fr = fr + 1
    if tick() - lastT >= 1 then
        local fps = fr
        local tps = workspace:GetRealPhysicsFPS()
        local png = Stats.Network.ServerStatsItem["Data Ping"]:GetValue()
        
        local function updateH(tab, val, bars, max)
            table.insert(tab, val); if #tab > 30 then table.remove(tab, 1) end
            for i, v in ipairs(tab) do 
                if bars[i] then bars[i].Size = UDim2.new(1/30, -1, math.clamp(v/max, 0.1, 1), 0) end
            end
        end
        updateH(fpsH, fps, fBars, 60)
        updateH(tpsH, tps, tBars, 60)
        updateH(pngH, png, pBars, 300)
        
        fr = 0; lastT = tick()
    end

    local root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
    local hum = Player.Character and Player.Character:FindFirstChild("Humanoid")
    local speed = root and (root.Velocity * Vector3.new(1,0,1)).Magnitude * 1.097 or 0
    
    info.Text = string.format(
        "<font color='#00FF00'>[ SYSTEM ]</font>\nFPS: %d | Ping: %s\nTPS: %.1f | Mem: %.1f MB\n\n" ..
        "<font color='#FFA500'>[ PLAYER ]</font>\nXYZ: %.1f, %.1f, %.1f\nSpeed: %.1f km/h\nState: %s\n\n" ..
        "<font color='#00AEEF'>[ CURSOR ]</font>\nTarget: %s\nDist: %.1f",
        fpsH[#fpsH] or 0, Stats.Network.ServerStatsItem["Data Ping"]:GetValueString(),
        workspace:GetRealPhysicsFPS(), Stats:GetTotalMemoryUsageMb(),
        root and root.Position.X or 0, root and root.Position.Y or 0, root and root.Position.Z or 0,
        speed, hum and tostring(hum:GetState()):gsub("Enum.HumanoidStateType.", "") or "N/A",
        Mouse.Target and Mouse.Target.Name:sub(1,15) or "None",
        (root and Mouse.Target) and (root.Position - Mouse.Target.Position).Magnitude or 0
    )

    local cf = Camera.CFrame
    local function rot(gui, vec)
        local loc = cf:VectorToObjectSpace(vec)
        gui.Position = UDim2.new(0.5 + (loc.X * 0.4), 0, 0.5 - (loc.Y * 0.4), 0)
        gui.Rotation = math.deg(math.atan2(loc.X, loc.Y))
        gui.BackgroundTransparency = loc.Z < 0 and 0 or 0.7
    end
    rot(axX, Vector3.new(1,0,0)); rot(axY, Vector3.new(0,1,0)); rot(axZ, Vector3.new(0,0,1))
end)

btn.MouseButton1Click:Connect(function() 
    frame.Visible = not frame.Visible 
    gizmo.Visible = frame.Visible
end)

UserInputService.InputBegan:Connect(function(i, p)
    if not p and i.KeyCode == Enum.KeyCode.F3 then
        frame.Visible = not frame.Visible
        gizmo.Visible = frame.Visible
    end
end)

Features & Information

Debug HUD v2.0 (Stable) Performance Tracking: Графики FPS, TPS и пинга с историей последних 30 кадров. Player Stats: Координаты (XYZ), скорость в км/ч и текущее состояние Humanoid. Cursor Info: Дистанция до цели и имя объекта под курсором. Interactive UI: Свободное перетаскивание (Drag-and-Drop) элементов без багов позиционирования. Visual Aids: 3D Gizmo (оси координат), привязанное к камере. Privacy: Автоматическая очистка старых версий и инъекция в защищенный контейнер.
#Debug#Menu#Universal#Script#XYZ

Community Comments (1)

Emil2006Emil2006Feb 21, 2026

W script🔥🔥

More Scripts for Universal Scripts