Universal
Key RequiredUniversal Patched

Universal

Universal ScriptBdodndhzdBdodndhzd 1K views 13 executesUpdated Jan 29, 2026
Unrated
00
Lua Script•566 lines (19277 chars)
-- ============================================
-- HUB AIMBOT COMPLETO - Para Jogos de Tiro
-- Funcionalidades: Aimbot + ESP + Invisibilidade
-- ============================================

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local TweenService = game:GetService("TweenService")

-- ========== CONFIGURAÇÕES GLOBAIS ==========
local UserSettings = {
    Aimbot = {
        Enabled = false,
        Key = Enum.KeyCode.Q,
        Smoothing = 0.3,
        FieldOfView = 120,
        TargetPart = "Head"
    },
    ESP = {
        Enabled = false,
        ShowName = true,
        ShowDistance = true,
        ShowHealth = true,
        BoxColor = Color3.fromRGB(255, 50, 50)
    },
    Invisibility = {
        Enabled = false,
        Transparency = 0.8,
        Effect = "Ghost",
        HideNameTag = true
    }
}

-- ========== VARIÁVEIS DO SISTEMA ==========
local espObjects = {}
local targetPlayer = nil
local aimbotConnection = nil
local espConnection = nil
local invisibilityConnection = nil
local originalProperties = {}
local hubMinimized = false
local hubOriginalSize = UDim2.new(0, 320, 0, 520)
local hubMinimizedSize = UDim2.new(0, 60, 0, 60)

-- ========== SISTEMA ESP (VISION) ==========
local function createESP(player)
    if espObjects[player] then return end
    
    local character = player.Character
    if not character then return end
    
    local box = Drawing.new("Square")
    box.Visible = false
    box.Color = UserSettings.ESP.BoxColor
    box.Thickness = 2
    box.Filled = false
    
    local nameLabel = Drawing.new("Text")
    nameLabel.Visible = false
    nameLabel.Color = Color3.fromRGB(255, 255, 255)
    nameLabel.Size = 14
    nameLabel.Center = true
    nameLabel.Outline = true
    
    local infoLabel = Drawing.new("Text")
    infoLabel.Visible = false
    infoLabel.Color = Color3.fromRGB(200, 200, 200)
    infoLabel.Size = 12
    infoLabel.Center = true
    infoLabel.Outline = true
    
    espObjects[player] = {box = box, name = nameLabel, info = infoLabel}
end

local function updateESP()
    for player, drawings in pairs(espObjects) do
        if player == LocalPlayer or not player.Character then
            drawings.box.Visible = false
            drawings.name.Visible = false
            drawings.info.Visible = false
            goto continue
        end
        
        local character = player.Character
        local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
        local humanoid = character:FindFirstChild("Humanoid")
        
        if humanoidRootPart then
            local position, onScreen = Camera:WorldToViewportPoint(humanoidRootPart.Position)
            
            if onScreen then
                local boxSize = Vector2.new(1000 / position.Z, 1500 / position.Z)
                
                drawings.box.Position = Vector2.new(position.X, position.Y) - boxSize/2
                drawings.box.Size = boxSize
                drawings.box.Visible = UserSettings.ESP.Enabled
                
                drawings.name.Position = Vector2.new(position.X, position.Y - boxSize.Y/2 - 20)
                drawings.name.Text = player.Name
                drawings.name.Visible = UserSettings.ESP.Enabled and UserSettings.ESP.ShowName
                
                local distance = (LocalPlayer.Character.HumanoidRootPart.Position - humanoidRootPart.Position).Magnitude
                local infoText = ""
                if UserSettings.ESP.ShowDistance then
                    infoText = string.format("%.1f studs", distance)
                end
                if UserSettings.ESP.ShowHealth and humanoid then
                    infoText = infoText .. string.format("\nHP: %d/%d", humanoid.Health, humanoid.MaxHealth)
                end
                
                drawings.info.Position = Vector2.new(position.X, position.Y + boxSize.Y/2 + 10)
                drawings.info.Text = infoText
                drawings.info.Visible = UserSettings.ESP.Enabled and (UserSettings.ESP.ShowDistance or UserSettings.ESP.ShowHealth)
            else
                drawings.box.Visible = false
                drawings.name.Visible = false
                drawings.info.Visible = false
            end
        end
        ::continue::
    end
end

-- ========== SISTEMA AIMBOT ==========
local function findTarget()
    local closestDistance = UserSettings.Aimbot.FieldOfView
    local closestPlayer = nil
    local mousePos = UserInputService:GetMouseLocation()
    
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            local character = player.Character
            local targetPart = character:FindFirstChild(UserSettings.Aimbot.TargetPart)
            
            if targetPart then
                local position, onScreen = Camera:WorldToViewportPoint(targetPart.Position)
                
                if onScreen then
                    local distance = (Vector2.new(mousePos.X, mousePos.Y) - Vector2.new(position.X, position.Y)).Magnitude
                    
                    if distance < closestDistance then
                        closestDistance = distance
                        closestPlayer = player
                    end
                end
            end
        end
    end
    
    return closestPlayer
end

local function aimAtTarget(target)
    if not target or not target.Character then return end
    
    local character = target.Character
    local targetPart = character:FindFirstChild(UserSettings.Aimbot.TargetPart)
    if not targetPart then return end
    
    local camera = workspace.CurrentCamera
    local currentCFrame = camera.CFrame
    
    local targetPosition = targetPart.Position
    local newCFrame = CFrame.new(currentCFrame.Position, targetPosition)
    
    camera.CFrame = currentCFrame:Lerp(newCFrame, UserSettings.Aimbot.Smoothing)
end

-- ========== SISTEMA INVISIBILIDADE ==========
local function saveOriginalProperties(character)
    originalProperties = {}
    
    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            originalProperties[part] = {
                Transparency = part.Transparency,
                Material = part.Material,
                Color = part.Color,
                CanCollide = part.CanCollide
            }
        end
    end
end

local function applyInvisibilityEffect(character)
    if not character then return end
    
    local effect = UserSettings.Invisibility.Effect
    
    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            if effect == "Ghost" then
                part.Transparency = UserSettings.Invisibility.Transparency
                part.Material = Enum.Material.Glass
                part.CanCollide = false
            elseif effect == "Chameleon" then
                local ray = Ray.new(part.Position, Vector3.new(0, -10, 0))
                local hit = workspace:FindPartOnRay(ray, character)
                
                if hit then
                    part.Color = hit.Color
                end
                part.Transparency = 0.4
            elseif effect == "Shadow" then
                part.Transparency = 0.6
                part.Color = Color3.new(0.1, 0.1, 0.1)
                part.Material = Enum.Material.Slate
            end
            
            if UserSettings.Invisibility.HideNameTag then
                local humanoid = character:FindFirstChild("Humanoid")
                if humanoid then
                    humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
                end
            end
        end
    end
end

local function restoreOriginalProperties(character)
    if not character then return end
    
    for part, properties in pairs(originalProperties) do
        if part and part.Parent then
            part.Transparency = properties.Transparency or 0
            part.Material = properties.Material or Enum.Material.Plastic
            part.Color = properties.Color or Color3.new(1, 1, 1)
            part.CanCollide = properties.CanCollide or true
        end
    end
    
    local humanoid = character:FindFirstChild("Humanoid")
    if humanoid then
        humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
    end
    
    originalProperties = {}
end

local function toggleInvisibility()
    local character = LocalPlayer.Character
    
    if not character then
        return
    end
    
    if UserSettings.Invisibility.Enabled then
        saveOriginalProperties(character)
        applyInvisibilityEffect(character)
        
        invisibilityConnection = RunService.Heartbeat:Connect(function()
            if not UserSettings.Invisibility.Enabled or not character then
                if invisibilityConnection then
                    invisibilityConnection:Disconnect()
                end
                return
            end
            applyInvisibilityEffect(character)
        end)
    else
        if invisibilityConnection then
            invisibilityConnection:Disconnect()
        end
        restoreOriginalProperties(character)
    end
end

-- ========== INTERFACE DO HUB ==========
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
screenGui.Name = "ShooterAimbotHub"

local mainFrame = Instance.new("Frame")
mainFrame.Size = hubOriginalSize
mainFrame.Position = UDim2.new(0.5, -160, 0.5, -260)
mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 25)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui

-- Título
local title = Instance.new("TextLabel")
title.Text = "🎯 HUB SHOTER PRO"
title.Size = UDim2.new(1, 0, 0, 40)
title.TextColor3 = Color3.fromRGB(255, 50, 50)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 20
title.BackgroundTransparency = 1
title.Parent = mainFrame

-- Botão minimizar
local minimizeButton = Instance.new("TextButton")
minimizeButton.Size = UDim2.new(0, 30, 0, 30)
minimizeButton.Position = UDim2.new(1, -35, 0, 5)
minimizeButton.Text = "—"
minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeButton.Font = Enum.Font.SourceSansBold
minimizeButton.TextSize = 20
minimizeButton.BackgroundColor3 = Color3.fromRGB(60, 60, 100)
minimizeButton.BorderSizePixel = 0
minimizeButton.ZIndex = 10
minimizeButton.Parent = mainFrame

-- Conteúdo principal
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, -20, 1, -100)
contentFrame.Position = UDim2.new(0, 10, 0, 50)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = mainFrame

-- Função para criar toggles
local function createToggle(name, yPos, settingCategory, color)
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(1, 0, 0, 30)
    frame.Position = UDim2.new(0, 0, 0, yPos)
    frame.BackgroundTransparency = 1
    frame.Parent = contentFrame
    
    local label = Instance.new("TextLabel")
    label.Text = name
    label.Size = UDim2.new(0.7, 0, 1, 0)
    label.TextColor3 = Color3.fromRGB(220, 220, 220)
    label.Font = Enum.Font.SourceSans
    label.TextSize = 14
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.BackgroundTransparency = 1
    label.Parent = frame
    
    local toggle = Instance.new("TextButton")
    toggle.Size = UDim2.new(0, 50, 0, 25)
    toggle.Position = UDim2.new(1, -55, 0.5, -12.5)
    toggle.Text = "OFF"
    toggle.TextColor3 = Color3.fromRGB(255, 255, 255)
    toggle.Font = Enum.Font.SourceSans
    toggle.TextSize = 12
    toggle.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
    toggle.Parent = frame
    
    toggle.MouseButton1Click:Connect(function()
        local currentState = UserSettings[settingCategory].Enabled
        UserSettings[settingCategory].Enabled = not currentState
        toggle.Text = currentState and "OFF" or "ON"
        toggle.BackgroundColor3 = currentState and Color3.fromRGB(80, 80, 80) or color
        
        if settingCategory == "ESP" then
            if UserSettings.ESP.Enabled then
                espConnection = RunService.RenderStepped:Connect(updateESP)
                for _, player in pairs(Players:GetPlayers()) do
                    createESP(player)
                end
            elseif espConnection then
                espConnection:Disconnect()
                for _, drawings in pairs(espObjects) do
                    drawings.box:Remove()
                    drawings.name:Remove()
                    drawings.info:Remove()
                end
                espObjects = {}
            end
        end
        
        if settingCategory == "Aimbot" then
            if UserSettings.Aimbot.Enabled then
                aimbotConnection = RunService.RenderStepped:Connect(function()
                    if UserInputService:IsKeyDown(UserSettings.Aimbot.Key) then
                        targetPlayer = findTarget()
                        if targetPlayer then
                            aimAtTarget(targetPlayer)
                        end
                    end
                end)
            elseif aimbotConnection then
                aimbotConnection:Disconnect()
            end
        end
        
        if settingCategory == "Invisibility" then
            toggleInvisibility()
        end
    end)
    
    return frame
end

-- Criar toggles
createToggle("Aimbot", 0, "Aimbot", Color3.fromRGB(50, 180, 50))
createToggle("ESP Vision", 40, "ESP", Color3.fromRGB(180, 50, 50))
createToggle("Invisibilidade", 80, "Invisibility", Color3.fromRGB(100, 50, 180))

-- Configurações de Aimbot
local aimSettingsFrame = Instance.new("Frame")
aimSettingsFrame.Size = UDim2.new(1, 0, 0, 60)
aimSettingsFrame.Position = UDim2.new(0, 0, 0, 130)
aimSettingsFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 35)
aimSettingsFrame.BackgroundTransparency = 0.3
aimSettingsFrame.Parent = contentFrame

local targetLabel = Instance.new("TextLabel")
targetLabel.Text = "Alvo: Head"
targetLabel.Size = UDim2.new(0.5, 0, 0, 25)
targetLabel.Position = UDim2.new(0, 5, 0, 5)
targetLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
targetLabel.Font = Enum.Font.SourceSans
targetLabel.TextSize = 12
targetLabel.BackgroundTransparency = 1
targetLabel.Parent = aimSettingsFrame

local parts = {"Head", "HumanoidRootPart", "Torso"}
local partIndex = 1
local targetBtn = Instance.new("TextButton")
targetBtn.Text = "Mudar"
targetBtn.Size = UDim2.new(0.4, 0, 0, 25)
targetBtn.Position = UDim2.new(0.55, 0, 0, 5)
targetBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
targetBtn.Font = Enum.Font.SourceSans
targetBtn.TextSize = 12
targetBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
targetBtn.Parent = aimSettingsFrame

targetBtn.MouseButton1Click:Connect(function()
    partIndex = (partIndex % #parts) + 1
    UserSettings.Aimbot.TargetPart = parts[partIndex]
    targetLabel.Text = "Alvo: " .. parts[partIndex]
end)

-- Configurações de ESP
local espSettingsFrame = Instance.new("Frame")
espSettingsFrame.Size = UDim2.new(1, 0, 0, 60)
espSettingsFrame.Position = UDim2.new(0, 0, 0, 200)
espSettingsFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 35)
espSettingsFrame.BackgroundTransparency = 0.3
espSettingsFrame.Parent = contentFrame

-- Status
local statusFrame = Instance.new("Frame")
statusFrame.Size = UDim2.new(1, 0, 0, 80)
statusFrame.Position = UDim2.new(0, 0, 1, -85)
statusFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 20)
statusFrame.BackgroundTransparency = 0.5
statusFrame.Parent = contentFrame

local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, -10, 1, -10)
statusLabel.Position = UDim2.new(0, 5, 0, 5)
statusLabel.Text = "Status: Iniciando..."
statusLabel.TextColor3 = Color3.fromRGB(180, 230, 255)
statusLabel.Font = Enum.Font.SourceSans
statusLabel.TextSize = 11
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.TextYAlignment = Enum.TextYAlignment.Top
statusLabel.BackgroundTransparency = 1
statusLabel.Parent = statusFrame

-- ========== SISTEMA DE MINIMIZAÇÃO ==========
local function toggleHubContent(visible)
    contentFrame.Visible = visible
    minimizeButton.Text = visible and "—" or "+"
    
    if visible then
        title.Text = "🎯 HUB SHOTER PRO"
        title.TextSize = 20
    else
        title.Text = "🎯"
        title.TextSize = 30
    end
end

local function toggleHubMinimization()
    hubMinimized = not hubMinimized
    
    if hubMinimized then
        mainFrame.Size = hubMinimizedSize
        mainFrame.BackgroundTransparency = 0.7
        toggleHubContent(false)
    else
        mainFrame.Size = hubOriginalSize
        mainFrame.BackgroundTransparency = 0
        toggleHubContent(true)
    end
end

minimizeButton.MouseButton1Click:Connect(toggleHubMinimization)

UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if not gameProcessed and input.KeyCode == Enum.KeyCode.M then
        toggleHubMinimization()
    elseif not gameProcessed and input.KeyCode == Enum.KeyCode.I then
        UserSettings.Invisibility.Enabled = not UserSettings.Invisibility.Enabled
        toggleInvisibility()
    end
end)

-- Atualizar status
spawn(function()
    while true do
        local targetCount = 0
        for _, player in pairs(Players:GetPlayers()) do
            if player ~= LocalPlayer and player.Character then
                targetCount = targetCount + 1
            end
        end
        
        local statusText = string.format([[
Status: %s
Jogadores: %d
Aimbot: %s (Tecla: %s)
ESP: %s
Invis: %s
Hub: %s
]],
            "ATIVO",
            targetCount,
            UserSettings.Aimbot.Enabled and "ON" or "OFF",
            UserSettings.Aimbot.Key.Name,
            UserSettings.ESP.Enabled and "ON" : "OFF",
            UserSettings.Invisibility.Enabled and "ON" : "OFF",
            hubMinimized and "MINI" : "NORMAL"
        )
        
        statusLabel.Text = statusText
        wait(1)
    end
end)

-- Inicializar
Players.PlayerAdded:Connect(function(player)
    createESP(player)
end)

Players.PlayerRemoving:Connect(function(player)
    if espObjects[player] then
        espObjects[player].box:Remove()
        espObjects[player].name:Remove()
        espObjects[player].info:Remove()
        espObjects[player] = nil
    end
end)

for _, player in pairs(Players:GetPlayers()) do
    createESP(player)
end

print("==========================================")
print("🎯 HUB SHOTER PRO CARREGADO!")
print("==========================================")
print("FUNCIONALIDADES:")
print("• Aimbot (Tecla Q) com 3 alvos diferentes")
print("• ESP Vision com nome, distância e vida")
print("• Invisibilidade com 3 efeitos")
print("• Sistema de minimização")
print("==========================================")
print("ATALHOS:")
print("• M = Minimizar/Restaurar Hub")
print("• I = Ativar/Desativar Invisibilidade")
print("• Q = Segurar para usar Aimbot")
print("==========================================")
print("TESTE EM JOGOS COMO:")
print("• Arsenal")
print("• Phantom Forces")
print("• Bad Business")
print("• Counter Blox")
print("==========================================")

Features & Information

Aimbot e Esp mais invisível Vc Se Tornar Em Invisível O Hub Adapta Seu Personagem Para Fica o mais transparente possível, e ele muda a cor do seu personagem aonde não deu para ficar transparente para cor do ambiente
#Aimbot#Esp#Invisvel

Community Comments (13)

BdodndhzdBdodndhzdJan 29, 2026

Copie o script todo para funciona, até as partes que não fazem parte do script

BdodndhzdBdodndhzdJan 29, 2026

Qualquer dúvida é só fala nos comentários

BdodndhzdBdodndhzdJan 29, 2026

Posso cria scripts para alguns jogos que vcs escolherem

BdodndhzdBdodndhzdJan 29, 2026

Galera Perdão

BdodndhzdBdodndhzdJan 29, 2026

Testei O Script E Ele Não Executa

BdodndhzdBdodndhzdJan 29, 2026

Mais Consertei E Vou Atualizar Ele

BdodndhzdBdodndhzdJan 29, 2026

Atualizando

BdodndhzdBdodndhzdJan 29, 2026

OK

BdodndhzdBdodndhzdJan 29, 2026

@vincent009 I said the script wasn't working anymore, but now I've updated it and it's working. And if you want, I can create scripts of your choosing.

BdodndhzdBdodndhzdJan 29, 2026

@vincent009 What script for a game?

BdodndhzdBdodndhzdJan 29, 2026

@vincent009 ok

Replying to @Bdodndhzd
BdodndhzdBdodndhzdJan 29, 2026

@vincent009 Can we partner up?

BdodndhzdBdodndhzdJan 29, 2026

@vincent009 We're going to spread the word, but forget about giving up on the idea, plus we're from different countries.

More Scripts for Universal Scripts