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


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


local AimbotTab = Window:CreateTab("Aimbot", "skull")

local MAX_DISTANCE = 100
local MAX_ANGLE = 45
local aimLockEnabled = false
local lockPartName = "Head"

AimbotTab:CreateSection("Aim-Lock")

AimbotTab:CreateToggle({
    Name = "Enable Aimbot",
    CurrentValue = false,
    Callback = function(value)
        aimLockEnabled = value
    end,
})

AimbotTab:CreateSlider({
    Name = "Value",
    Range = {10, 500},
    Increment = 5,
    Suffix = " studs",
    CurrentValue = MAX_DISTANCE,
    Callback = function(value)
        MAX_DISTANCE = value
    end,
})

local function getNearestTarget()
    local nearest = nil
    local shortestDistance = MAX_DISTANCE

    for _, player in pairs(Players:GetPlayers()) do
        if player ~= localPlayer and player.Character then
            local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
            local targetPart = player.Character:FindFirstChild(lockPartName)
            if humanoid and humanoid.Health > 0 and targetPart then
                local direction = (targetPart.Position - camera.CFrame.Position).Unit
                local angle = math.deg(math.acos(camera.CFrame.LookVector:Dot(direction)))
                local distance = (targetPart.Position - camera.CFrame.Position).Magnitude

                if angle <= MAX_ANGLE and distance < shortestDistance then
                    shortestDistance = distance
                    nearest = targetPart
                end
            end
        end
    end

    return nearest
end

RunService.RenderStepped:Connect(function()
    if aimLockEnabled then
        local target = getNearestTarget()
        if target then
            camera.CFrame = CFrame.new(camera.CFrame.Position, target.Position)
        end
    end
end)


AimbotTab:CreateSection("Hitbox")

local toggleEnabled = false
local hitboxSize = 25

local function ApplyEffect()
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= localPlayer and player.Character then
            local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
            local rootPart = player.Character:FindFirstChild("HumanoidRootPart")
            if humanoid and humanoid.Health > 0 and rootPart and rootPart:IsA("Part") then
                rootPart.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize)
                rootPart.Transparency = 0.5
                rootPart.Color = Color3.fromRGB(100, 100, 255)
                rootPart.CanCollide = false
            end
        end
    end
end

local function ResetEffect()
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= localPlayer and player.Character then
            local rootPart = player.Character:FindFirstChild("HumanoidRootPart")
            if rootPart and rootPart:IsA("Part") then
                rootPart.Size = Vector3.new(2, 2, 1)
                rootPart.Transparency = 0
                rootPart.Color = Color3.new(1, 1, 1)
                rootPart.CanCollide = true
            end
        end
    end
end

AimbotTab:CreateToggle({
    Name = "Hitbox Expander",
    CurrentValue = false,
    Flag = "ToggleGiant",
    Callback = function(Value)
        toggleEnabled = Value
        if Value then ApplyEffect() else ResetEffect() end
    end,
})

AimbotTab:CreateSlider({
    Name = "Hitbox Multiplier",
    Range = {5, 100},
    Increment = 1,
    Suffix = "Size",
    CurrentValue = hitboxSize,
    Flag = "HitboxSize",
    Callback = function(Value)
        hitboxSize = Value
        if toggleEnabled then ApplyEffect() end
    end,
})

AimbotTab:CreateSection("Feild Of View")

local aimCircleRadius = 100
local aimCircleThickness = 2
local circleColor = Color3.fromRGB(128, 0, 128)

local aimCircle = nil
local rainbowCircle = nil
local fovEnabled = false
local rainbowEnabled = false

local function createAimCircle()
    aimCircle = Drawing.new("Circle")
    aimCircle.Visible = true
    aimCircle.Filled = false
    aimCircle.Color = circleColor
    aimCircle.Thickness = aimCircleThickness
end

local function createRainbowCircle()
    rainbowCircle = Drawing.new("Circle")
    rainbowCircle.Visible = true
    rainbowCircle.Filled = false
    rainbowCircle.Thickness = aimCircleThickness
end

RunService.RenderStepped:Connect(function()
    if fovEnabled then
        if not aimCircle then createAimCircle() end
        aimCircle.Position = Vector2.new(mouse.X, mouse.Y + 40)
        aimCircle.Visible = true
        aimCircle.Radius = aimCircleRadius
        aimCircle.Color = circleColor
    elseif aimCircle then
        aimCircle.Visible = false
    end

    if fovEnabled and rainbowEnabled then
        if not rainbowCircle then createRainbowCircle() end
        rainbowCircle.Position = Vector2.new(mouse.X, mouse.Y + 40)
        rainbowCircle.Visible = true
        rainbowCircle.Radius = aimCircleRadius
        rainbowCircle.Color = Color3.fromHSV((tick() * 100) % 360 / 360, 1, 1)
    elseif rainbowCircle then
        rainbowCircle.Visible = false
    end
end)

AimbotTab:CreateToggle({
    Name = "Enable FOV Circle",
    CurrentValue = false,
    Callback = function(Value)
        fovEnabled = Value
        if fovEnabled and not aimCircle then createAimCircle() end
        if not fovEnabled and rainbowCircle then rainbowCircle.Visible = false end
    end,
})

AimbotTab:CreateToggle({
    Name = "Rainbow Field of View",
    CurrentValue = false,
    Callback = function(Value)
        rainbowEnabled = Value
        if rainbowEnabled and not rainbowCircle then createRainbowCircle() end
        if not rainbowEnabled and rainbowCircle then rainbowCircle.Visible = false end
    end,
})

AimbotTab:CreateSlider({
    Name = "FOV Circle Radius",
    Range = {50, 500},
    Increment = 10,
    Suffix = "px",
    CurrentValue = aimCircleRadius,
    Callback = function(Value)
        aimCircleRadius = Value
        if aimCircle then aimCircle.Radius = aimCircleRadius end
        if rainbowCircle then rainbowCircle.Radius = aimCircleRadius end
    end,
})

AimbotTab:CreateColorPicker({
    Name = "FOV Color Picker",
    Color = circleColor,
    Callback = function(Value)
        circleColor = Value
        if aimCircle then aimCircle.Color = circleColor end
    end,
})

AimbotTab:CreateSection("Snap-Lines")

local line = Drawing.new("Line")
line.Color = Color3.new(1, 1, 1)
line.Thickness = 2
line.Transparency = 1
line.Visible = false

local AIM_RADIUS = 30
local snaplineEnabled = false
local snaplineColor = Color3.new(1, 1, 1)

local function getScreenBottomCenter()
    local size = camera.ViewportSize
    return Vector2.new(size.X / 2, size.Y)
end

local function getScreenCenter()
    local size = camera.ViewportSize
    return Vector2.new(size.X / 2, size.Y / 2)
end

local function updateSnapline()
    if not snaplineEnabled then
        line.Visible = false
        return
    end

    local origin = getScreenBottomCenter()
    local screenCenter = getScreenCenter()
    local closestPlayer = nil
    local closestDistance = AIM_RADIUS

    for _, player in pairs(Players:GetPlayers()) do
        if player ~= localPlayer and player.Character and player.Character:FindFirstChild("Head") and player.Character:FindFirstChild("Humanoid") and player.Character.Humanoid.Health > 0 then
            local head = player.Character.Head
            local screenPos, onScreen = camera:WorldToViewportPoint(head.Position)

            if onScreen and screenPos.Z > 0 then
                local screenPoint = Vector2.new(screenPos.X, screenPos.Y)
                local distanceFromCenter = (screenPoint - screenCenter).Magnitude

                if distanceFromCenter <= closestDistance then
                    closestDistance = distanceFromCenter
                    closestPlayer = player
                end
            end
        end
    end

    if closestPlayer then
        local headPos, onScreen = camera:WorldToViewportPoint(closestPlayer.Character.Head.Position)
        if onScreen and headPos.Z > 0 then
            line.Visible = true
            line.Color = snaplineColor
            line.From = origin
            line.To = Vector2.new(headPos.X, headPos.Y)
        else
            line.Visible = false
        end
    else
        line.Visible = false
    end
end

RunService.RenderStepped:Connect(updateSnapline)

AimbotTab:CreateToggle({
    Name = "Enable Snaplines",
    CurrentValue = false,
    Flag = "AimSnaplineToggle",
    Callback = function(value)
        snaplineEnabled = value
        if not value then line.Visible = false end
    end
})

AimbotTab:CreateColorPicker({
    Name = "Snapline Color",
    Color = Color3.new(1, 1, 1),
    Flag = "SnaplineColorPicker",
    Callback = function(color)
        snaplineColor = color
    end
})

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: