Version / Update: v1.0.0
- Download / Script Link
- -- LocalScript in StarterPlayerScripts
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
local lockedTarget = nil
local lockOnKey = Enum.KeyCode.Z
local maxLockDistance = 100
local enemyFolder = workspace:WaitForChild("Live")
-- =====================
-- GUI SETUP
-- =====================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "LockOnGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player.PlayerGui
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 180, 0, 50)
frame.Position = UDim2.new(0.5, -90, 0.08, 0)
frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
frame.BackgroundTransparency = 0.3
frame.BorderSizePixel = 0
frame.Parent = screenGui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = frame
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, 0, 0.5, 0)
statusLabel.Position = UDim2.new(0, 0, 0, 0)
statusLabel.BackgroundTransparency = 1
statusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
statusLabel.Text = "🔴 LOCK-ON: OFF"
statusLabel.TextScaled = true
statusLabel.Font = Enum.Font.GothamBold
statusLabel.Parent = frame
local targetLabel = Instance.new("TextLabel")
targetLabel.Size = UDim2.new(1, 0, 0.5, 0)
targetLabel.Position = UDim2.new(0, 0, 0.5, 0)
targetLabel.BackgroundTransparency = 1
targetLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
targetLabel.Text = ""
targetLabel.TextScaled = true
targetLabel.Font = Enum.Font.Gotham
targetLabel.Parent = frame
local function setGuiLocked(target)
if target then
statusLabel.Text = "🟢 LOCK-ON: ON"
statusLabel.TextColor3 = Color3.fromRGB(80, 255, 80)
targetLabel.Text = "Target: " .. target.Name
else
statusLabel.Text = "🔴 LOCK-ON: OFF"
statusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
targetLabel.Text = ""
end
end
-- =====================
-- LOCK-ON LOGIC
-- =====================
local function getClosestEnemy()
local character = player.Character
if not character then return nil end
local hrp = character:FindFirstChild("HumanoidRootPart")
if not hrp then return nil end
local closest = nil
local closestDist = maxLockDistance
for _, enemy in ipairs(enemyFolder:GetChildren()) do
-- Skip the local player's own character
if enemy == character then continue end
-- Skip teammates
local enemyPlayer = Players:GetPlayerFromCharacter(enemy)
if enemyPlayer and enemyPlayer.Team == player.Team then continue end
local enemyHRP = enemy:FindFirstChild("HumanoidRootPart")
local humanoid = enemy:FindFirstChild("Humanoid")
if enemyHRP and humanoid and humanoid.Health > 0 then
local dist = (hrp.Position - enemyHRP.Position).Magnitude
if dist < closestDist then
closestDist = dist
closest = enemy
end
end
end
return closest
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == lockOnKey then
if lockedTarget then
lockedTarget = nil
setGuiLocked(nil)
else
lockedTarget = getClosestEnemy()
setGuiLocked(lockedTarget)
end
end
end)
RunService.RenderStepped:Connect(function()
if not lockedTarget then return end
local character = player.Character
if not character then return end
local hrp = character:FindFirstChild("HumanoidRootPart")
local enemyHRP = lockedTarget:FindFirstChild("HumanoidRootPart")
local humanoid = lockedTarget:FindFirstChild("Humanoid")
if not enemyHRP or not humanoid or humanoid.Health <= 0 then
lockedTarget = nil
setGuiLocked(nil)
return
end
local dist = (hrp.Position - enemyHRP.Position).Magnitude
if dist > maxLockDistance then
lockedTarget = nil
setGuiLocked(nil)
return
end
local targetPos = enemyHRP.Position + Vector3.new(0, 1.5, 0)
local camPos = camera.CFrame.Position
camera.CFrame = CFrame.new(camPos, targetPos)
end)[ View More ]
Press Z to lock on, made by cladue.ai what a awesome AI!!!!!!