DRAGON HUB Anti Void
Key RequiredUniversal

DRAGON HUB Anti Void

Universal ScriptTonicostaTonicosta 612 views 2.2K executesUpdated Dec 12, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•481 lines (14695 chars)
-- 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")

Features & Information

Antivoid- void-off.

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts