Aimbot
Key RequiredUniversal

Aimbot

Universal Scriptchayanmungar5chayanmungar5 2.6K views 322 executesUpdated Nov 16, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Scriptβ€’365 lines (12323 chars)
-- FULL AIMBOT SHOOTER - Single LocalScript (Key + Draggable GUIs + Fly + Noclip + AimLock + Team-only + Fire)
-- Paste into StarterPlayerScripts. (Create a RemoteEvent named "AimbotRequest" in ReplicatedStorage if you want the FIRE button to call server.)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

-- CONFIG
local KEY = "kianX2025"
local AIM_RANGE = 350
local AIM_SPEED = 12 -- higher -> snappier
local FIRE_COOLDOWN = 0.18

-- Helper: robust ScreenGui parent creation
local function makeScreenGui(name, order)
	local g = Instance.new("ScreenGui")
	g.Name = name
	g.ResetOnSpawn = false
	g.IgnoreGuiInset = true
	g.DisplayOrder = order or 1
	g.Parent = PlayerGui
	return g
end

-- Draggable helper (works for mouse & touch)
local function makeDraggable(frame, titleHeight)
	local dragging, dragInput, dragStart, startPos = false, nil, nil, frame.Position
	local function update(input)
		local delta = input.Position - dragStart
		frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
		                            startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end

	frame.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			local p = input.Position or UserInputService:GetMouseLocation()
			local abs = frame.AbsolutePosition
			local size = frame.AbsoluteSize
			if p.X >= abs.X and p.X <= abs.X + size.X and p.Y >= abs.Y and p.Y <= abs.Y + (titleHeight or 40) then
				dragging = true
				dragStart = input.Position
				startPos = frame.Position
				dragInput = input
				input.Changed:Connect(function()
					if input.UserInputState == Enum.UserInputState.End then
						dragging = false
						dragInput = nil
					end
				end)
			end
		end
	end)

	frame.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
			dragInput = input
		end
	end)

	UserInputService.InputChanged:Connect(function(input)
		if input == dragInput and dragging and dragStart then
			update(input)
		end
	end)
end

-- ===== KEY GUI =====
local keyGui = makeScreenGui("KeyEntryGUI", 10000)
local keyFrame = Instance.new("Frame", keyGui)
keyFrame.Size = UDim2.new(0, 340, 0, 160)
keyFrame.Position = UDim2.new(0.5, -170, 0.5, -80)
keyFrame.BackgroundColor3 = Color3.fromRGB(30,30,30)
keyFrame.BorderSizePixel = 0
makeDraggable(keyFrame, 40)

local keyTitle = Instance.new("TextLabel", keyFrame)
keyTitle.Size = UDim2.new(1,0,0,36)
keyTitle.Position = UDim2.new(0,0,0,6)
keyTitle.BackgroundTransparency = 1
keyTitle.Font = Enum.Font.SourceSansBold
keyTitle.TextSize = 18
keyTitle.TextColor3 = Color3.fromRGB(240,240,240)
keyTitle.Text = "Enter Key to unlock GUI"

local keyBox = Instance.new("TextBox", keyFrame)
keyBox.Size = UDim2.new(0.84,0,0,48)
keyBox.Position = UDim2.new(0.08,0,0,48)
keyBox.PlaceholderText = "Type key here..."
keyBox.Font = Enum.Font.SourceSans
keyBox.TextSize = 18
keyBox.ClearTextOnFocus = false
keyBox.Text = ""
keyBox.BackgroundColor3 = Color3.fromRGB(245,245,245)
keyBox.TextColor3 = Color3.fromRGB(0,0,0)

local infoLabel = Instance.new("TextLabel", keyFrame)
infoLabel.Size = UDim2.new(1,0,0,24)
infoLabel.Position = UDim2.new(0,0,0,110)
infoLabel.BackgroundTransparency = 1
infoLabel.Font = Enum.Font.SourceSansBold
infoLabel.TextSize = 16
infoLabel.TextColor3 = Color3.fromRGB(255,80,80)
infoLabel.Text = ""

local confirmBtn = Instance.new("TextButton", keyFrame)
confirmBtn.Size = UDim2.new(0.5,0,0,32)
confirmBtn.Position = UDim2.new(0.25,0,0,122)
confirmBtn.Text = "Confirm"
confirmBtn.Font = Enum.Font.SourceSansBold
confirmBtn.TextSize = 16
confirmBtn.BackgroundColor3 = Color3.fromRGB(60,60,60)
confirmBtn.TextColor3 = Color3.fromRGB(255,255,255)

-- ===== MAIN GUI =====
local mainGui = makeScreenGui("AimbotGUI", 10001)
mainGui.Enabled = false

local mainFrame = Instance.new("Frame", mainGui)
mainFrame.Size = UDim2.new(0, 380, 0, 340)
mainFrame.Position = UDim2.new(0.18, 0, 0.12, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(28,28,28)
mainFrame.BorderSizePixel = 0
makeDraggable(mainFrame, 44)

local header = Instance.new("TextLabel", mainFrame)
header.Size = UDim2.new(1,0,0,38)
header.Position = UDim2.new(0,0,0,0)
header.BackgroundColor3 = Color3.fromRGB(42,42,42)
header.Text = "Made by @chayan7289 Enjoy."
header.Font = Enum.Font.SourceSansBold
header.TextSize = 16
header.TextColor3 = Color3.fromRGB(240,240,240)

local title = Instance.new("TextLabel", mainFrame)
title.Size = UDim2.new(1,0,0,44)
title.Position = UDim2.new(0,0,0,38)
title.BackgroundTransparency = 1
title.Text = "Aimbot Shooter (Drag here)"
title.Font = Enum.Font.SourceSansBold
title.TextSize = 16
title.TextColor3 = Color3.fromRGB(230,230,230)

local holder = Instance.new("Frame", mainFrame)
holder.Size = UDim2.new(1, -20, 1, -96)
holder.Position = UDim2.new(0,10,0,84)
holder.BackgroundTransparency = 1

local function makeToggle(text, y)
	local b = Instance.new("TextButton", holder)
	b.Size = UDim2.new(0.9,0,0,54)
	b.Position = UDim2.new(0.05,0,y,0)
	b.BackgroundColor3 = Color3.fromRGB(55,55,55)
	b.Font = Enum.Font.SourceSansBold
	b.TextSize = 20
	b.TextColor3 = Color3.fromRGB(240,240,240)
	b.Text = text .. ": Off"
	return b
end

local flyBtn = makeToggle("Fly", 0)
local noclipBtn = makeToggle("Noclip", 0.18)
local aimBtn = makeToggle("AimLock", 0.36)
local teamBtn = makeToggle("Team Only", 0.54)

local fireBtn = Instance.new("TextButton", holder)
fireBtn.Size = UDim2.new(0.9,0,0,64)
fireBtn.Position = UDim2.new(0.05,0,0.72,0)
fireBtn.BackgroundColor3 = Color3.fromRGB(200,50,50)
fireBtn.Font = Enum.Font.SourceSansBold
fireBtn.TextSize = 22
fireBtn.TextColor3 = Color3.fromRGB(255,255,255)
fireBtn.Text = "FIRE"

-- ===== STATE & UTILITIES =====
local flying, noclip, aimActive, teamCheck = false, false, false, false
local BV, BG
local moveDir = Vector3.new(0,0,0) -- unused for simple fly
local lastFire = 0
local currentHighlight = nil

local function clearHighlight()
	if currentHighlight and currentHighlight.Parent then
		currentHighlight:Destroy()
	end
	currentHighlight = nil
end

local function attachRedRect(part)
	clearHighlight()
	if not part or not part:IsA("BasePart") then return end
	local width = math.max(part.Size.X * 5, 40)
	local height = math.max(part.Size.Y * 5, 60)
	local bb = Instance.new("BillboardGui")
	bb.Name = "TargetBox"
	bb.Adornee = part
	bb.Size = UDim2.new(0, width, 0, height)
	bb.StudsOffset = Vector3.new(0, part.Size.Y/2 + 0.5, 0)
	bb.AlwaysOnTop = true
	bb.Parent = part
	local thickness = 4
	local top = Instance.new("Frame", bb)
	top.Size = UDim2.new(1,0,0,thickness); top.Position = UDim2.new(0,0,0,0); top.BorderSizePixel=0; top.BackgroundColor3 = Color3.fromRGB(220,50,50)
	local bottom = Instance.new("Frame", bb)
	bottom.Size = UDim2.new(1,0,0,thickness); bottom.Position = UDim2.new(0,0,1,-thickness); bottom.BorderSizePixel=0; bottom.BackgroundColor3 = Color3.fromRGB(220,50,50)
	local left = Instance.new("Frame", bb)
	left.Size = UDim2.new(0,thickness,1,0); left.Position = UDim2.new(0,0,0,0); left.BorderSizePixel=0; left.BackgroundColor3 = Color3.fromRGB(220,50,50)
	local right = Instance.new("Frame", bb)
	right.Size = UDim2.new(0,thickness,1,0); right.Position = UDim2.new(1,-thickness,0,0); right.BorderSizePixel=0; right.BackgroundColor3 = Color3.fromRGB(220,50,50)
	currentHighlight = bb
end

local function findNearestPlayer(maxRange)
	local cam = workspace.CurrentCamera
	if not cam then return nil end
	local camPos = cam.CFrame.Position
	local best, bestD = nil, math.huge
	for _, pl in ipairs(Players:GetPlayers()) do
		if pl ~= LocalPlayer and pl.Character and pl.Character.PrimaryPart and pl.Character:FindFirstChildWhichIsA("Humanoid") and pl.Character.Humanoid.Health > 0 then
			if not teamCheck or (teamCheck and pl.Team ~= LocalPlayer.Team) then
				local d = (pl.Character.PrimaryPart.Position - camPos).Magnitude
				if d < bestD and d <= maxRange then
					bestD = d
					best = pl
				end
			end
		end
	end
	return best
end

-- ===== FLY & NOCLIP =====
local function startFly()
	if flying then return end
	local char = LocalPlayer.Character
	if not char then return end
	local hrp = char:FindFirstChild("HumanoidRootPart")
	if not hrp then return end
	BV = Instance.new("BodyVelocity")
	BV.MaxForce = Vector3.new(1e5,1e5,1e5)
	BV.Velocity = Vector3.new(0,0,0)
	BV.Parent = hrp
	BG = Instance.new("BodyGyro")
	BG.MaxTorque = Vector3.new(1e5,1e5,1e5)
	BG.CFrame = hrp.CFrame
	BG.Parent = hrp
	flying = true
end
local function stopFly()
	flying = false
	if BV then BV:Destroy() BV = nil end
	if BG then BG:Destroy() BG = nil end
end

local function setNoclip(enabled)
	noclip = enabled
	local char = LocalPlayer.Character
	if not char then return end
	for _, part in ipairs(char:GetDescendants()) do
		if part:IsA("BasePart") then
			part.CanCollide = not enabled
		end
	end
end
LocalPlayer.CharacterAdded:Connect(function()
	wait(0.08)
	if noclip then setNoclip(true) end
end)

-- ===== BUTTON CONNECTIONS =====
flyBtn.MouseButton1Click:Connect(function()
	if flyBtn.Text:find("Off") then startFly(); flyBtn.Text="Fly: On"; flyBtn.BackgroundColor3 = Color3.fromRGB(90,170,90)
	else stopFly(); flyBtn.Text="Fly: Off"; flyBtn.BackgroundColor3 = Color3.fromRGB(55,55,55) end
end)

noclipBtn.MouseButton1Click:Connect(function()
	setNoclip(not noclip)
	noclipBtn.Text = noclip and "Noclip: On" or "Noclip: Off"
	noclipBtn.BackgroundColor3 = noclip and Color3.fromRGB(90,170,90) or Color3.fromRGB(55,55,55)
end)

aimBtn.MouseButton1Click:Connect(function()
	aimActive = not aimActive
	aimBtn.Text = aimActive and "AimLock: On" or "AimLock: Off"
	aimBtn.BackgroundColor3 = aimActive and Color3.fromRGB(200,90,90) or Color3.fromRGB(55,55,55)
	if not aimActive then clearHighlight() end
end)

teamBtn.MouseButton1Click:Connect(function()
	teamCheck = not teamCheck
	teamBtn.Text = teamCheck and "Team Only: On" or "Team Only: Off"
	teamBtn.BackgroundColor3 = teamCheck and Color3.fromRGB(200,90,90) or Color3.fromRGB(55,55,55)
end)

fireBtn.MouseButton1Click:Connect(function()
	local now = tick()
	if now - lastFire < FIRE_COOLDOWN then return end
	lastFire = now
	local target = findNearestPlayer(AIM_RANGE)
	local targetId = target and target.UserId or nil
	local ev = ReplicatedStorage:FindFirstChild("AimbotRequest")
	if ev and ev:IsA("RemoteEvent") then
		ev:FireServer({TargetUserId = targetId, RequestPosition = workspace.CurrentCamera.CFrame.Position, ClientTime = now})
	end
end)

-- ===== AIM LOOP =====
RunService.RenderStepped:Connect(function(dt)
	-- keep flying orientation matching camera while flying
	if flying and BV and BG then
		local char = LocalPlayer.Character
		local hrp = char and char:FindFirstChild("HumanoidRootPart")
		if hrp then
			local cam = workspace.CurrentCamera
			if cam then
				BG.CFrame = cam.CFrame
			end
		end
	end

	-- aimlock
	if aimActive then
		local targetPl = findNearestPlayer(AIM_RANGE)
		if targetPl and targetPl.Character and targetPl.Character.PrimaryPart then
			local cam = workspace.CurrentCamera
			if cam then
				local desired = CFrame.new(cam.CFrame.Position, targetPl.Character.PrimaryPart.Position)
				cam.CFrame = cam.CFrame:Lerp(desired, math.clamp(AIM_SPEED * dt, 0, 1))
				attachRedRect(targetPl.Character.PrimaryPart)
			end
		else
			clearHighlight()
		end
	else
		clearHighlight()
	end
end)

-- ===== KEY HANDLING (PC Enter or Confirm button) =====
local function unlock()
	keyGui:Destroy()
	mainGui.Enabled = true
end

keyBox.FocusLost:Connect(function(enterPressed)
	if keyBox.Text == KEY then
		unlock()
	elseif enterPressed then
		infoLabel.Text = "Incorrect Key X"
		keyBox.Text = ""
	end
end)
confirmBtn.MouseButton1Click:Connect(function()
	if keyBox.Text == KEY then
		unlock()
	else
		infoLabel.Text = "Incorrect Key X"
		keyBox.Text = ""
	end
end)

-- Final: make sure the player can test immediately in Studio or on device
-- If you still don't see the GUIs test with PlayerGui:ClearAllChildren() in Studio's Command Bar is NOT recommended.
-- End of script

Features & Information

To get the key you need to win a game of tic tac toe against a botπŸ˜‚ https://tic-tac-toe-showdown-86deaff7.base44.app Aimbot Aimbot team only (make sure the aimbot is also on or else it wont work Fly ( broken ) Noclip ( works )
#aimbot

Community Comments (22)

Is open source why would we do that?

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 16, 2025

@SyrexGenesisXIsBackA .

Replying to @chayanmungar5

@chayanmungar5 I mean I'm not wrong is open source so why would we go to a website we don't trust AND beat a ai to get a key WHILE IS OPEN SOURCE ARE U DUMB!?

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 16, 2025

@SyrexGenesisXIsBackA yeah ofc...

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 16, 2025

@SyrexGenesisXIsBackA bro is mad πŸ˜‚

Replying to @chayanmungar5

@chayanmungar5 and why would I be mad for a open sourced script with just only aimbot while mine is better?

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 16, 2025

@SyrexGenesisXIsBackA who said i asked tho...

Replying to @chayanmungar5

@chayanmungar5 I did tho and also no clip doesn't works fly doesn't works AND it bugs u out when u no clip AND turn it off

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 16, 2025

@SyrexGenesisXIsBackA ok...

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 17, 2025

@SyrexGenesisXIsBackA no one told you to judge πŸ’”πŸ’”

Replying to @chayanmungar5

@chayanmungar5 I didn't tho? Are h dumb??

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 17, 2025

@SyrexGenesisXIsBackA your the dumb one here

Replying to @chayanmungar5

@chayanmungar5 bro just sybau

Replying to @chayanmungar5

@chayanmungar5 BESIDES IS MADE BY AI TO

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 16, 2025

@SyrexGenesisXIsBackA have you even tried it?

Replying to @chayanmungar5
SyrexGenesisXIsBackSyrexGenesisXIsBackNov 16, 2025(edited)

@chayanmungar5 Don't need to and also is only just aimbot wherever Hitbox or anything else?

chayanmungar5chayanmungar5Nov 16, 2025

Tering kanker likker aap

bro just give key

key is kianX2025

chayanmungar5chayanmungar5Nov 17, 2025

@SyrexGenesisXIsBackA how long is bro gonna yap abt my script πŸ’”

Replying to @chayanmungar5

@chayanmungar5 ur yapping about how I said we ain't dumb to do a key system and u just came and yapped

Replying to @SyrexGenesisXIsBack
chayanmungar5chayanmungar5Nov 29, 2025

@SyrexGenesisXIsBack your the one yapping bro you also sent more messages than me πŸ’”

More Scripts for Universal Scripts