OPEN SOURCED Aimlock and ESP FOR
Key Required

OPEN SOURCED Aimlock and ESP FOR

towny994324y994324 2.8K views 172 executesUpdated Oct 4, 2025
5.0/ 5(2 votes)
20100% Positive
Lua Script•404 lines (13909 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer

-- silly gui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FollowPlayerUI"
screenGui.Parent = game:GetService("CoreGui") -- gui

-- Made by chase thingy buton
local madeByLabel = Instance.new("TextLabel")
madeByLabel.Name = "MadeByLabel"
madeByLabel.Size = UDim2.new(0.4, 0, 0.1, 0)
madeByLabel.Position = UDim2.new(0.3, 0, 0.45, 0)
madeByLabel.Text = "made by chase :3"
madeByLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
madeByLabel.Font = Enum.Font.GothamBold -- awesome font i lieik
madeByLabel.TextSize = 48
madeByLabel.TextScaled = true
madeByLabel.BackgroundTransparency = 0.4
madeByLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
madeByLabel.TextStrokeTransparency = 0.8
madeByLabel.TextStrokeColor3 = Color3.fromRGB(255, 255, 255)
madeByLabel.Parent = screenGui

-- uigradi
local gradient = Instance.new("UIGradient")
gradient.Parent = madeByLabel
gradient.Color = ColorSequence.new({
    ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 255)),
    ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 255, 255)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 255))
})
gradient.Rotation = 45

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0.4, 0)
corner.Parent = madeByLabel

local shadow = Instance.new("Frame")
shadow.Name = "Shadow"
shadow.Size = madeByLabel.Size + UDim2.new(0, 15, 0, 15)
shadow.Position = madeByLabel.Position + UDim2.new(0, 7, 0, 7)
shadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
shadow.BackgroundTransparency = 0.5
shadow.ZIndex = madeByLabel.ZIndex - 1
shadow.Parent = screenGui

local shadowCorner = Instance.new("UICorner")
shadowCorner.CornerRadius = UDim.new(0.4, 0)
shadowCorner.Parent = shadow

-- tween/easing
local tweenService = game:GetService("TweenService")
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out, 0, false, 0)
local goal = {Size = UDim2.new(0.4, 0, 0.1, 0), TextTransparency = 0}
local tween = tweenService:Create(madeByLabel, tweenInfo, goal)
tween:Play()


local fadeOutTweenInfo = TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, 0, false, 0)
local fadeOutGoal = {TextTransparency = 1}
local fadeOutTween = tweenService:Create(madeByLabel, fadeOutTweenInfo, fadeOutGoal)
local fadeOutGoalBackground = {BackgroundTransparency = 1}
local fadeOutTweenBackground = tweenService:Create(madeByLabel, fadeOutTweenInfo, fadeOutGoalBackground)

wait(1)
fadeOutTween:Play()
fadeOutTweenBackground:Play()

fadeOutTween.Completed:Connect(function()
    madeByLabel:Destroy()
end)

fadeOutTweenBackground.Completed:Connect(function()
    shadow:Destroy()
end)

-- button to follow head
local followButton = Instance.new("TextButton")
followButton.Name = "FollowButton"
followButton.Size = UDim2.new(0.2, 0, 0.1, 0)
followButton.Position = UDim2.new(0.01, 0, 0.85, 0)
followButton.Text = "pewww :333"
followButton.TextColor3 = Color3.fromRGB(255, 255, 255)
followButton.Font = Enum.Font.GothamBold -- rahhh i love this fony
followButton.TextScaled = true
followButton.TextStrokeTransparency = 0.5
followButton.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
followButton.Parent = screenGui

-- wild guess but ui gradi agin
local gradientButton = Instance.new("UIGradient")
gradientButton.Parent = followButton
gradientButton.Color = ColorSequence.new({
    ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 255)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 75, 135))
})
gradientButton.Rotation = 45

local cornerButton = Instance.new("UICorner")
cornerButton.CornerRadius = UDim.new(0.3, 0)
cornerButton.Parent = followButton

local shadowButton = Instance.new("Frame")
shadowButton.Name = "Shadow"
shadowButton.Size = followButton.Size + UDim2.new(0, 10, 0, 10)
shadowButton.Position = followButton.Position + UDim2.new(0, 5, 0, 5)
shadowButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
shadowButton.BackgroundTransparency = 0.5
shadowButton.ZIndex = followButton.ZIndex - 1
shadowButton.Parent = screenGui

local shadowButtonCorner = Instance.new("UICorner")
shadowButtonCorner.CornerRadius = UDim.new(0.3, 0)
shadowButtonCorner.Parent = shadowButton

-- hardest line of code ever
local isFollowingEnabled = false

followButton.MouseButton1Click:Connect(function()
    isFollowingEnabled = not isFollowingEnabled
    if isFollowingEnabled then
        followButton.Text = "must have bin the wind....."
        followButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0) -- color changeeerrrr
    else
        followButton.Text = "pewww :333"
        followButton.BackgroundColor3 = Color3.fromRGB(0, 150, 255) -- ^^^^^^
    end
end)

-- checkrightmouse
local isRightMouseHeld = false
local targetPlayer = nil

-- this took me 2 hours because im sped
UserInputService.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton2 and isFollowingEnabled then
        isRightMouseHeld = true

        -- blah blach bluh bluh bluh vluh bluh bluh
        local closestPlayer = nil
        local closestDistance = math.huge

        for _, player in pairs(Players:GetPlayers()) do
            if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Head") then
                local head = player.Character.Head
                local headScreenPosition, onScreen = Camera:WorldToScreenPoint(head.Position)

                if onScreen then
                    local mousePosition = UserInputService:GetMouseLocation()
                    local distance = (Vector2.new(headScreenPosition.X, headScreenPosition.Y) - mousePosition).Magnitude
                    if distance < closestDistance then
                        closestDistance = distance
                        closestPlayer = player
                    end
                end
            end
        end

        targetPlayer = closestPlayer
    end
end)

-- lockonkeybind :3 (can change)
UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton2 then
        isRightMouseHeld = false
        targetPlayer = nil
    end
end)

-- renderstep
game:GetService("RunService").RenderStepped:Connect(function()
    if isRightMouseHeld and targetPlayer and targetPlayer.Character then
        local head = targetPlayer.Character:FindFirstChild("Head")
        if head then
            Camera.CFrame = CFrame.new(Camera.CFrame.Position, head.Position)
        else
            targetPlayer = nil
        end
    end
end)
-- i spent like 2 days on this wehha










-- eeeeesoppp
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera

-- Cache money
local LocalPlayer = Players.LocalPlayer
local LocalCharacter = LocalPlayer and LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local LocalHumanoidRootPart = LocalCharacter:WaitForChild("HumanoidRootPart")

local ESP = {}
ESP.__index = ESP
--ramadeapakak pala
function ESP.new()
    local self = setmetatable({}, ESP)
    self.espCache = {}
    return self
end

function ESP:createDrawing(type, properties)
    local drawing = Drawing.new(type)
    for prop, val in pairs(properties) do
        drawing[prop] = val
    end
    return drawing
end

function ESP:createComponents()
    return {
        Box = self:createDrawing("Square", {
            Thickness = 1,
            Transparency = 1,
            Color = Color3.fromRGB(255, 255, 255),
            Filled = false
        }),
        DistanceLabel = self:createDrawing("Text", {
            Size = 10,
            Center = true,
            Outline = true,
            Color = Color3.fromRGB(255, 255, 255),
            OutlineColor = Color3.fromRGB(0, 0, 0)
        }),
        NameLabel = self:createDrawing("Text", {
            Size = 18,
            Center = true,
            Outline = true,
            Color = Color3.fromRGB(255, 255, 255),
            OutlineColor = Color3.fromRGB(0, 0, 0)
        }),
        HealthBar = {
            Outline = self:createDrawing("Square", {
                Thickness = 1,
                Transparency = 1,
                Color = Color3.fromRGB(0, 0, 0),
                Filled = false
            }),
            Health = self:createDrawing("Square", {
                Thickness = 1,
                Transparency = 1,
Color = Color3.fromRGB(0, 255, 0),
                Filled = true
            })
        },
        ItemLabel = self:createDrawing("Text", {
            Size = 18,
            Center = true,
            Outline = true,
            Color = Color3.fromRGB(255, 255, 255),
            OutlineColor = Color3.fromRGB(0, 0, 0)
        }),
        SkeletonLines = {}
    }
end

local bodyConnections = {
    R15 = {
        {"Head", "UpperTorso"},
        {"UpperTorso", "LowerTorso"},
        {"LowerTorso", "LeftUpperLeg"},
        {"LowerTorso", "RightUpperLeg"},
        {"LeftUpperLeg", "LeftLowerLeg"},
        {"LeftLowerLeg", "LeftFoot"},
        {"RightUpperLeg", "RightLowerLeg"},
        {"RightLowerLeg", "RightFoot"},
        {"UpperTorso", "LeftUpperArm"},
        {"UpperTorso", "RightUpperArm"},
        {"LeftUpperArm", "LeftLowerArm"},
        {"LeftLowerArm", "LeftHand"},
        {"RightUpperArm", "RightLowerArm"},
        {"RightLowerArm", "RightHand"}
    },
    R6 = {
        {"Head", "Torso"},
        {"Torso", "Left Arm"},
        {"Torso", "Right Arm"},
        {"Torso", "Left Leg"},
        {"Torso", "Right Leg"}
    }
}

function ESP:updateComponents(components, character, player)
    local hrp = character:FindFirstChild("HumanoidRootPart")
    local humanoid = character:FindFirstChild("Humanoid")

    if hrp and humanoid then
        local hrpPosition, onScreen = Camera:WorldToViewportPoint(hrp.Position)
        local mousePosition = Camera:WorldToViewportPoint(LocalPlayer:GetMouse().Hit.p)

        if onScreen then
            local screenWidth, screenHeight = Camera.ViewportSize.X, Camera.ViewportSize.Y
            local factor = 1 / (hrpPosition.Z * math.tan(math.rad(Camera.FieldOfView * 0.5)) * 2) * 100
            local width, height = math.floor(screenHeight / 25 * factor), math.floor(screenWidth / 27 * factor)
            local distanceFromPlayer = math.floor((LocalHumanoidRootPart.Position - hrp.Position).magnitude)

            -- distance labe
            components.DistanceLabel.Text = string.format("[%dM]", distanceFromPlayer)
            components.DistanceLabel.Position = Vector2.new(hrpPosition.X, hrpPosition.Y + height / 2 + 15)
            components.DistanceLabel.Visible = true

            -- bel iykyk
            components.NameLabel.Text = string.format("[%s]", player.DisplayName)
            components.NameLabel.Position = Vector2.new(hrpPosition.X, hrpPosition.Y - height / 2 - 15)
            components.NameLabel.Visible = true

            -- SKETLETON SNO SPEOOKY
            local connections = bodyConnections[humanoid.RigType.Name] or {}
            for _, connection in ipairs(connections) do
                local partA = character:FindFirstChild(connection[1])
                local partB = character:FindFirstChild(connection[2])
                if partA and partB then
                    local line = components.SkeletonLines[connection[1] .. "-" .. connection[2]] or self:createDrawing("Line", {Thickness = 1, Color = Color3.fromRGB(255, 255, 255)})
                    local posA, onScreenA = Camera:WorldToViewportPoint(partA.Position)
                    local posB, onScreenB = Camera:WorldToViewportPoint(partB.Position)
                    if onScreenA and onScreenB then
                        line.From = Vector2.new(posA.X, posA.Y)
                        line.To = Vector2.new(posB.X, posB.Y)
                        line.Visible = true
                        components.SkeletonLines[connection[1] .. "-" .. connection[2]] = line
                    else
                        line.Visible = false
                    end
                end
            end
        else
            self:hideComponents(components)
        end
    else
        self:hideComponents(components)
    end
end
--vdv z neba privet
function ESP:hideComponents(components)
    components.Box.Visible = false
    components.DistanceLabel.Visible = false
    components.NameLabel.Visible = false

    for _, line in pairs(components.SkeletonLines) do
        line.Visible = false
    end
end
--t ralealala
function ESP:removeEsp(player)
    local components = self.espCache[player]
    if components then
        components.Box:Remove()
        components.DistanceLabel:Remove()
        components.NameLabel:Remove()
        for _, line in pairs(components.SkeletonLines) do
            line:Remove()
        end
        self.espCache[player] = nil
    end
end

local espInstance = ESP.new()
--sillyism silly sill
RunService.RenderStepped:Connect(function()
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer then
            local character = player.Character
            if character then
                if not espInstance.espCache[player] then
                    espInstance.espCache[player] = espInstance:createComponents()
                end
                espInstance:updateComponents(espInstance.espCache[player], character, player)
            else
                if espInstance.espCache[player] then
                    espInstance:hideComponents(espInstance.espCache[player])
                end
            end
        end
    end
end)
-- im so sile!!
Players.PlayerRemoving:Connect(function(player)
    espInstance:removeEsp(player)
end)
-- the :33 







-- if your reading this dont mind the labels i was bored

Features & Information

Title says it all.
#aimbot#esp#infyeild

Community Comments (4)

UnverifedUnverifedOct 4, 2025

first aimlock that i seen work

Replying to @Unverifed
y994324y994324Oct 4, 2025

@xyclol simple and *ty. but works.

spider_gogospider_gogoDec 2, 2025

very good

spider_gogospider_gogoDec 2, 2025

and it works for xeno

More Scripts for town