
Key RequiredUniversal

-- 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")No comments yet for this script.



