Universal Aim Lock / Char Lock
Key RequiredUniversal

Universal Aim Lock / Char Lock

Universal Scriptshiroshiroshiroshiro 72 views 11 executesUpdated Oct 3, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•305 lines (11155 chars)
local P = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TS = game:GetService("TweenService")

local plr = P.LocalPlayer

local offBg = Color3.fromRGB(15, 15, 20)
local onBg = Color3.fromRGB(20, 20, 30)
local offLine = Color3.fromRGB(60, 60, 80)
local onLine = Color3.fromRGB(120, 200, 255)
local ink = Color3.fromRGB(200, 220, 255)

local ui = Instance.new("ScreenGui")
ui.Name = "LockUI"
ui.ResetOnSpawn = false
ui.IgnoreGuiInset = true
ui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
pcall(function() ui.Parent = game:GetService("CoreGui") end)
if not ui.Parent then ui.Parent = plr:WaitForChild("PlayerGui") end

local popup = Instance.new("Frame")
popup.Name = "WelcomePopup"
popup.Size = UDim2.new(0, 380, 0, 200)
popup.Position = UDim2.new(0.5, -190, 0.5, -100)
popup.BackgroundColor3 = Color3.fromRGB(8, 10, 18)
popup.BorderSizePixel = 0
popup.ZIndex = 100
popup.Parent = ui
Instance.new("UICorner", popup).CornerRadius = UDim.new(0, 16)
local popupStroke = Instance.new("UIStroke", popup)
popupStroke.Color = Color3.fromRGB(80, 160, 255)
popupStroke.Thickness = 1.5
local popupGrad = Instance.new("UIGradient", popup)
popupGrad.Color = ColorSequence.new({
	ColorSequenceKeypoint.new(0, Color3.fromRGB(8, 10, 18)),
	ColorSequenceKeypoint.new(1, Color3.fromRGB(14, 18, 32))
})
popupGrad.Rotation = 135

local popupTitle = Instance.new("TextLabel", popup)
popupTitle.Size = UDim2.new(1, -30, 0, 30)
popupTitle.Position = UDim2.new(0, 15, 0, 14)
popupTitle.BackgroundTransparency = 1
popupTitle.Text = "hello hi this is made by"
popupTitle.TextColor3 = Color3.fromRGB(180, 220, 255)
popupTitle.Font = Enum.Font.GothamBold
popupTitle.TextSize = 18
popupTitle.TextXAlignment = Enum.TextXAlignment.Center
popupTitle.ZIndex = 101

local authorLabel = Instance.new("TextLabel", popup)
authorLabel.Size = UDim2.new(1, -30, 0, 36)
authorLabel.Position = UDim2.new(0, 15, 0, 46)
authorLabel.BackgroundTransparency = 1
authorLabel.Text = "Kooons"
authorLabel.TextColor3 = Color3.fromRGB(120, 200, 255)
authorLabel.Font = Enum.Font.GothamBlack
authorLabel.TextSize = 28
authorLabel.TextXAlignment = Enum.TextXAlignment.Center
authorLabel.ZIndex = 101
local authorGrad = Instance.new("UIGradient", authorLabel)
authorGrad.Color = ColorSequence.new({
	ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 200, 255)),
	ColorSequenceKeypoint.new(0.5, Color3.fromRGB(180, 230, 255)),
	ColorSequenceKeypoint.new(1, Color3.fromRGB(80, 160, 255))
})
authorGrad.Rotation = 90

local divider = Instance.new("Frame", popup)
divider.Size = UDim2.new(0.7, 0, 0, 1)
divider.Position = UDim2.new(0.15, 0, 0, 94)
divider.BackgroundColor3 = Color3.fromRGB(60, 120, 200)
divider.BorderSizePixel = 0
divider.ZIndex = 101
local divGrad = Instance.new("UIGradient", divider)
divGrad.Color = ColorSequence.new({
	ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 0, 0)),
	ColorSequenceKeypoint.new(0.5, Color3.fromRGB(100, 180, 255)),
	ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
})

local okBtn = Instance.new("TextButton", popup)
okBtn.Size = UDim2.new(0, 120, 0, 36)
okBtn.Position = UDim2.new(0.5, -60, 1, -54)
okBtn.BackgroundColor3 = Color3.fromRGB(20, 60, 120)
okBtn.BorderSizePixel = 0
okBtn.Text = "LAUNCH"
okBtn.TextColor3 = Color3.fromRGB(180, 220, 255)
okBtn.Font = Enum.Font.GothamBold
okBtn.TextSize = 14
okBtn.AutoButtonColor = false
okBtn.ZIndex = 101
Instance.new("UICorner", okBtn).CornerRadius = UDim.new(0, 10)
local okStroke = Instance.new("UIStroke", okBtn)
okStroke.Color = Color3.fromRGB(80, 160, 255)
okStroke.Thickness = 1

local panel = Instance.new("Frame")
panel.Name = "MainPanel"
panel.Size = UDim2.new(0, 220, 0, 160)
panel.Position = UDim2.new(0, 16, 0.5, -80)
panel.BackgroundColor3 = Color3.fromRGB(8, 10, 18)
panel.BorderSizePixel = 0
panel.ZIndex = 10
panel.Visible = false
panel.Parent = ui
Instance.new("UICorner", panel).CornerRadius = UDim.new(0, 16)
local panelStroke = Instance.new("UIStroke", panel)
panelStroke.Color = Color3.fromRGB(80, 160, 255)
panelStroke.Thickness = 1.5
local panelGrad = Instance.new("UIGradient", panel)
panelGrad.Color = ColorSequence.new({
	ColorSequenceKeypoint.new(0, Color3.fromRGB(10, 13, 24)),
	ColorSequenceKeypoint.new(1, Color3.fromRGB(6, 8, 16))
})
panelGrad.Rotation = 135

local panelHeader = Instance.new("Frame", panel)
panelHeader.Size = UDim2.new(1, 0, 0, 42)
panelHeader.BackgroundColor3 = Color3.fromRGB(12, 16, 30)
panelHeader.BorderSizePixel = 0
panelHeader.ZIndex = 11
Instance.new("UICorner", panelHeader).CornerRadius = UDim.new(0, 16)
local panelHeaderFix = Instance.new("Frame", panelHeader)
panelHeaderFix.Size = UDim2.new(1, 0, 0, 16)
panelHeaderFix.Position = UDim2.new(0, 0, 1, -16)
panelHeaderFix.BackgroundColor3 = Color3.fromRGB(12, 16, 30)
panelHeaderFix.BorderSizePixel = 0
panelHeaderFix.ZIndex = 11

local panelTitle = Instance.new("TextLabel", panelHeader)
panelTitle.Size = UDim2.new(1, -16, 1, 0)
panelTitle.Position = UDim2.new(0, 12, 0, 0)
panelTitle.BackgroundTransparency = 1
panelTitle.Text = "Kooons"
panelTitle.TextColor3 = Color3.fromRGB(120, 200, 255)
panelTitle.Font = Enum.Font.GothamBlack
panelTitle.TextSize = 16
panelTitle.TextXAlignment = Enum.TextXAlignment.Left
panelTitle.ZIndex = 12

local panelSub = Instance.new("TextLabel", panelHeader)
panelSub.Size = UDim2.new(1, -16, 1, 0)
panelSub.Position = UDim2.new(0, 12, 0, 0)
panelSub.BackgroundTransparency = 1
panelSub.Text = "aimlock"
panelSub.TextColor3 = Color3.fromRGB(60, 100, 160)
panelSub.Font = Enum.Font.Gotham
panelSub.TextSize = 11
panelSub.TextXAlignment = Enum.TextXAlignment.Right
panelSub.ZIndex = 12

local panelDivider = Instance.new("Frame", panel)
panelDivider.Size = UDim2.new(1, 0, 0, 1)
panelDivider.Position = UDim2.new(0, 0, 0, 42)
panelDivider.BackgroundColor3 = Color3.fromRGB(30, 50, 100)
panelDivider.BorderSizePixel = 0
panelDivider.ZIndex = 11

local madeByLabel = Instance.new("TextLabel", panel)
madeByLabel.Size = UDim2.new(1, 0, 0, 18)
madeByLabel.Position = UDim2.new(0, 0, 1, -20)
madeByLabel.BackgroundTransparency = 1
madeByLabel.Text = "made by Kooons"
madeByLabel.TextColor3 = Color3.fromRGB(50, 90, 150)
madeByLabel.Font = Enum.Font.Gotham
madeByLabel.TextSize = 11
madeByLabel.TextXAlignment = Enum.TextXAlignment.Center
madeByLabel.ZIndex = 12

local panelDrag = false
local panelDragStart, panelStartPos
panelHeader.InputBegan:Connect(function(i)
	if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
		panelDrag = true
		panelDragStart = i.Position
		panelStartPos = panel.Position
	end
end)
UIS.InputChanged:Connect(function(i)
	if panelDrag and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
		local d = i.Position - panelDragStart
		panel.Position = UDim2.new(panelStartPos.X.Scale, panelStartPos.X.Offset + d.X, panelStartPos.Y.Scale, panelStartPos.Y.Offset + d.Y)
	end
end)
UIS.InputEnded:Connect(function(i)
	if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
		panelDrag = false
	end
end)

local aimBtn, aimStroke, charBtn, charStroke
local aimLoaded, charLoaded = false, false
local aimModule, charModule

local function setVisual(btn, stroke, state)
	if not btn or not stroke then return end
	TS:Create(btn, TweenInfo.new(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
		{BackgroundColor3 = state and onBg or offBg}):Play()
	TS:Create(stroke, TweenInfo.new(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
		{Color = state and onLine or offLine}):Play()
end

local function makeButton(name, text, y, callback)
	local btn = Instance.new("Frame", ui)
	btn.Name = name
	btn.Size = UDim2.fromOffset(100, 42)
	btn.Position = UDim2.new(1, -116, 1, y)
	btn.BackgroundColor3 = offBg
	btn.BorderSizePixel = 0
	btn.Active = true
	btn.ZIndex = 20
	Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 14)
	local stroke = Instance.new("UIStroke", btn)
	stroke.Thickness = 1.5
	stroke.Color = offLine
	local grd = Instance.new("UIGradient", btn)
	grd.Color = ColorSequence.new({
		ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 30, 50)),
		ColorSequenceKeypoint.new(1, Color3.fromRGB(10, 12, 22))
	})
	grd.Rotation = 135
	local label = Instance.new("TextLabel", btn)
	label.Size = UDim2.fromScale(1, 1)
	label.BackgroundTransparency = 1
	label.Text = text
	label.TextColor3 = ink
	label.TextSize = 13
	label.Font = Enum.Font.GothamBold
	label.ZIndex = 21
	local us = Instance.new("UIScale", btn)

	local held, dragStart, startPos, conn
	local moved = false
	local function isPress(i)
		return i.UserInputType == Enum.UserInputType.Touch or i.UserInputType == Enum.UserInputType.MouseButton1
	end
	btn.InputBegan:Connect(function(i)
		if not isPress(i) then return end
		held = i dragStart = i.Position startPos = btn.Position moved = false
		if conn then conn:Disconnect() end
		conn = UIS.InputChanged:Connect(function(x)
			if x ~= held and x.UserInputType ~= Enum.UserInputType.MouseMovement then return end
			local d = x.Position - dragStart
			if d.Magnitude > 8 then moved = true end
			if moved then
				btn.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
			end
		end)
	end)
	btn.InputEnded:Connect(function(i)
		if not isPress(i) then return end
		if conn then conn:Disconnect() conn = nil end
		if not moved then
			TS:Create(us, TweenInfo.new(0.08, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Scale = 0.90}):Play()
			task.delay(0.08, function()
				if us.Parent then
					TS:Create(us, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Scale = 1}):Play()
				end
			end)
			callback()
		end
		held = nil dragStart = nil startPos = nil moved = false
	end)
	return btn, stroke
end

local function startPanel()
	panel.Visible = true

	aimBtn, aimStroke = makeButton("Aimlock", "Aimlock", -148, function()
		if not aimLoaded then
			aimLoaded = true
			aimModule = loadstring(game:HttpGet("https://raw.githubusercontent.com/scripthaxz/AIM/refs/heads/main/aimlock.lua"))()
		else
			if aimModule and aimModule.toggle then aimModule.toggle() end
		end
		setVisual(aimBtn, aimStroke, aimModule and aimModule.isOn and aimModule.isOn())
	end)

	charBtn, charStroke = makeButton("Charlock", "Charlock", -98, function()
		if not charLoaded then
			charLoaded = true
			charModule = loadstring(game:HttpGet("https://raw.githubusercontent.com/scripthaxz/AIM/refs/heads/main/charlock.lua"))()
		else
			if charModule and charModule.toggle then charModule.toggle() end
		end
		setVisual(charBtn, charStroke, charModule and charModule.isOn and charModule.isOn())
	end)
end

local loaded = false
okBtn.MouseEnter:Connect(function()
	TS:Create(okBtn, TweenInfo.new(0.12, Enum.EasingStyle.Quad), {BackgroundColor3 = Color3.fromRGB(30, 90, 180)}):Play()
end)
okBtn.MouseLeave:Connect(function()
	TS:Create(okBtn, TweenInfo.new(0.12, Enum.EasingStyle.Quad), {BackgroundColor3 = Color3.fromRGB(20, 60, 120)}):Play()
end)
okBtn.MouseButton1Click:Connect(function()
	if loaded then return end
	loaded = true
	popup:Destroy()
	startPanel()
	print("loaded bro")
end)

Features & Information

ambot
#aimbot

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts