AIMBOT
Key RequiredUniversal

AIMBOT

Universal Scriptskzzgdsostvch1942skzzgdsostvch1942 1.2K views 253 executesUpdated Apr 15, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•213 lines (9090 chars)
--// Ultimate Aimbot & ESP V7 (Fixed Slider & Target Filter)
--// Hotkey: Right Control to Hide/Show GUI

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

--// Settings
local _G = {
    AimbotEnabled = true,
    TeamCheck = true,
    WallCheck = true,
    ESPEnabled = true,
    ESPTargetEnemiesOnly = true, -- ตัวเลือกใหม่: แสดงเฉพาะฆ่าศึก
    FOV = 20, -- ค่าเริ่มต้นกลางๆ
    MaxDistance = 2000
}

local aiming = false
local currentTarget = nil
local ESP_Table = {}

--// FOV Circle Visual
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 1
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Transparency = 0.5
FOVCircle.Visible = true

--// GUI Setup
local ScreenGui = Instance.new("ScreenGui", CoreGui)
local MainFrame = Instance.new("Frame", ScreenGui)
MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
MainFrame.Position = UDim2.new(0.05, 0, 0.3, 0)
MainFrame.Size = UDim2.new(0, 200, 0, 300) -- ขยายขนาดรองรับปุ่มใหม่
MainFrame.Active = true
MainFrame.Draggable = true

local Title = Instance.new("TextLabel", MainFrame)
Title.Size = UDim2.new(1, 0, 0, 30)
Title.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
Title.Text = "Gemini Aimbot V7"
Title.TextColor3 = Color3.new(1, 1, 1)
Title.Font = Enum.Font.SourceSansBold

local function createBtn(text, pos, color)
    local btn = Instance.new("TextButton", MainFrame)
    btn.Size = UDim2.new(0.85, 0, 0, 25)
    btn.Position = pos
    btn.BackgroundColor3 = color
    btn.Text = text
    btn.TextColor3 = Color3.new(1, 1, 1)
    btn.BorderSizePixel = 0
    return btn
end

local ToggleBtn = createBtn("Aimbot: ON", UDim2.new(0.075, 0, 0.12, 0), Color3.fromRGB(0, 170, 0))
local TeamBtn = createBtn("Aimbot Target: Enemy", UDim2.new(0.075, 0, 0.23, 0), Color3.fromRGB(0, 100, 200))
local WallBtn = createBtn("Wall Check: ON", UDim2.new(0.075, 0, 0.34, 0), Color3.fromRGB(150, 0, 150))
local ESPBtn = createBtn("ESP: ON", UDim2.new(0.075, 0, 0.45, 0), Color3.fromRGB(0, 150, 150))
local ESPFilterBtn = createBtn("ESP Target: Enemy", UDim2.new(0.075, 0, 0.56, 0), Color3.fromRGB(200, 50, 50))

local FOVLabel = Instance.new("TextLabel", MainFrame)
FOVLabel.Position = UDim2.new(0.1, 0, 0.68, 0)
FOVLabel.Size = UDim2.new(0.8, 0, 0, 20)
FOVLabel.Text = "FOV Angle: " .. _G.FOV
FOVLabel.TextColor3 = Color3.new(1, 1, 1)
FOVLabel.BackgroundTransparency = 1

local FOVSlider = Instance.new("Frame", MainFrame)
FOVSlider.Position = UDim2.new(0.1, 0, 0.78, 0)
FOVSlider.Size = UDim2.new(0.8, 0, 0, 10)
FOVSlider.BackgroundColor3 = Color3.fromRGB(50, 50, 50)

local FOVBar = Instance.new("TextButton", FOVSlider)
FOVBar.Size = UDim2.new((_G.FOV-1)/89, 0, 1, 0)
FOVBar.BackgroundColor3 = Color3.fromRGB(255, 215, 0)
FOVBar.Text = ""

--// GUI Logic
ToggleBtn.MouseButton1Click:Connect(function()
    _G.AimbotEnabled = not _G.AimbotEnabled
    ToggleBtn.Text = _G.AimbotEnabled and "Aimbot: ON" or "Aimbot: OFF"
    ToggleBtn.BackgroundColor3 = _G.AimbotEnabled and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(170, 0, 0)
end)

TeamBtn.MouseButton1Click:Connect(function()
    _G.TeamCheck = not _G.TeamCheck
    TeamBtn.Text = _G.TeamCheck and "Aimbot Target: Enemy" or "Aimbot Target: ALL"
    TeamBtn.BackgroundColor3 = _G.TeamCheck and Color3.fromRGB(0, 100, 200) or Color3.fromRGB(200, 100, 0)
end)

ESPFilterBtn.MouseButton1Click:Connect(function()
    _G.ESPTargetEnemiesOnly = not _G.ESPTargetEnemiesOnly
    ESPFilterBtn.Text = _G.ESPTargetEnemiesOnly and "ESP Target: Enemy" or "ESP Target: ALL"
    ESPFilterBtn.BackgroundColor3 = _G.ESPTargetEnemiesOnly and Color3.fromRGB(200, 50, 50) or Color3.fromRGB(100, 100, 100)
end)

-- แก้ไข Slider ให้ลดได้สมบูรณ์
local function updateSlider(input)
    local xPos = input.Position.X
    local sliderSize = FOVSlider.AbsoluteSize.X
    local sliderPos = FOVSlider.AbsolutePosition.X
    local rel = math.clamp((xPos - sliderPos) / sliderSize, 0, 1)
    
    _G.FOV = math.floor(rel * 89) + 1 -- 1 ถึง 90
    FOVBar.Size = UDim2.new(rel, 0, 1, 0)
    FOVLabel.Text = "FOV Angle: " .. _G.FOV
end

FOVSlider.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        updateSlider(input)
        local connection
        connection = UserInputService.InputChanged:Connect(function(input2)
            if input2.UserInputType == Enum.UserInputType.MouseMovement then
                updateSlider(input2)
            end
        end)
        UserInputService.InputEnded:Connect(function(input3)
            if input3.UserInputType == Enum.UserInputType.MouseButton1 then
                connection:Disconnect()
            end
        end)
    end
end)

--// Core Functions
local function canShoot(target)
    if not _G.WallCheck then return true end
    if not target.Character or not target.Character:FindFirstChild("Head") then return false end
    local head = target.Character.Head
    local origin = Camera.CFrame.Position
    local direction = (head.Position - origin).Unit * (head.Position - origin).Magnitude
    local rayParams = RaycastParams.new()
    rayParams.FilterDescendantsInstances = {LocalPlayer.Character}
    rayParams.FilterType = Enum.RaycastFilterType.Blacklist
    local result = workspace:Raycast(origin, direction, rayParams)
    return (result and result.Instance:IsDescendantOf(target.Character)) or false
end

--// Main Loops
RunService.RenderStepped:Connect(function()
    FOVCircle.Visible = _G.AimbotEnabled and MainFrame.Visible
    FOVCircle.Radius = _G.FOV * 8
    FOVCircle.Position = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)

    for _, player in pairs(Players:GetPlayers()) do
        if player == LocalPlayer then continue end
        
        if not ESP_Table[player] then 
            local b = Drawing.new("Square") b.Thickness = 1 b.Filled = false
            local l = Drawing.new("Line") l.Thickness = 1
            ESP_Table[player] = {Box = b, Line = l}
        end
        local esp = ESP_Table[player]
        local char = player.Character
        
        -- เงื่อนไขการแสดงผล ESP (แสดงเฉพาะฆ่าศึก หรือ ทั้งหมด)
        local isEnemy = player.Team ~= LocalPlayer.Team
        local shouldShowESP = _G.ESPEnabled and (not _G.ESPTargetEnemiesOnly or isEnemy)

        if shouldShowESP and char and char:FindFirstChild("HumanoidRootPart") and char.Humanoid.Health > 0 then
            local pos, onScreen = Camera:WorldToViewportPoint(char.HumanoidRootPart.Position)
            if onScreen then
                local height = (Camera:WorldToViewportPoint(char.HumanoidRootPart.Position + Vector3.new(0, 3, 0)).Y - Camera:WorldToViewportPoint(char.HumanoidRootPart.Position - Vector3.new(0, 3, 0)).Y)
                esp.Box.Size = Vector2.new(height * 0.6, height)
                esp.Box.Position = Vector2.new(pos.X - (esp.Box.Size.X/2), pos.Y - (height/2))
                esp.Box.Color = player.TeamColor.Color
                esp.Box.Visible = true

                esp.Line.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y)
                esp.Line.To = Vector2.new(pos.X, pos.Y + (height/2))
                esp.Line.Color = player.TeamColor.Color
                esp.Line.Visible = true
            else
                esp.Box.Visible = false esp.Line.Visible = false
            end
        else
            esp.Box.Visible = false esp.Line.Visible = false
        end
    end

    if aiming and _G.AimbotEnabled then
        local closest, shortest = nil, math.huge
        for _, p in pairs(Players:GetPlayers()) do
            if p ~= LocalPlayer and (not _G.TeamCheck or p.Team ~= LocalPlayer.Team) then
                if p.Character and p.Character:FindFirstChild("Head") and p.Character.Humanoid.Health > 0 then
                    local pos, visible = Camera:WorldToViewportPoint(p.Character.Head.Position)
                    if visible then
                        local dist = (Vector2.new(pos.X, pos.Y) - Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)).Magnitude
                        local angle = math.deg(math.acos(Camera.CFrame.LookVector:Dot((p.Character.Head.Position - Camera.CFrame.Position).Unit)))
                        if angle <= (_G.FOV/2) and dist < shortest and canShoot(p) then
                            shortest = dist closest = p
                        end
                    end
                end
            end
        end
        if closest then Camera.CFrame = CFrame.new(Camera.CFrame.Position, closest.Character.Head.Position) end
    end
end)

UserInputService.InputBegan:Connect(function(i, p)
    if not p and i.KeyCode == Enum.KeyCode.RightControl then MainFrame.Visible = not MainFrame.Visible end
    if not p and i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = true end
end)
UserInputService.InputEnded:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = false end
end)

Features & Information

R Ctrl to turn off i use ai idk but good to me

Community Comments (2)

skzzgdsostvch1942skzzgdsostvch1942Apr 15, 2026

HAVE ESP TO

lpp19z0lpp19z0Apr 15, 2026

nice game

More Scripts for Universal Scripts