-- 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)