Description

This is a simplistic aimbot script for arsenal. its open source and specifically works for aimbot only.

Features

  • + Aimbot
  • + Toggle key E
  • + Target

Script

Add Xeno Scripts as a preferred source
-- Advanced Aimbot Script
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer

-- Aimbot Configuration
local AimbotConfig = {
    Enabled = true,
    ToggleKey = Enum.KeyCode.E,
    AimPart = "Head", -- "Head", "Torso", "HumanoidRootPart"
    MaxDistance = 500,
    FOV = 90,
    Smoothness = 0.1, -- 0 = instant, 1 = very smooth
    WallCheck = true,
    VisibleCheck = true,
    TeamCheck = true
}

-- Variables
local AimbotTarget = nil
local AimbotConnection = nil

-- Helper Functions
local function GetClosestPlayer()
    local ClosestPlayer = nil
    local ShortestDistance = AimbotConfig.MaxDistance
    
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(AimbotConfig.AimPart) then
            if AimbotConfig.TeamCheck and player.Team == LocalPlayer.Team then
                continue
            end
            
            local targetPart = player.Character[AimbotConfig.AimPart]
            local distance = (LocalPlayer.Character.HumanoidRootPart.Position - targetPart.Position).Magnitude
            
            if distance < ShortestDistance then
                -- FOV Check
                local screenPoint, onScreen = Camera:WorldToViewportPoint(targetPart.Position)
                if onScreen then
                    local fovDistance = (Vector2.new(screenPoint.X, screenPoint.Y) - Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)).Magnitude
                    local maxFovDistance = math.tan(math.rad(AimbotConfig.FOV/2)) * distance
                    
                    if fovDistance <= maxFovDistance then
                        -- Wall Check
                        if AimbotConfig.WallCheck then
                            local raycastParams = RaycastParams.new()
                            raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
                            raycastParams.FilterDescendantsInstances = {LocalPlayer.Character, player.Character}
                            
                            local rayResult = workspace:Raycast(Camera.CFrame.Position, (targetPart.Position - Camera.CFrame.Position).Unit * distance, raycastParams)
                            if rayResult then
                                continue
                            end
                        end
                        
                        ClosestPlayer = player
                        ShortestDistance = distance
                    end
                end
            end
        end
    end
    
    return ClosestPlayer
end

local function AimAt(target)
    if not target or not target.Character or not target.Character:FindFirstChild(AimbotConfig.AimPart) then
        return
    end
    
    local targetPart = target.Character[AimbotConfig.AimPart]
    local targetPosition = targetPart.Position
    
    -- Prediction (basic)
    if target.Character:FindFirstChild("Humanoid") and target.Character.Humanoid.MoveDirection.Magnitude > 0 then
        local velocity = target.Character.HumanoidRootPart.AssemblyLinearVelocity
        local distance = (LocalPlayer.Character.HumanoidRootPart.Position - targetPosition).Magnitude
        local timeToHit = distance / 1000 -- Adjust based on weapon speed
        targetPosition = targetPosition + (velocity * timeToHit)
    end
    
    local newCFrame = CFrame.lookAt(Camera.CFrame.Position, targetPosition)
    
    if AimbotConfig.Smoothness > 0 then
        Camera.CFrame = Camera.CFrame:Lerp(newCFrame, 1 - AimbotConfig.Smoothness)
    else
        Camera.CFrame = newCFrame
    end
end

-- Main Aimbot Loop
local function StartAimbot()
    if AimbotConnection then
        AimbotConnection:Disconnect()
    end
    
    AimbotConnection = RunService.Heartbeat:Connect(function()
        if not AimbotConfig.Enabled then
            return
        end
        
        AimbotTarget = GetClosestPlayer()
        if AimbotTarget then
            AimAt(AimbotTarget)
        end
    end)
end

local function StopAimbot()
    if AimbotConnection then
        AimbotConnection:Disconnect()
        AimbotConnection = nil
    end
    AimbotTarget = nil
end

-- Toggle Function
UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    
    if input.KeyCode == AimbotConfig.ToggleKey then
        AimbotConfig.Enabled = not AimbotConfig.Enabled
        
        if AimbotConfig.Enabled then
            StartAimbot()
            print("Aimbot Enabled")
        else
            StopAimbot()
            print("Aimbot Disabled")
        end
    end
end)

-- Auto-start
if AimbotConfig.Enabled then
    StartAimbot()
end

-- GUI (Optional)
local ScreenGui = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local Title = Instance.new("TextLabel")
local StatusLabel = Instance.new("TextLabel")

ScreenGui.Name = "AimbotGUI"
ScreenGui.Parent = gethui and gethui() or game.CoreGui

Frame.Name = "MainFrame"
Frame.Parent = ScreenGui
Frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
Frame.BorderSizePixel = 0
Frame.Position = UDim2.new(0, 10, 0, 10)
Frame.Size = UDim2.new(0, 200, 0, 80)

Title.Name = "Title"
Title.Parent = Frame
Title.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
Title.BorderSizePixel = 0
Title.Size = UDim2.new(1, 0, 0, 25)
Title.Font = Enum.Font.SourceSansBold
Title.Text = "Aimbot"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 14

StatusLabel.Name = "Status"
StatusLabel.Parent = Frame
StatusLabel.BackgroundTransparency = 1
StatusLabel.Position = UDim2.new(0, 5, 0, 30)
StatusLabel.Size = UDim2.new(1, -10, 0, 45)
StatusLabel.Font = Enum.Font.SourceSans
StatusLabel.Text = "Status: " .. (AimbotConfig.Enabled and "Enabled" or "Disabled") .. "\nToggle Key: " .. AimbotConfig.ToggleKey.Name
StatusLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
StatusLabel.TextSize = 12
StatusLabel.TextYAlignment = Enum.TextYAlignment.Top

-- Update status
RunService.Heartbeat:Connect(function()
    StatusLabel.Text = "Status: " .. (AimbotConfig.Enabled and "Enabled" or "Disabled") .. "\nToggle Key: " .. AimbotConfig.ToggleKey.Name .. "\nTarget: " .. (AimbotTarget and AimbotTarget.Name or "None")
end)
Script worked? 🚀 Boost it to #1 so others find it too.

Comments (0)

Log in to add a comment.