-- DRAGON HUB - ANTI-VOID -- Versão Corrigida local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer -- Configurações local HUB_NAME = "DRAGON HUB" local BALL_COLOR = Color3.fromRGB(255, 100, 0) local GUI_COLOR = Color3.fromRGB(25, 25, 35) -- Criar a tela principal local screenGui = Instance.new("ScreenGui") screenGui.Name = HUB_NAME screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = player.PlayerGui -- Bola flutuante com foguete local floatingBall = Instance.new("TextButton") floatingBall.Name = "FloatingBall" floatingBall.Size = UDim2.new(0, 60, 0, 60) floatingBall.Position = UDim2.new(0, 30, 0, 30) floatingBall.BackgroundColor3 = BALL_COLOR floatingBall.BorderSizePixel = 0 floatingBall.AnchorPoint = Vector2.new(0.5, 0.5) floatingBall.Text = "🚀" floatingBall.TextColor3 = Color3.fromRGB(255, 255, 255) floatingBall.TextSize = 20 floatingBall.Font = Enum.Font.GothamBold floatingBall.Parent = screenGui -- Arredondar a bola local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(1, 0) UICorner.Parent = floatingBall -- Hub principal (menor) local mainFrame = Instance.new("Frame") mainFrame.Name = "MainHub" mainFrame.Size = UDim2.new(0, 280, 0, 200) mainFrame.Position = UDim2.new(0.5, -140, 0.5, -100) mainFrame.BackgroundColor3 = GUI_COLOR mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Visible = false mainFrame.Parent = screenGui -- Arredondar o hub local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 12) mainCorner.Parent = mainFrame -- Barra de título local titleBar = Instance.new("TextButton") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 35) titleBar.BackgroundColor3 = Color3.fromRGB(35, 35, 45) titleBar.BorderSizePixel = 0 titleBar.Text = "" titleBar.Parent = mainFrame local titleLabel = Instance.new("TextLabel") titleLabel.Name = "Title" titleLabel.Size = UDim2.new(1, -70, 1, 0) titleLabel.Position = UDim2.new(0, 10, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = HUB_NAME titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 14 titleLabel.Parent = titleBar -- Botão fechar local closeBtn = Instance.new("TextButton") closeBtn.Name = "CloseBtn" closeBtn.Size = UDim2.new(0, 35, 0, 35) closeBtn.Position = UDim2.new(1, -35, 0, 0) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 60, 60) closeBtn.BorderSizePixel = 0 closeBtn.Text = "X" closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 16 closeBtn.Parent = titleBar local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 8) btnCorner.Parent = closeBtn -- Conteúdo do hub local contentFrame = Instance.new("Frame") contentFrame.Name = "ContentFrame" contentFrame.Size = UDim2.new(1, -20, 1, -45) contentFrame.Position = UDim2.new(0, 10, 0, 40) contentFrame.BackgroundTransparency = 1 contentFrame.BorderSizePixel = 0 contentFrame.Parent = mainFrame -- === SISTEMA ANTIVOID === local antiVoidEnabled = false local antiVoidPart = nil local antiVoidY = -100 -- Botão toggle Anti-Void local antiVoidBtn = Instance.new("TextButton") antiVoidBtn.Name = "AntiVoidBtn" antiVoidBtn.Size = UDim2.new(1, 0, 0, 40) antiVoidBtn.Position = UDim2.new(0, 0, 0, 0) antiVoidBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 60) antiVoidBtn.BorderSizePixel = 0 antiVoidBtn.Text = "🛡️ ANTI-VOID: ❌ OFF" antiVoidBtn.TextColor3 = Color3.fromRGB(255, 255, 255) antiVoidBtn.Font = Enum.Font.GothamBold antiVoidBtn.TextSize = 14 antiVoidBtn.Parent = contentFrame local antiVoidCorner = Instance.new("UICorner") antiVoidCorner.CornerRadius = UDim.new(0, 8) antiVoidCorner.Parent = antiVoidBtn -- Botão ajustar posição local adjustBtn = Instance.new("TextButton") adjustBtn.Name = "AdjustBtn" adjustBtn.Size = UDim2.new(1, 0, 0, 40) adjustBtn.Position = UDim2.new(0, 0, 0, 50) adjustBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 0) adjustBtn.BorderSizePixel = 0 adjustBtn.Text = "📐 ESCOLHER POSIÇÃO" adjustBtn.TextColor3 = Color3.fromRGB(255, 255, 255) adjustBtn.Font = Enum.Font.GothamBold adjustBtn.TextSize = 14 adjustBtn.Parent = contentFrame local adjustCorner = Instance.new("UICorner") adjustCorner.CornerRadius = UDim.new(0, 8) adjustCorner.Parent = adjustBtn -- Display da posição atual local positionLabel = Instance.new("TextLabel") positionLabel.Name = "PositionLabel" positionLabel.Size = UDim2.new(1, 0, 0, 25) positionLabel.Position = UDim2.new(0, 0, 0, 100) positionLabel.BackgroundTransparency = 1 positionLabel.Text = "Posição Y: " .. antiVoidY positionLabel.TextColor3 = Color3.fromRGB(200, 200, 200) positionLabel.Font = Enum.Font.Gotham positionLabel.TextSize = 12 positionLabel.TextXAlignment = Enum.TextXAlignment.Center positionLabel.Parent = contentFrame -- === SISTEMA DE AJUSTE DE POSIÇÃO === local adjustmentGui = Instance.new("Frame") adjustmentGui.Name = "AntiVoidAdjustment" adjustmentGui.Size = UDim2.new(0, 200, 0, 180) adjustmentGui.Position = UDim2.new(0.5, -100, 0.5, -90) adjustmentGui.BackgroundColor3 = Color3.fromRGB(40, 40, 50) adjustmentGui.BorderSizePixel = 0 adjustmentGui.Visible = false adjustmentGui.Parent = screenGui local adjustmentCorner = Instance.new("UICorner") adjustmentCorner.CornerRadius = UDim.new(0, 12) adjustmentCorner.Parent = adjustmentGui -- Título do ajuste local adjustTitle = Instance.new("TextLabel") adjustTitle.Size = UDim2.new(1, 0, 0, 30) adjustTitle.BackgroundTransparency = 1 adjustTitle.Text = "AJUSTAR POSIÇÃO" adjustTitle.TextColor3 = Color3.fromRGB(255, 255, 255) adjustTitle.Font = Enum.Font.GothamBold adjustTitle.TextSize = 16 adjustTitle.Parent = adjustmentGui -- Display da posição no ajuste local adjustPositionLabel = Instance.new("TextLabel") adjustPositionLabel.Size = UDim2.new(1, 0, 0, 25) adjustPositionLabel.Position = UDim2.new(0, 0, 0, 30) adjustPositionLabel.BackgroundTransparency = 1 adjustPositionLabel.Text = "Y: " .. antiVoidY adjustPositionLabel.TextColor3 = Color3.fromRGB(255, 255, 255) adjustPositionLabel.Font = Enum.Font.GothamBold adjustPositionLabel.TextSize = 14 adjustPositionLabel.Parent = adjustmentGui -- Botão para cima local upBtn = Instance.new("TextButton") upBtn.Size = UDim2.new(0, 80, 0, 60) upBtn.Position = UDim2.new(0.5, -40, 0, 60) upBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 255) upBtn.BorderSizePixel = 0 upBtn.Text = "⬆️\nSUBIR" upBtn.TextColor3 = Color3.fromRGB(255, 255, 255) upBtn.Font = Enum.Font.GothamBold upBtn.TextSize = 12 upBtn.TextWrapped = true upBtn.Parent = adjustmentGui local upCorner = Instance.new("UICorner") upCorner.CornerRadius = UDim.new(0, 8) upCorner.Parent = upBtn -- Botão para baixo local downBtn = Instance.new("TextButton") downBtn.Size = UDim2.new(0, 80, 0, 60) downBtn.Position = UDim2.new(0.5, -40, 0, 130) downBtn.BackgroundColor3 = Color3.fromRGB(255, 150, 0) downBtn.BorderSizePixel = 0 downBtn.Text = "⬇️\nDESCER" downBtn.TextColor3 = Color3.fromRGB(255, 255, 255) downBtn.Font = Enum.Font.GothamBold downBtn.TextSize = 12 downBtn.TextWrapped = true downBtn.Parent = adjustmentGui local downCorner = Instance.new("UICorner") downCorner.CornerRadius = UDim.new(0, 8) downCorner.Parent = downBtn -- Botão pronto local readyBtn = Instance.new("TextButton") readyBtn.Size = UDim2.new(0, 120, 0, 35) readyBtn.Position = UDim2.new(0.5, -60, 1, -45) readyBtn.BackgroundColor3 = Color3.fromRGB(0, 200, 0) readyBtn.BorderSizePixel = 0 readyBtn.Text = "✅ PRONTO" readyBtn.TextColor3 = Color3.fromRGB(255, 255, 255) readyBtn.Font = Enum.Font.GothamBold readyBtn.TextSize = 14 readyBtn.Parent = adjustmentGui local readyCorner = Instance.new("UICorner") readyCorner.CornerRadius = UDim.new(0, 8) readyCorner.Parent = readyBtn -- Variáveis para controle de ajuste local adjusting = false local adjustConnection -- Função para atualizar o AntiVoid local function updateAntiVoid() if antiVoidPart then antiVoidPart:Destroy() antiVoidPart = nil end if antiVoidEnabled then antiVoidPart = Instance.new("Part") antiVoidPart.Name = "AntiVoidFloor" antiVoidPart.Size = Vector3.new(10000, 2, 10000) antiVoidPart.Position = Vector3.new(0, antiVoidY, 0) antiVoidPart.Anchored = true antiVoidPart.CanCollide = true antiVoidPart.Transparency = 0.7 antiVoidPart.BrickColor = BrickColor.new("Bright green") antiVoidPart.Material = Enum.Material.Neon antiVoidPart.Parent = workspace end -- Atualizar labels positionLabel.Text = "Posição Y: " .. math.floor(antiVoidY) adjustPositionLabel.Text = "Y: " .. math.floor(antiVoidY) end -- Função para ajustar posição continuamente local function startAdjusting(direction) adjusting = true local speed = 5 -- Velocidade de ajuste adjustConnection = RunService.Heartbeat:Connect(function() if adjusting then antiVoidY = antiVoidY + (direction * speed) updateAntiVoid() else adjustConnection:Disconnect() end end) end -- Função para parar ajuste local function stopAdjusting() adjusting = false if adjustConnection then adjustConnection:Disconnect() adjustConnection = nil end end -- Toggle AntiVoid antiVoidBtn.MouseButton1Click:Connect(function() antiVoidEnabled = not antiVoidEnabled if antiVoidEnabled then antiVoidBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) antiVoidBtn.Text = "🛡️ ANTI-VOID: ✅ ON" else antiVoidBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 60) antiVoidBtn.Text = "🛡️ ANTI-VOID: ❌ OFF" end updateAntiVoid() end) -- Abrir menu de ajuste adjustBtn.MouseButton1Click:Connect(function() adjustmentGui.Visible = true mainFrame.Visible = false end) -- Ajustar posição para cima (pressionar) upBtn.MouseButton1Down:Connect(function() startAdjusting(1) -- +1 para subir end) upBtn.MouseButton1Up:Connect(function() stopAdjusting() end) upBtn.MouseLeave:Connect(function() stopAdjusting() end) -- Ajustar posição para baixo (pressionar) downBtn.MouseButton1Down:Connect(function() startAdjusting(-1) -- -1 para descer end) downBtn.MouseButton1Up:Connect(function() stopAdjusting() end) downBtn.MouseLeave:Connect(function() stopAdjusting() end) -- Salvar posição e fechar readyBtn.MouseButton1Click:Connect(function() adjustmentGui.Visible = false mainFrame.Visible = true stopAdjusting() -- Garantir que para de ajustar end) -- Fechar ajuste se clicar fora (opcional) adjustmentGui.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then -- Verificar se clicou no fundo (não nos botões) local absolutePosition = adjustmentGui.AbsolutePosition local absoluteSize = adjustmentGui.AbsoluteSize local clickPos = input.Position local relativePos = clickPos - absolutePosition -- Se clicou no fundo (fora dos botões), fecha if relativePos.X < 0 or relativePos.X > absoluteSize.X or relativePos.Y < 0 or relativePos.Y > absoluteSize.Y then adjustmentGui.Visible = false mainFrame.Visible = true stopAdjusting() end end end) -- === SISTEMA DE DRAG === local dragging = false local dragInput, dragStart, startPos local function updateInput(input) local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end -- Drag para o hub titleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) titleBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) titleBar.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then updateInput(input) end end) -- Drag para a bola local ballDragging = false local ballDragInput, ballDragStart, ballStartPos local function updateBallInput(input) local delta = input.Position - ballDragStart floatingBall.Position = UDim2.new( ballStartPos.X.Scale, ballStartPos.X.Offset + delta.X, ballStartPos.Y.Scale, ballStartPos.Y.Offset + delta.Y ) end floatingBall.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then ballDragging = true ballDragStart = input.Position ballStartPos = floatingBall.Position end end) floatingBall.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then ballDragInput = input end end) floatingBall.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then ballDragging = false end end) -- Toggle do Hub floatingBall.MouseButton1Click:Connect(function() mainFrame.Visible = not mainFrame.Visible if mainFrame.Visible then floatingBall.Text = "🔒" else floatingBall.Text = "🚀" end end) -- Fechar hub closeBtn.MouseButton1Click:Connect(function() mainFrame.Visible = false floatingBall.Text = "🚀" stopAdjusting() -- Parar ajuste se estiver ativo end) -- Animação da bola spawn(function() while true do local goal = {Position = floatingBall.Position + UDim2.new(0, 0, 0, -5)} local tween = TweenService:Create(floatingBall, TweenInfo.new(1.2, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), goal) tween:Play() wait(1.2) goal = {Position = floatingBall.Position + UDim2.new(0, 0, 0, 5)} tween = TweenService:Create(floatingBall, TweenInfo.new(1.2, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), goal) tween:Play() wait(1.2) end end) -- Criar AntiVoid inicial se necessário updateAntiVoid() print("🛡️ DRAGON HUB - ANTI-VOID carregado!") print("🚀 Toque no foguete para abrir") print("📐 Escolher Posição: Agora funciona!") print("🛡️ Anti-Void: Proteção contra queda infinita")