Dragon Soul HUB
Key RequiredUniversal

Dragon Soul HUB

Universal ScriptZeyOnTopZeyOnTop 4.4K views 5.7K executesUpdated Feb 6, 2026
Unrated
00
Lua Script•189 lines (6496 chars)
-- Dragon Radar v6.3 (Fixed by me)
-- Borrar carpetas de logs antes de usar

local u = game:GetService("UserInputService")
local ts = game:GetService("TweenService")
local rs = game:GetService("RunService")
local tp = game:GetService("TeleportService")
local hp = game:GetService("HttpService")
local plr = game:GetService("Players").LocalPlayer

-- // Settings
_G.BallSpeed = 180
_G.ESP = false
_G.Busy = false

local keys = {"dragon", "ball", "bola"}

-- // UI (Basic Orange Theme)
local gui = Instance.new("ScreenGui", plr.PlayerGui)
local main = Instance.new("Frame", gui)
main.Size = UDim2.new(0, 300, 0, 400)
main.Position = UDim2.new(0.5, -150, 0.5, -200)
main.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
main.BorderSizePixel = 0
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 8)

local line = Instance.new("Frame", main)
line.Size = UDim2.new(1, 0, 0, 2)
line.BackgroundColor3 = Color3.fromRGB(255, 120, 0)
line.BorderSizePixel = 0

local title = Instance.new("TextLabel", main)
title.Size = UDim2.new(1, 0, 0, 40)
title.Text = "DRAGON SOUL HUB"
title.TextColor3 = Color3.new(1,1,1)
title.Font = "GothamBold"
title.TextSize = 18
title.BackgroundTransparency = 1

-- // Funciones
local function getBalls()
    local t = {}
    for _, v in pairs(workspace:GetDescendants()) do
        if v:IsA("BasePart") or v:IsA("Model") then
            local n = v.Name:lower()
            for _, k in pairs(keys) do
                if n:find(k) then
                    local p = v:IsA("Model") and (v.PrimaryPart or v:FindFirstChildWhichIsA("BasePart")) or v
                    if p and p:IsA("BasePart") and p.Transparency < 1 then
                        table.insert(t, p)
                    end
                end
            end
        end
    end
    return t
end

-- // Botones (Compactos)
local function create(txt, pos, callback)
    local btn = Instance.new("TextButton", main)
    btn.Size = UDim2.new(0.9, 0, 0, 40)
    btn.Position = UDim2.new(0.05, 0, 0, pos)
    btn.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
    btn.Text = txt
    btn.TextColor3 = Color3.new(1,1,1)
    btn.Font = "Gotham"
    btn.TextSize = 14
    btn.AutoButtonColor = true
    Instance.new("UICorner", btn)
    
    btn.MouseButton1Click:Connect(callback)
    return btn
end

create("Escanear/ESP", 60, function()
    _G.ESP = not _G.ESP
    print("ESP Status:", _G.ESP)
    for _, b in pairs(getBalls()) do
        if not b:FindFirstChild("Highlight") then
            local h = Instance.new("Highlight", b)
            h.FillColor = Color3.fromRGB(255, 140, 0)
            
            local bb = Instance.new("BillboardGui", b)
            bb.Size, bb.AlwaysOnTop = UDim2.new(0,80,0,20), true
            local l = Instance.new("TextLabel", bb)
            l.Size, l.BackgroundTransparency, l.TextColor3 = UDim2.new(1,0,1,0), 1, Color3.new(1,1,1)
            l.Text = "BALL"
            
            task.spawn(function()
                while b and b.Parent and _G.ESP do task.wait(0.5) end
                h:Destroy()
                bb:Destroy()
            end)
        end
    end
end)

create("Auto-Collect", 110, function()
    if _G.Busy then return end
    local list = getBalls()
    local target = nil
    local dist = math.huge
    
    for _, x in pairs(list) do
        local d = (plr.Character.HumanoidRootPart.Position - x.Position).Magnitude
        if d < dist then dist = d; target = x end
    end

    if target then
        _G.Busy = true
        -- Noclip
        local nc = rs.Stepped:Connect(function()
            for _, v in pairs(plr.Character:GetDescendants()) do
                if v:IsA("BasePart") then v.CanCollide = false end
            end
        end)

        local move = ts:Create(plr.Character.HumanoidRootPart, TweenInfo.new(dist/_G.BallSpeed, Enum.EasingStyle.Linear), {CFrame = target.CFrame})
        move:Play()
        move.Completed:Connect(function()
            -- Fire interaction
            local p = target:FindFirstChildOfClass("ProximityPrompt") or target.Parent:FindFirstChildOfClass("ProximityPrompt")
            if p then fireproximityprompt(p) end
            
            task.wait(0.3)
            nc:Disconnect()
            _G.Busy = false
        end)
    end
end)

create("Server Hop", 160, function()
    local servers = hp:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100")).data
    for _, s in pairs(servers) do
        if s.playing < s.maxPlayers and s.id ~= game.JobId then
            tp:TeleportToPlaceInstance(game.PlaceId, s.id)
        end
    end
end)

create("Rejoin", 210, function() tp:TeleportToPlaceInstance(game.PlaceId, game.JobId) end)

-- // Slider Speed (Manual)
local sFrame = Instance.new("Frame", main)
sFrame.Size = UDim2.new(0.9, 0, 0, 40)
sFrame.Position = UDim2.new(0.05, 0, 0, 260)
sFrame.BackgroundColor3 = Color3.fromRGB(30,30,30)
Instance.new("UICorner", sFrame)

local sTitle = Instance.new("TextLabel", sFrame)
sTitle.Size = UDim2.new(1,0,0,20)
sTitle.Text = "Vuelo: " .. _G.BallSpeed
sTitle.TextColor3 = Color3.new(1,1,1)
sTitle.BackgroundTransparency = 1

local drag = false
sFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then drag = true end
end)
u.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then drag = false end
end)
u.InputChanged:Connect(function(input)
    if drag and input.UserInputType == Enum.UserInputType.MouseMovement then
        local percent = math.clamp((input.Position.X - sFrame.AbsolutePosition.X) / sFrame.AbsoluteSize.X, 0, 1)
        _G.BallSpeed = math.floor(50 + (percent * 450))
        sTitle.Text = "Vuelo: " .. _G.BallSpeed
    end
end)

-- // Drag system
local dragging, dragInput, startPos, startPosMain
main.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        startPos = input.Position
        startPosMain = main.Position
    end
end)
u.InputChanged:Connect(function(input)
    if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
        local delta = input.Position - startPos
        main.Position = UDim2.new(startPosMain.X.Scale, startPosMain.X.Offset + delta.X, startPosMain.Y.Scale, startPosMain.Y.Offset + delta.Y)
    end
end)
u.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
end)

Features & Information

loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Dragon-Soul-HUB-103727"))() By: ZeyOnTop AutoFarm Dragon Ball -ESP DRAGON BALL -AUTO COLLECT DRAGON BALL

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts