
KeylessUniversal

local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
print("Aimlock script started")
if not UserInputService.TouchEnabled then
print("Not a mobile device, exiting")
return
end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AimlockGui"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
print("ScreenGui created")
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0.2, 0, 0.05, 0)
Frame.Position = UDim2.new(0.4, 0, 0.3, 0) -- Higher on screen (30% down)
Frame.BackgroundColor3 = Color3.new(0, 0, 0)
Frame.BackgroundTransparency = 0.5
Frame.BorderSizePixel = 0
Frame.Parent = ScreenGui
print("Frame created")
local UIGradient = Instance.new("UIGradient")
UIGradient.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(255, 0, 255))
}
UIGradient.Rotation = 45
UIGradient.Parent = Frame
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(1, 0, 1, 0)
Button.BackgroundTransparency = 1
Button.Text = "Aimlock"
Button.TextSize = 18
Button.TextColor3 = Color3.new(1, 1, 1)
Button.Font = Enum.Font.Code
Button.Parent = Frame
print("Button created")
spawn(function()
while true do
for hue = 0, 1, 0.01 do
Button.TextColor3 = Color3.fromHSV(hue, 1, 1)
wait(0.01)
end
end
end)
local selectedTarget = nil -- Stores target Model (player or NPC)
local locked = false
local highlight = Instance.new("Highlight")
highlight.FillColor = Color3.fromRGB(255, 0, 0)
highlight.FillTransparency = 0.5
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.OutlineTransparency = 0
local cameraDistance = 10 -- Distance behind player
local cameraUpOffset = 2 -- Upward offset (studs) for shiftlock
local cameraRightOffset = 1 -- Rightward offset (studs) for shiftlock
local dragging = false
local dragStart = nil
local startPos = nil
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.Touch then
local pos = input.Position
local guiPos = Frame.AbsolutePosition
local guiSize = Frame.AbsoluteSize
if pos.X >= guiPos.X and pos.X <= guiPos.X + guiSize.X and pos.Y >= guiPos.Y and pos.Y <= guiPos.Y + guiSize.Y then
dragging = true
dragStart = pos
startPos = Frame.Position
print("Dragging started")
else
local ray = Camera:ScreenPointToRay(pos.X, pos.Y)
local params = RaycastParams.new()
params.FilterDescendantsInstances = {LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()}
params.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(ray.Origin, ray.Direction * 1000, params)
if result and result.Instance then
local char = result.Instance:FindFirstAncestorOfClass("Model")
if char and char:FindFirstChild("Humanoid") and char:FindFirstChild("HumanoidRootPart") then
selectedTarget = char
local targetName = Players:GetPlayerFromCharacter(char) and Players:GetPlayerFromCharacter(char).Name or char.Name
Button.Text = "Target: " .. targetName
print("Selected target: " .. targetName)
wait(1)
Button.Text = "Aimlock"
end
end
end
end
end)
UserInputService.InputChanged:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.Touch and dragging then
local delta = input.Position - dragStart
local newPos = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
Frame.Position = newPos
end
end)
UserInputService.InputEnded:Connect(function(input, processed)
if input.UserInputType == Enum.UserInputType.Touch and dragging then
dragging = false
print("Dragging ended")
end
end)
Button.Activated:Connect(function()
if selectedTarget and selectedTarget:FindFirstChild("HumanoidRootPart") then
locked = not locked
print("Aimlock toggled: " .. tostring(locked))
if locked then
highlight.Parent = selectedTarget
Camera.CameraType = Enum.CameraType.Scriptable
print("Camera set to Scriptable")
else
highlight.Parent = nil
Camera.CameraType = Enum.CameraType.Custom
Camera.CameraSubject = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid")
print("Camera reset to Custom")
end
else
print("No valid target or HumanoidRootPart")
end
end)
RunService.RenderStepped:Connect(function()
if locked and selectedTarget and selectedTarget:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
local playerPos = LocalPlayer.Character.HumanoidRootPart.Position
local targetPos = selectedTarget.HumanoidRootPart.Position
local direction = (targetPos - playerPos).Unit
local rightVector = direction:Cross(Vector3.new(0, 1, 0)).Unit
local cameraPos = playerPos - (direction * cameraDistance) + Vector3.new(0, cameraUpOffset, 0) + (rightVector * cameraRightOffset)
Camera.CFrame = CFrame.new(cameraPos, targetPos)
end
end)
LocalPlayer.CharacterAdded:Connect(function()
if locked then
locked = false
highlight.Parent = nil
Camera.CameraType = Enum.CameraType.Custom
Camera.CameraSubject = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid")
print("Local player respawned, aimlock disabled")
end
end)
RunService.Heartbeat:Connect(function()
if locked and selectedTarget and not selectedTarget:FindFirstChild("HumanoidRootPart") then
locked = false
highlight.Parent = nil
Camera.CameraType = Enum.CameraType.Custom
Camera.CameraSubject = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid")
print("Target despawned, aimlock disabled")
end
end)



@mikhailwawa not good bro. Protect your script before people take it.
@JacksonShowcaser I'm fine thank you I actually want people to use this and remix it all they want it's open source for a reason
this script is fire
Please script for pvp