-- Aimbot + ESP Professional - Versão Corrigida -- Configurações local UIS = game:GetService("UserInputService") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- Variáveis de controle local AimEnabled = false local ESPEnabled = false local FOV = 100 local Smoothness = 0.5 local AimPart = "Head" local TeamCheck = true local WallCheck = true -- Tabela para armazenar ESPs local ESPObjects = {} -- Criar FOV Circle local FOVCircle = Drawing.new("Circle") FOVCircle.Thickness = 2 FOVCircle.NumSides = 50 FOVCircle.Radius = FOV FOVCircle.Filled = false FOVCircle.Color = Color3.fromRGB(255, 255, 255) FOVCircle.Transparency = 0.5 FOVCircle.Visible = false -- Criar interface gráfica local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "AimbotESPGUI" ScreenGui.Parent = game.CoreGui ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.ResetOnSpawn = false -- Frame principal local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 320, 0, 380) MainFrame.Position = UDim2.new(0.5, -160, 0.5, -190) MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui -- Arredondamento local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0, 8) Corner.Parent = MainFrame -- Título local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 45) Title.Position = UDim2.new(0, 0, 0, 0) Title.BackgroundColor3 = Color3.fromRGB(45, 45, 55) Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Text = "🎯 Aimbot + ESP Professional" Title.Font = Enum.Font.GothamBold Title.TextSize = 18 Title.Parent = MainFrame local TitleCorner = Instance.new("UICorner") TitleCorner.CornerRadius = UDim.new(0, 8) TitleCorner.Parent = Title -- Botão de ativar Aimbot local ToggleButton = Instance.new("TextButton") ToggleButton.Size = UDim2.new(0.85, 0, 0, 40) ToggleButton.Position = UDim2.new(0.075, 0, 0.14, 0) ToggleButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleButton.Text = "AIMBOT: OFF" ToggleButton.Font = Enum.Font.GothamSemibold ToggleButton.TextSize = 16 ToggleButton.Parent = MainFrame local ToggleCorner = Instance.new("UICorner") ToggleCorner.CornerRadius = UDim.new(0, 6) ToggleCorner.Parent = ToggleButton -- Botão de ativar ESP local ESPButton = Instance.new("TextButton") ESPButton.Size = UDim2.new(0.85, 0, 0, 40) ESPButton.Position = UDim2.new(0.075, 0, 0.26, 0) ESPButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) ESPButton.TextColor3 = Color3.fromRGB(255, 255, 255) ESPButton.Text = "ESP: OFF" ESPButton.Font = Enum.Font.GothamSemibold ESPButton.TextSize = 16 ESPButton.Parent = MainFrame local ESPCorner = Instance.new("UICorner") ESPCorner.CornerRadius = UDim.new(0, 6) ESPCorner.Parent = ESPButton -- Botão TeamCheck local TeamCheckButton = Instance.new("TextButton") TeamCheckButton.Size = UDim2.new(0.4, 0, 0, 35) TeamCheckButton.Position = UDim2.new(0.075, 0, 0.38, 0) TeamCheckButton.BackgroundColor3 = Color3.fromRGB(50, 200, 50) TeamCheckButton.TextColor3 = Color3.fromRGB(255, 255, 255) TeamCheckButton.Text = "✓ Team Check" TeamCheckButton.Font = Enum.Font.GothamSemibold TeamCheckButton.TextSize = 12 TeamCheckButton.Parent = MainFrame local TeamCorner = Instance.new("UICorner") TeamCorner.CornerRadius = UDim.new(0, 6) TeamCorner.Parent = TeamCheckButton -- Botão WallCheck local WallCheckButton = Instance.new("TextButton") WallCheckButton.Size = UDim2.new(0.4, 0, 0, 35) WallCheckButton.Position = UDim2.new(0.525, 0, 0.38, 0) WallCheckButton.BackgroundColor3 = Color3.fromRGB(50, 200, 50) WallCheckButton.TextColor3 = Color3.fromRGB(255, 255, 255) WallCheckButton.Text = "✓ Wall Check" WallCheckButton.Font = Enum.Font.GothamSemibold WallCheckButton.TextSize = 12 WallCheckButton.Parent = MainFrame local WallCorner = Instance.new("UICorner") WallCorner.CornerRadius = UDim.new(0, 6) WallCorner.Parent = WallCheckButton -- Slider de FOV local FOVSliderLabel = Instance.new("TextLabel") FOVSliderLabel.Size = UDim2.new(1, 0, 0, 20) FOVSliderLabel.Position = UDim2.new(0, 0, 0.52, 0) FOVSliderLabel.BackgroundTransparency = 1 FOVSliderLabel.TextColor3 = Color3.fromRGB(200, 200, 200) FOVSliderLabel.Text = "FOV: " .. FOV FOVSliderLabel.Font = Enum.Font.Gotham FOVSliderLabel.TextSize = 14 FOVSliderLabel.Parent = MainFrame local FOVSlider = Instance.new("TextButton") FOVSlider.Size = UDim2.new(0.85, 0, 0, 20) FOVSlider.Position = UDim2.new(0.075, 0, 0.58, 0) FOVSlider.BackgroundColor3 = Color3.fromRGB(60, 60, 70) FOVSlider.Text = "" FOVSlider.Parent = MainFrame local FOVSliderCorner = Instance.new("UICorner") FOVSliderCorner.CornerRadius = UDim.new(0, 10) FOVSliderCorner.Parent = FOVSlider local FOVSliderFill = Instance.new("Frame") FOVSliderFill.Size = UDim2.new((FOV - 50) / 150, 0, 1, 0) FOVSliderFill.BackgroundColor3 = Color3.fromRGB(80, 120, 200) FOVSliderFill.BorderSizePixel = 0 FOVSliderFill.Parent = FOVSlider local FOVFillCorner = Instance.new("UICorner") FOVFillCorner.CornerRadius = UDim.new(0, 10) FOVFillCorner.Parent = FOVSliderFill -- Slider de Suavidade local SmoothSliderLabel = Instance.new("TextLabel") SmoothSliderLabel.Size = UDim2.new(1, 0, 0, 20) SmoothSliderLabel.Position = UDim2.new(0, 0, 0.68, 0) SmoothSliderLabel.BackgroundTransparency = 1 SmoothSliderLabel.TextColor3 = Color3.fromRGB(200, 200, 200) SmoothSliderLabel.Text = "Smoothness: " .. string.format("%.1f", Smoothness) SmoothSliderLabel.Font = Enum.Font.Gotham SmoothSliderLabel.TextSize = 14 SmoothSliderLabel.Parent = MainFrame local SmoothSlider = Instance.new("TextButton") SmoothSlider.Size = UDim2.new(0.85, 0, 0, 20) SmoothSlider.Position = UDim2.new(0.075, 0, 0.74, 0) SmoothSlider.BackgroundColor3 = Color3.fromRGB(60, 60, 70) SmoothSlider.Text = "" SmoothSlider.Parent = MainFrame local SmoothSliderCorner = Instance.new("UICorner") SmoothSliderCorner.CornerRadius = UDim.new(0, 10) SmoothSliderCorner.Parent = SmoothSlider local SmoothSliderFill = Instance.new("Frame") SmoothSliderFill.Size = UDim2.new((Smoothness - 0.1) / 0.9, 0, 1, 0) SmoothSliderFill.BackgroundColor3 = Color3.fromRGB(80, 120, 200) SmoothSliderFill.BorderSizePixel = 0 SmoothSliderFill.Parent = SmoothSlider local SmoothFillCorner = Instance.new("UICorner") SmoothFillCorner.CornerRadius = UDim.new(0, 10) SmoothFillCorner.Parent = SmoothSliderFill -- Label de informações local InfoLabel = Instance.new("TextLabel") InfoLabel.Size = UDim2.new(1, 0, 0, 50) InfoLabel.Position = UDim2.new(0, 0, 0.84, 0) InfoLabel.BackgroundTransparency = 1 InfoLabel.TextColor3 = Color3.fromRGB(180, 180, 180) InfoLabel.Text = "Hotkeys:\nF6 - Toggle Aimbot | F7 - Toggle ESP" InfoLabel.Font = Enum.Font.Gotham InfoLabel.TextSize = 12 InfoLabel.TextYAlignment = Enum.TextYAlignment.Top InfoLabel.Parent = MainFrame -- Função para verificar se está na mesma equipe local function IsOnSameTeam(Player) if not TeamCheck then return false end if LocalPlayer.Team and Player.Team then return LocalPlayer.Team == Player.Team end return false end -- Função para verificar parede (CORRIGIDA) local function IsWallBetween(TargetPart) if not WallCheck then return false end local Origin = Camera.CFrame.Position local Direction = (TargetPart.Position - Origin).Unit * 500 local RaycastParams = RaycastParams.new() RaycastParams.FilterType = Enum.RaycastFilterType.Blacklist RaycastParams.FilterDescendantsInstances = {LocalPlayer.Character, TargetPart.Parent} RaycastParams.IgnoreWater = true local Result = workspace:Raycast(Origin, Direction, RaycastParams) if Result then local Distance = (Result.Position - Origin).Magnitude local TargetDistance = (TargetPart.Position - Origin).Magnitude if Distance < TargetDistance - 1 then return true end end return false end -- Função para encontrar o jogador mais próximo (CORRIGIDA) local function GetClosestPlayerToCenter() local ViewportSize = Camera.ViewportSize local Center = Vector2.new(ViewportSize.X / 2, ViewportSize.Y / 2) local ClosestPlayer = nil local ShortestDistance = FOV for _, Player in pairs(Players:GetPlayers()) do if Player ~= LocalPlayer and Player.Character then local Character = Player.Character local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart") local Humanoid = Character:FindFirstChild("Humanoid") local Part = Character:FindFirstChild(AimPart) if Part and HumanoidRootPart and Humanoid and Humanoid.Health > 0 then -- Verificar equipe if IsOnSameTeam(Player) then continue end -- Verificar parede if IsWallBetween(Part) then continue end local ScreenPos, OnScreen = Camera:WorldToViewportPoint(Part.Position) if OnScreen then local Distance = (Vector2.new(ScreenPos.X, ScreenPos.Y) - Center).Magnitude if Distance < ShortestDistance then ShortestDistance = Distance ClosestPlayer = Player end end end end end return ClosestPlayer end -- Função para mirar (CORRIGIDA) local function AimAtPlayer(Player) if not Player or not Player.Character then return end local Part = Player.Character:FindFirstChild(AimPart) if not Part then return end local TargetPosition = Part.Position local CameraPosition = Camera.CFrame.Position local TargetCFrame = CFrame.new(CameraPosition, TargetPosition) Camera.CFrame = Camera.CFrame:Lerp(TargetCFrame, Smoothness) end -- Função para criar ESP para um jogador local function CreateESP(Player) if ESPObjects[Player] then return end local ESPHolder = Instance.new("Folder") ESPHolder.Name = "ESP_" .. Player.Name ESPHolder.Parent = game.CoreGui local function UpdateESP() if not Player.Character or not Player.Character:FindFirstChild("HumanoidRootPart") then return end local Character = Player.Character local HumanoidRootPart = Character.HumanoidRootPart local Humanoid = Character:FindFirstChild("Humanoid") if not Humanoid or Humanoid.Health <= 0 then return end -- Criar BillboardGui se não existir if not ESPHolder:FindFirstChild("BillboardGui") then local BillboardGui = Instance.new("BillboardGui") BillboardGui.Name = "BillboardGui" BillboardGui.Adornee = HumanoidRootPart BillboardGui.Size = UDim2.new(0, 100, 0, 50) BillboardGui.StudsOffset = Vector3.new(0, 3, 0) BillboardGui.AlwaysOnTop = true BillboardGui.Parent = ESPHolder local NameLabel = Instance.new("TextLabel") NameLabel.Name = "NameLabel" NameLabel.Size = UDim2.new(1, 0, 0.5, 0) NameLabel.BackgroundTransparency = 1 NameLabel.TextColor3 = Color3.fromRGB(255, 255, 255) NameLabel.TextStrokeTransparency = 0.5 NameLabel.Font = Enum.Font.GothamBold NameLabel.TextSize = 14 NameLabel.Text = Player.Name NameLabel.Parent = BillboardGui local DistanceLabel = Instance.new("TextLabel") DistanceLabel.Name = "DistanceLabel" DistanceLabel.Size = UDim2.new(1, 0, 0.5, 0) DistanceLabel.Position = UDim2.new(0, 0, 0.5, 0) DistanceLabel.BackgroundTransparency = 1 DistanceLabel.TextColor3 = Color3.fromRGB(200, 200, 200) DistanceLabel.TextStrokeTransparency = 0.5 DistanceLabel.Font = Enum.Font.Gotham DistanceLabel.TextSize = 12 DistanceLabel.Parent = BillboardGui end -- Atualizar distância if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local Distance = (LocalPlayer.Character.HumanoidRootPart.Position - HumanoidRootPart.Position).Magnitude local DistanceLabel = ESPHolder.BillboardGui:FindFirstChild("DistanceLabel") if DistanceLabel then DistanceLabel.Text = string.format("%.0f studs", Distance) end end -- Criar Highlight se não existir if not Character:FindFirstChild("ESPHighlight") then local Highlight = Instance.new("Highlight") Highlight.Name = "ESPHighlight" Highlight.Adornee = Character Highlight.FillTransparency = 0.5 Highlight.OutlineTransparency = 0 -- Cor baseada na equipe if IsOnSameTeam(Player) then Highlight.FillColor = Color3.fromRGB(0, 255, 0) Highlight.OutlineColor = Color3.fromRGB(0, 200, 0) else Highlight.FillColor = Color3.fromRGB(255, 0, 0) Highlight.OutlineColor = Color3.fromRGB(200, 0, 0) end Highlight.Parent = Character end end ESPObjects[Player] = { Holder = ESPHolder, Update = UpdateESP } end -- Função para remover ESP local function RemoveESP(Player) if ESPObjects[Player] then if ESPObjects[Player].Holder then ESPObjects[Player].Holder:Destroy() end if Player.Character and Player.Character:FindFirstChild("ESPHighlight") then Player.Character.ESPHighlight:Destroy() end ESPObjects[Player] = nil end end -- Função para alternar Aimbot local function ToggleAimbot() AimEnabled = not AimEnabled if AimEnabled then ToggleButton.BackgroundColor3 = Color3.fromRGB(50, 200, 50) ToggleButton.Text = "AIMBOT: ON" FOVCircle.Visible = true else ToggleButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) ToggleButton.Text = "AIMBOT: OFF" FOVCircle.Visible = false end end -- Função para alternar ESP local function ToggleESP() ESPEnabled = not ESPEnabled if ESPEnabled then ESPButton.BackgroundColor3 = Color3.fromRGB(50, 200, 50) ESPButton.Text = "ESP: ON" -- Criar ESP para todos os jogadores for _, Player in pairs(Players:GetPlayers()) do if Player ~= LocalPlayer then CreateESP(Player) end end else ESPButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) ESPButton.Text = "ESP: OFF" -- Remover todos os ESPs for Player, _ in pairs(ESPObjects) do RemoveESP(Player) end end end -- Função para alternar TeamCheck local function ToggleTeamCheck() TeamCheck = not TeamCheck if TeamCheck then TeamCheckButton.BackgroundColor3 = Color3.fromRGB(50, 200, 50) TeamCheckButton.Text = "✓ Team Check" else TeamCheckButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) TeamCheckButton.Text = "✗ Team Check" end end -- Função para alternar WallCheck local function ToggleWallCheck() WallCheck = not WallCheck if WallCheck then WallCheckButton.BackgroundColor3 = Color3.fromRGB(50, 200, 50) WallCheckButton.Text = "✓ Wall Check" else WallCheckButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) WallCheckButton.Text = "✗ Wall Check" end end -- Conectar eventos dos botões ToggleButton.MouseButton1Click:Connect(ToggleAimbot) ESPButton.MouseButton1Click:Connect(ToggleESP) TeamCheckButton.MouseButton1Click:Connect(ToggleTeamCheck) WallCheckButton.MouseButton1Click:Connect(ToggleWallCheck) -- Slider de FOV local DraggingFOV = false FOVSlider.MouseButton1Down:Connect(function() DraggingFOV = true end) UIS.InputEnded:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then DraggingFOV = false DraggingSmooth = false end end) RunService.RenderStepped:Connect(function() if DraggingFOV then local MousePos = UIS:GetMouseLocation() local SliderPos = FOVSlider.AbsolutePosition local SliderSize = FOVSlider.AbsoluteSize local RelativeX = math.clamp((MousePos.X - SliderPos.X) / SliderSize.X, 0, 1) FOV = 50 + math.floor(RelativeX * 150) FOVSliderFill.Size = UDim2.new(RelativeX, 0, 1, 0) FOVSliderLabel.Text = "FOV: " .. FOV FOVCircle.Radius = FOV end end) -- Slider de Suavidade local DraggingSmooth = false SmoothSlider.MouseButton1Down:Connect(function() DraggingSmooth = true end) RunService.RenderStepped:Connect(function() if DraggingSmooth then local MousePos = UIS:GetMouseLocation() local SliderPos = SmoothSlider.AbsolutePosition local SliderSize = SmoothSlider.AbsoluteSize local RelativeX = math.clamp((MousePos.X - SliderPos.X) / SliderSize.X, 0, 1) Smoothness = 0.1 + (RelativeX * 0.9) SmoothSliderFill.Size = UDim2.new(RelativeX, 0, 1, 0) SmoothSliderLabel.Text = "Smoothness: " .. string.format("%.1f", Smoothness) end end) -- Atualizar FOV Circle RunService.RenderStepped:Connect(function() if FOVCircle then FOVCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) FOVCircle.Radius = FOV end end) -- Loop principal do Aimbot RunService.RenderStepped:Connect(function() if AimEnabled then local Target = GetClosestPlayerToCenter() if Target then AimAtPlayer(Target) end end end) -- Loop de atualização do ESP RunService.Heartbeat:Connect(function() if ESPEnabled then for Player, ESP in pairs(ESPObjects) do if Player and Player.Parent and Player.Character then ESP.Update() else RemoveESP(Player) end end end end) -- Detectar novos jogadores Players.PlayerAdded:Connect(function(Player) if ESPEnabled and Player ~= LocalPlayer then task.wait(1) CreateESP(Player) end end) -- Detectar jogadores saindo Players.PlayerRemoving:Connect(function(Player) RemoveESP(Player) end) -- Detectar quando o personagem respawna Players.PlayerAdded:Connect(function(Player) Player.CharacterAdded:Connect(function() if ESPEnabled and Player ~= LocalPlayer then task.wait(0.5) RemoveESP(Player) CreateESP(Player) end end) end) for _, Player in pairs(Players:GetPlayers()) do if Player ~= LocalPlayer then Player.CharacterAdded:Connect(function() if ESPEnabled then task.wait(0.5) RemoveESP(Player) CreateESP(Player) end end) end end -- Hotkeys UIS.InputBegan:Connect(function(Input, GameProcessed) if GameProcessed then return end if Input.KeyCode == Enum.KeyCode.F6 then ToggleAimbot() elseif Input.KeyCode == Enum.KeyCode.F7 then ToggleESP() end end) -- Notificação print("🎯 Aimbot + ESP Professional carregado!") print("✓ Aimbot: F6 para ativar") print("✓ ESP: F7 para ativar") print("✓ Team Check e Wall Check ativos")