Aimbot
Key RequiredUniversal

Aimbot

Universal ScriptKingterencezeh0altKingterencezeh0alt 72 views 178 executesUpdated Aug 27, 2026
Unrated
00
Lua Script•287 lines (7406 chars)
--// Private Test Aim Assist / Target Lock
--// Place this LocalScript in StarterPlayer > StarterPlayerScripts

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

local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

--// SETTINGS
local aimEnabled = false
local targetLockEnabled = false
local smoothness = 0.18
local maxDistance = 500
local targetPartName = "Head"

--// GUI
local gui = Instance.new("ScreenGui")
gui.Name = "PrivateAimTestGUI"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local main = Instance.new("Frame")
main.Size = UDim2.fromOffset(260, 210)
main.Position = UDim2.new(1, -280, 0.5, -105)
main.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
main.BorderSizePixel = 0
main.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = main

--// Title
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -20, 0, 35)
title.Position = UDim2.fromOffset(10, 8)
title.BackgroundTransparency = 1
title.Text = "AIM TEST"
title.TextColor3 = Color3.new(1, 1, 1)
title.TextSize = 20
title.Font = Enum.Font.GothamBold
title.Parent = main

--// Helper
local function makeButton(text, y)
	local button = Instance.new("TextButton")
	button.Size = UDim2.new(1, -30, 0, 42)
	button.Position = UDim2.fromOffset(15, y)
	button.BackgroundColor3 = Color3.fromRGB(45, 45, 52)
	button.TextColor3 = Color3.new(1, 1, 1)
	button.TextSize = 15
	button.Font = Enum.Font.GothamMedium
	button.Text = text
	button.AutoButtonColor = true
	button.Parent = main

	local c = Instance.new("UICorner")
	c.CornerRadius = UDim.new(0, 8)
	c.Parent = button

	return button
end

local aimButton = makeButton("Aim Assist: OFF", 50)
local lockButton = makeButton("Target Lock: OFF", 100)

--// Smoothness label
local smoothLabel = Instance.new("TextLabel")
smoothLabel.Size = UDim2.new(1, -30, 0, 25)
smoothLabel.Position = UDim2.fromOffset(15, 150)
smoothLabel.BackgroundTransparency = 1
smoothLabel.Text = "Smoothness: 18%"
smoothLabel.TextColor3 = Color3.new(1, 1, 1)
smoothLabel.TextSize = 14
smoothLabel.Font = Enum.Font.Gotham
smoothLabel.TextXAlignment = Enum.TextXAlignment.Left
smoothLabel.Parent = main

--// Slider
local slider = Instance.new("TextButton")
slider.Size = UDim2.new(1, -30, 0, 12)
slider.Position = UDim2.fromOffset(15, 180)
slider.BackgroundColor3 = Color3.fromRGB(55, 55, 62)
slider.Text = ""
slider.AutoButtonColor = false
slider.Parent = main

local sliderCorner = Instance.new("UICorner")
sliderCorner.CornerRadius = UDim.new(1, 0)
sliderCorner.Parent = slider

local fill = Instance.new("Frame")
fill.Size = UDim2.new(smoothness, 0, 1, 0)
fill.BackgroundColor3 = Color3.fromRGB(90, 150, 255)
fill.BorderSizePixel = 0
fill.Parent = slider

local fillCorner = Instance.new("UICorner")
fillCorner.CornerRadius = UDim.new(1, 0)
fillCorner.Parent = fill

--// Toggle buttons
aimButton.MouseButton1Click:Connect(function()
	aimEnabled = not aimEnabled

	if aimEnabled then
		aimButton.Text = "Aim Assist: ON"
		aimButton.BackgroundColor3 = Color3.fromRGB(45, 120, 70)
	else
		aimButton.Text = "Aim Assist: OFF"
		aimButton.BackgroundColor3 = Color3.fromRGB(45, 45, 52)
	end
end)

lockButton.MouseButton1Click:Connect(function()
	targetLockEnabled = not targetLockEnabled

	if targetLockEnabled then
		lockButton.Text = "Target Lock: ON"
		lockButton.BackgroundColor3 = Color3.fromRGB(45, 120, 70)
	else
		lockButton.Text = "Target Lock: OFF"
		lockButton.BackgroundColor3 = Color3.fromRGB(45, 45, 52)
	end
end)

--// Smoothness slider
local draggingSlider = false

local function updateSlider(x)
	local left = slider.AbsolutePosition.X
	local width = slider.AbsoluteSize.X

	local percent = math.clamp((x - left) / width, 0, 1)

	-- Prevent extremely weak camera movement
	smoothness = math.clamp(percent, 0.05, 1)

	fill.Size = UDim2.new(percent, 0, 1, 0)
	smoothLabel.Text = "Smoothness: " .. math.floor(smoothness * 100) .. "%"
end

slider.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		draggingSlider = true
		updateSlider(input.Position.X)
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if draggingSlider then
		if input.UserInputType == Enum.UserInputType.MouseMovement
			or input.UserInputType == Enum.UserInputType.Touch then

			updateSlider(input.Position.X)
		end
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		draggingSlider = false
	end
end)

--// Find closest target to screen center
local function getClosestTarget()
	local closestCharacter = nil
	local closestDistance = math.huge

	local viewport = camera.ViewportSize
	local screenCenter = Vector2.new(viewport.X / 2, viewport.Y / 2)

	for _, otherPlayer in ipairs(Players:GetPlayers()) do
		if otherPlayer ~= player then
			local character = otherPlayer.Character

			if character then
				local humanoid = character:FindFirstChildOfClass("Humanoid")
				local targetPart = character:FindFirstChild(targetPartName)

				if humanoid and humanoid.Health > 0 and targetPart then
					local screenPosition, visible =
						camera:WorldToViewportPoint(targetPart.Position)

					if visible and screenPosition.Z > 0 then
						local distance = (
							Vector2.new(screenPosition.X, screenPosition.Y)
							- screenCenter
						).Magnitude

						local worldDistance =
							(camera.CFrame.Position - targetPart.Position).Magnitude

						if distance < closestDistance
							and worldDistance <= maxDistance then

							closestDistance = distance
							closestCharacter = character
						end
					end
				end
			end
		end
	end

	return closestCharacter
end

--// Camera targeting
RunService.RenderStepped:Connect(function()
	if not aimEnabled and not targetLockEnabled then
		return
	end

	local target = getClosestTarget()

	if not target then
		return
	end

	local targetPart = target:FindFirstChild(targetPartName)

	if not targetPart then
		return
	end

	local cameraPosition = camera.CFrame.Position
	local desiredCFrame = CFrame.lookAt(
		cameraPosition,
		targetPart.Position
	)

	-- Smooth camera movement
	camera.CFrame = camera.CFrame:Lerp(
		desiredCFrame,
		smoothness
	)
end)

--// Make GUI draggable on PC and mobile
local dragging = false
local dragStart
local startPosition

title.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = true
		dragStart = input.Position
		startPosition = main.Position
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if not dragging then
		return
	end

	if input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch then

		local delta = input.Position - dragStart

		main.Position = UDim2.new(
			startPosition.X.Scale,
			startPosition.X.Offset + delta.X,
			startPosition.Y.Scale,
			startPosition.Y.Offset + delta.Y
		)
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		dragging = false
	end
end)

Features & Information

Well you can set the Smoothness

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts