Aimbot and esp universal [beta]
Key RequiredUniversal

Aimbot and esp universal [beta]

Universal ScriptHipls034Hipls034 1.4K views 6.1K executesUpdated Jan 24, 2026
Unrated
00
Lua Script•612 lines (19871 chars)
-- 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")

Features & Information

Adicionei um esp agora ele está executando normalmente

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts