-- ============================================ -- 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("==========================================")