Universal aimbot script
Key RequiredUniversal

Universal aimbot script

Universal ScriptArielservicesArielservices 4.2K views 228 executesUpdated Sep 28, 2025
4.0/ 5(5 votes)
4180% Positive
Lua Script•455 lines (15653 chars)
-- Ariel Cheats - Aimbot & ESP Script
if not game:IsLoaded() then game.Loaded:Wait() end
wait(2)

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")

local player = Players.LocalPlayer
local mouse = player:GetMouse()
local camera = workspace.CurrentCamera

-- Settings
local settings = {
    aimbot = true,
    esp = true,
    fovCircle = true,
    boxes2d = true,
    tracers = true,
    names = true,
    distance = true,
    healthbar = true,
    
    smoothness = 3,
    fovSize = 150,
    maxDistance = 2000
}

local menuOpen = false
local drawings = {}
local espData = {}

-- Ariel Cheats Notification
local function createNotification()
    local notif = Instance.new("ScreenGui")
    notif.Name = "ArielCheatsNotification"
    notif.Parent = CoreGui

    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(0, 300, 0, 80)
    frame.Position = UDim2.new(0.5, -150, 0.1, 0)
    frame.BackgroundColor3 = Color3.new(0,0,0)
    frame.BorderSizePixel = 2
    frame.BorderColor3 = Color3.new(0,1,0)
    frame.Parent = notif

    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1,0,1,0)
    label.BackgroundTransparency = 1
    label.Text = "Ariel Cheats Loaded\nRight Shift = Menu\nRight Click = Aimbot"
    label.TextColor3 = Color3.new(1,1,1)
    label.TextScaled = true
    label.Parent = frame
    
    delay(5, function()
        if notif then
            notif:Destroy()
        end
    end)
end

createNotification()

-- Create FOV Circle
local function createFOVCircle()
    local circle = Drawing.new("Circle")
    circle.Visible = settings.fovCircle
    circle.Transparency = 1
    circle.Color = Color3.new(1, 1, 1)
    circle.Thickness = 2
    circle.NumSides = 64
    circle.Radius = settings.fovSize
    circle.Filled = false
    return circle
end

-- Create ESP for player
local function createESP(targetPlayer)
    if targetPlayer == player then return end
    
    local esp = {
        box = Drawing.new("Square"),
        tracer = Drawing.new("Line"),
        name = Drawing.new("Text"),
        distance = Drawing.new("Text"),
        healthbar = Drawing.new("Line"),
        healthtext = Drawing.new("Text")
    }
    
    -- Initialize drawings
    esp.box.Visible = false
    esp.box.Thickness = 2
    esp.box.Filled = false
    esp.box.Color = Color3.new(1, 1, 1)
    
    esp.tracer.Visible = false
    esp.tracer.Thickness = 1
    esp.tracer.Color = Color3.new(1, 1, 1)
    
    esp.name.Visible = false
    esp.name.Size = 14
    esp.name.Outline = true
    esp.name.Color = Color3.new(1, 1, 1)
    
    esp.distance.Visible = false
    esp.distance.Size = 12
    esp.distance.Outline = true
    esp.distance.Color = Color3.new(0.7, 0.7, 1)
    
    esp.healthbar.Visible = false
    esp.healthbar.Thickness = 3
    esp.healthbar.Color = Color3.new(0, 1, 0)
    
    esp.healthtext.Visible = false
    esp.healthtext.Size = 12
    esp.healthtext.Outline = true
    esp.healthtext.Color = Color3.new(1, 1, 1)
    
    return esp
end

-- Update ESP
local function updateESP()
    if not settings.esp then
        for _, esp in pairs(espData) do
            for _, drawing in pairs(esp) do
                if drawing then drawing.Visible = false end
            end
        end
        return
    end
    
    for _, targetPlayer in pairs(Players:GetPlayers()) do
        if targetPlayer ~= player and targetPlayer.Character then
            local character = targetPlayer.Character
            local humanoid = character:FindFirstChild("Humanoid")
            local rootPart = character:FindFirstChild("HumanoidRootPart")
            
            if humanoid and humanoid.Health > 0 and rootPart then
                local screenPosition, onScreen = camera:WorldToViewportPoint(rootPart.Position)
                
                if onScreen then
                    if not espData[targetPlayer] then
                        espData[targetPlayer] = createESP(targetPlayer)
                    end
                    
                    local esp = espData[targetPlayer]
                    local distance = (rootPart.Position - camera.CFrame.Position).Magnitude
                    local scale = 1000 / distance
                    
                    -- Box ESP
                    if settings.boxes2d then
                        esp.box.Size = Vector2.new(scale * 2, scale * 3)
                        esp.box.Position = Vector2.new(screenPosition.X - scale, screenPosition.Y - scale * 1.5)
                        esp.box.Visible = true
                    else
                        esp.box.Visible = false
                    end
                    
                    -- Tracers
                    if settings.tracers then
                        esp.tracer.From = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y)
                        esp.tracer.To = Vector2.new(screenPosition.X, screenPosition.Y)
                        esp.tracer.Visible = true
                    else
                        esp.tracer.Visible = false
                    end
                    
                    -- Name
                    if settings.names then
                        esp.name.Text = targetPlayer.Name
                        esp.name.Position = Vector2.new(screenPosition.X, screenPosition.Y - 50)
                        esp.name.Visible = true
                    else
                        esp.name.Visible = false
                    end
                    
                    -- Distance
                    if settings.distance then
                        esp.distance.Text = math.floor(distance) .. "m"
                        esp.distance.Position = Vector2.new(screenPosition.X, screenPosition.Y - 35)
                        esp.distance.Visible = true
                    else
                        esp.distance.Visible = false
                    end
                    
                    -- Health Bar
                    if settings.healthbar then
                        local healthPercent = humanoid.Health / humanoid.MaxHealth
                        local barLength = 40
                        local barY = screenPosition.Y + 45
                        
                        esp.healthbar.From = Vector2.new(screenPosition.X - barLength/2, barY)
                        esp.healthbar.To = Vector2.new(screenPosition.X - barLength/2 + barLength * healthPercent, barY)
                        esp.healthbar.Color = Color3.new(1 - healthPercent, healthPercent, 0)
                        esp.healthbar.Visible = true
                        
                        esp.healthtext.Text = math.floor(humanoid.Health) .. "/" .. math.floor(humanoid.MaxHealth)
                        esp.healthtext.Position = Vector2.new(screenPosition.X, barY + 10)
                        esp.healthtext.Visible = true
                    else
                        esp.healthbar.Visible = false
                        esp.healthtext.Visible = false
                    end
                    
                else
                    if espData[targetPlayer] then
                        for _, drawing in pairs(espData[targetPlayer]) do
                            if drawing then drawing.Visible = false end
                        end
                    end
                end
            else
                if espData[targetPlayer] then
                    for _, drawing in pairs(espData[targetPlayer]) do
                        if drawing then drawing.Visible = false end
                    end
                end
            end
        else
            if espData[targetPlayer] then
                for _, drawing in pairs(espData[targetPlayer]) do
                    if drawing then drawing.Visible = false end
                end
            end
        end
    end
end

-- AIMBOT FUNCTIONS
local function findTarget()
    if not settings.aimbot then return nil end
    if not player.Character then return nil end
    
    local closest = nil
    local closestDistance = settings.maxDistance
    local myPosition = player.Character:FindFirstChild("HumanoidRootPart")
    
    if not myPosition then return nil end
    
    for _, targetPlayer in pairs(Players:GetPlayers()) do
        if targetPlayer ~= player and targetPlayer.Character then
            local targetRoot = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
            local humanoid = targetPlayer.Character:FindFirstChild("Humanoid")
            
            if targetRoot and humanoid and humanoid.Health > 0 then
                local screenPoint = camera:WorldToViewportPoint(targetRoot.Position)
                local mousePos = Vector2.new(mouse.X, mouse.Y)
                local targetScreenPos = Vector2.new(screenPoint.X, screenPoint.Y)
                
                local screenDistance = (targetScreenPos - mousePos).Magnitude
                local worldDistance = (targetRoot.Position - myPosition.Position).Magnitude
                
                if screenDistance <= settings.fovSize and worldDistance <= settings.maxDistance then
                    if worldDistance < closestDistance then
                        closestDistance = worldDistance
                        closest = targetRoot
                    end
                end
            end
        end
    end
    
    return closest
end

local function aimAt(target)
    if not target then return end
    
    local cameraCFrame = camera.CFrame
    local targetPosition = target.Position
    
    local head = target.Parent:FindFirstChild("Head")
    if head then
        targetPosition = head.Position
    end
    
    local lookVector = (targetPosition - cameraCFrame.Position).Unit
    local newCFrame = CFrame.new(cameraCFrame.Position, cameraCFrame.Position + lookVector)
    
    local smoothness = math.max(1, settings.smoothness)
    camera.CFrame = cameraCFrame:Lerp(newCFrame, 1 / smoothness)
end

-- Create Ariel Cheats Menu
local menuGui = Instance.new("ScreenGui")
menuGui.Name = "ArielCheatsMenu"
menuGui.Parent = CoreGui

local menuFrame = Instance.new("Frame")
menuFrame.Size = UDim2.new(0, 300, 0, 400)
menuFrame.Position = UDim2.new(0.5, -150, 0.5, -200)
menuFrame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1)
menuFrame.BorderSizePixel = 2
menuFrame.BorderColor3 = Color3.new(0, 0.5, 1)
menuFrame.Visible = false
menuFrame.Parent = menuGui

local title = Instance.new("TextLabel")
title.Text = "ARIEL CHEATS v1.0"
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundColor3 = Color3.new(0, 0.3, 0.6)
title.TextColor3 = Color3.new(1, 1, 1)
title.TextScaled = true
title.Parent = menuFrame

local yPos = 40

-- Toggle function
local function addToggle(text, settingName)
    local toggleFrame = Instance.new("Frame")
    toggleFrame.Size = UDim2.new(0.9, 0, 0, 25)
    toggleFrame.Position = UDim2.new(0.05, 0, 0, yPos)
    toggleFrame.BackgroundTransparency = 1
    toggleFrame.Parent = menuFrame
    
    local label = Instance.new("TextLabel")
    label.Text = text
    label.Size = UDim2.new(0.6, 0, 1, 0)
    label.BackgroundTransparency = 1
    label.TextColor3 = Color3.new(1, 1, 1)
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.Parent = toggleFrame
    
    local button = Instance.new("TextButton")
    button.Size = UDim2.new(0.3, 0, 0.8, 0)
    button.Position = UDim2.new(0.7, 0, 0.1, 0)
    button.Text = settings[settingName] and "ON" or "OFF"
    button.BackgroundColor3 = settings[settingName] and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
    button.Parent = toggleFrame
    
    button.MouseButton1Click:Connect(function()
        settings[settingName] = not settings[settingName]
        button.Text = settings[settingName] and "ON" or "OFF"
        button.BackgroundColor3 = settings[settingName] and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
    end)
    
    yPos = yPos + 30
    return yPos
end

-- Add toggles
addToggle("Aimbot", "aimbot")
addToggle("ESP", "esp")
addToggle("FOV Circle", "fovCircle")
addToggle("2D Boxes", "boxes2d")
addToggle("Tracers", "tracers")
addToggle("Names", "names")
addToggle("Distance", "distance")
addToggle("Health Bar", "healthbar")

-- Simple slider implementation
local function createSlider(text, settingName, min, max)
    local sliderFrame = Instance.new("Frame")
    sliderFrame.Size = UDim2.new(0.9, 0, 0, 40)
    sliderFrame.Position = UDim2.new(0.05, 0, 0, yPos)
    sliderFrame.BackgroundTransparency = 1
    sliderFrame.Parent = menuFrame
    
    local label = Instance.new("TextLabel")
    label.Text = text .. ": " .. settings[settingName]
    label.Size = UDim2.new(1, 0, 0, 20)
    label.BackgroundTransparency = 1
    label.TextColor3 = Color3.new(1, 1, 1)
    label.Parent = sliderFrame
    
    local increase = Instance.new("TextButton")
    increase.Text = "+"
    increase.Size = UDim2.new(0.2, 0, 0, 20)
    increase.Position = UDim2.new(0.8, 0, 0, 20)
    increase.BackgroundColor3 = Color3.new(0, 0.5, 0)
    increase.Parent = sliderFrame
    
    local decrease = Instance.new("TextButton")
    decrease.Text = "-"
    decrease.Size = UDim2.new(0.2, 0, 0, 20)
    decrease.Position = UDim2.new(0.6, 0, 0, 20)
    decrease.BackgroundColor3 = Color3.new(0.5, 0, 0)
    decrease.Parent = sliderFrame
    
    increase.MouseButton1Click:Connect(function()
        settings[settingName] = math.min(max, settings[settingName] + 1)
        label.Text = text .. ": " .. settings[settingName]
    end)
    
    decrease.MouseButton1Click:Connect(function()
        settings[settingName] = math.max(min, settings[settingName] - 1)
        label.Text = text .. ": " .. settings[settingName]
    end)
    
    yPos = yPos + 45
    return yPos
end

yPos = createSlider("Smoothness", "smoothness", 1, 10)
yPos = createSlider("FOV Size", "fovSize", 50, 500)
yPos = createSlider("Max Distance", "maxDistance", 100, 5000)

-- Close Button
local closeBtn = Instance.new("TextButton")
closeBtn.Text = "CLOSE MENU"
closeBtn.Size = UDim2.new(0.8, 0, 0, 30)
closeBtn.Position = UDim2.new(0.1, 0, 0, yPos + 10)
closeBtn.BackgroundColor3 = Color3.new(1, 0, 0)
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.Parent = menuFrame

closeBtn.MouseButton1Click:Connect(function()
    menuFrame.Visible = false
    menuOpen = false
end)

-- Right Shift detection
UserInputService.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.RightShift then
        menuOpen = not menuOpen
        menuFrame.Visible = menuOpen
        print("Ariel Cheats Menu toggled: " .. tostring(menuOpen))
    end
end)

-- Create FOV Circle
drawings.fovCircle = createFOVCircle()

-- Main Game Loop
RunService.RenderStepped:Connect(function()
    -- Update FOV Circle
    if drawings.fovCircle then
        drawings.fovCircle.Visible = settings.fovCircle
        drawings.fovCircle.Radius = settings.fovSize
        drawings.fovCircle.Position = Vector2.new(mouse.X, mouse.Y + 36)
    end
    
    -- Update ESP
    updateESP()
    
    -- AIMBOT
    if settings.aimbot and not menuOpen then
        if UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
            local target = findTarget()
            if target then
                aimAt(target)
            end
        end
    end
end)

print("🎯 Ariel Cheats v1.0 loaded successfully!")
print("⚡ Features: Aimbot, ESP, FOV Circle, 2D Boxes, Tracers")
print("🔧 Controls: Right Shift = Menu, Right Click = Aimbot")
print("📊 Settings: Smoothness=" .. settings.smoothness .. ", FOV=" .. settings.fovSize)

wait(3)
print("✅ Ariel Cheats system fully operational!")

Features & Information

Universal script FREEE Key for menu: Right Shift

Community Comments (5)

ArielservicesArielservicesSep 28, 2025

Updating it right now adding more stuff

ArielservicesArielservicesSep 28, 2025

Ts is gonna be so much better trust

ArielservicesArielservicesSep 30, 2025

Just to let yall know I am cooking make sure to join my discord at Https://discord.gg/arielcheats

UwuGoblinUwuGoblinOct 18, 2025

Ts is ai

UwuGoblinUwuGoblinOct 18, 2025

Lemme dislike everything so that yeag

More Scripts for Universal Scripts