Keyless aimbot AI
Key RequiredUniversal

Keyless aimbot AI

Universal ScriptRblxsilentRblxsilent 2.5K views 77.9K executesUpdated Aug 18, 2026
Unrated
00
Lua Script•1722 lines (27794 chars)
--========================================================
-- FAKE HACKS V8
-- ROBLOX STUDIO / YOUR OWN GAME
--
-- CENTERED + MOBILE FRIENDLY GUI
-- RAGE AIM + LEGIT AIM + ESP
-- TEAM CHECK + WALL CHECK + TARGET LOCK
-- MASTER ON/OFF
-- DRAGGABLE + SCROLLABLE
-- MINIMIZE TO FLOATING CIRCLE
--
-- SILENT AIM REMOVED
--========================================================

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

local LP = Players.LocalPlayer
local PlayerGui = LP:WaitForChild("PlayerGui")

--========================================================
-- SETTINGS
--========================================================

local Settings = {
	Enabled = true,
	Mode = "Legit",

	ESP = false,
	TeamCheck = true,
	WallCheck = true,
	TargetLock = true,

	FOV = 150,
	Smoothness = 35,
	MaxDistance = 1000,

	RageSpeed = 18,
	LegitSpeed = 6,
}

local CurrentTarget = nil
local CurrentPart = nil
local ScanTimer = 0

--========================================================
-- REMOVE OLD
--========================================================

local Old = PlayerGui:FindFirstChild("FakeHacksV8")

if Old then
	Old:Destroy()
end

--========================================================
-- GUI
--========================================================

local Gui = Instance.new("ScreenGui")
Gui.Name = "FakeHacksV8"
Gui.ResetOnSpawn = false
Gui.IgnoreGuiInset = true
Gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
Gui.Parent = PlayerGui

--========================================================
-- MAIN WINDOW
--========================================================

local Main = Instance.new("Frame")

-- IMPORTANT:
-- AnchorPoint keeps the CENTER of the GUI at the
-- center of the screen instead of using a corner.
Main.AnchorPoint = Vector2.new(0.5, 0.5)

Main.Position = UDim2.fromScale(0.5, 0.5)

-- Scale-based size so it works better on phones
Main.Size = UDim2.fromScale(0.88, 0.78)

Main.BackgroundColor3 =
	Color3.fromRGB(13, 14, 18)

Main.BorderSizePixel = 0
Main.Active = true
Main.ClipsDescendants = true
Main.Parent = Gui

local MainSizeConstraint =
	Instance.new("UISizeConstraint")

MainSizeConstraint.MinSize =
	Vector2.new(290, 360)

MainSizeConstraint.MaxSize =
	Vector2.new(430, 620)

MainSizeConstraint.Parent = Main

Instance.new("UICorner", Main).CornerRadius =
	UDim.new(0, 14)

local MainStroke =
	Instance.new("UIStroke")

MainStroke.Color =
	Color3.fromRGB(48, 50, 60)

MainStroke.Thickness = 1

MainStroke.Parent = Main

--========================================================
-- TOP BAR
--========================================================

local Top = Instance.new("Frame")

Top.Size =
	UDim2.new(1, 0, 0, 60)

Top.BackgroundColor3 =
	Color3.fromRGB(18, 19, 24)

Top.BorderSizePixel = 0

Top.Active = true
Top.Parent = Main

Instance.new("UICorner", Top).CornerRadius =
	UDim.new(0, 14)

--========================================================
-- ACCENT
--========================================================

local Accent = Instance.new("Frame")

Accent.Size =
	UDim2.fromOffset(4, 34)

Accent.Position =
	UDim2.fromOffset(12, 13)

Accent.BackgroundColor3 =
	Color3.fromRGB(125, 120, 255)

Accent.BorderSizePixel = 0

Accent.Parent = Top

Instance.new("UICorner", Accent).CornerRadius =
	UDim.new(1, 0)

--========================================================
-- TITLE
--========================================================

local Title = Instance.new("TextLabel")

Title.Size =
	UDim2.new(1, -100, 0, 24)

Title.Position =
	UDim2.fromOffset(25, 8)

Title.BackgroundTransparency = 1

Title.Text =
	"AIM CONTROL"

Title.Font =
	Enum.Font.GothamBold

Title.TextSize = 15

Title.TextColor3 =
	Color3.fromRGB(245, 245, 250)

Title.TextXAlignment =
	Enum.TextXAlignment.Left

Title.Parent = Top

local Subtitle = Instance.new("TextLabel")

Subtitle.Size =
	UDim2.new(1, -100, 0, 17)

Subtitle.Position =
	UDim2.fromOffset(25, 31)

Subtitle.BackgroundTransparency = 1

Subtitle.Text =
	"V8  •  PLAYER TARGETING"

Subtitle.Font =
	Enum.Font.Gotham

Subtitle.TextSize = 9

Subtitle.TextColor3 =
	Color3.fromRGB(105, 108, 120)

Subtitle.TextXAlignment =
	Enum.TextXAlignment.Left

Subtitle.Parent = Top

--========================================================
-- MINIMIZE BUTTON
--========================================================

local MinButton = Instance.new("TextButton")

MinButton.AnchorPoint =
	Vector2.new(1, 0.5)

MinButton.Position =
	UDim2.new(1, -12, 0.5, 0)

MinButton.Size =
	UDim2.fromOffset(34, 34)

MinButton.BackgroundColor3 =
	Color3.fromRGB(31, 32, 40)

MinButton.Text =
	"−"

MinButton.Font =
	Enum.Font.GothamBold

MinButton.TextSize = 18

MinButton.TextColor3 =
	Color3.fromRGB(220, 220, 225)

MinButton.AutoButtonColor = false

MinButton.Parent = Top

Instance.new("UICorner", MinButton).CornerRadius =
	UDim.new(0, 9)

--========================================================
-- SCROLLING FRAME
--========================================================

local Scroll = Instance.new("ScrollingFrame")

Scroll.Size =
	UDim2.new(1, -16, 1, -68)

Scroll.Position =
	UDim2.fromOffset(8, 64)

Scroll.BackgroundTransparency = 1

Scroll.BorderSizePixel = 0

Scroll.ScrollBarThickness = 3

Scroll.ScrollBarImageColor3 =
	Color3.fromRGB(90, 90, 105)

Scroll.Active = true

Scroll.ScrollingDirection =
	Enum.ScrollingDirection.Y

Scroll.CanvasSize =
	UDim2.fromOffset(0, 650)

Scroll.Parent = Main

--========================================================
-- SECTION
--========================================================

local function Section(Text, Y)

	local Label = Instance.new("TextLabel")

	Label.Size =
		UDim2.new(1, -25, 0, 20)

	Label.Position =
		UDim2.fromOffset(13, Y)

	Label.BackgroundTransparency = 1

	Label.Text = Text

	Label.Font =
		Enum.Font.GothamBold

	Label.TextSize = 9

	Label.TextColor3 =
		Color3.fromRGB(95, 98, 110)

	Label.TextXAlignment =
		Enum.TextXAlignment.Left

	Label.Parent = Scroll

	return Label
end

--========================================================
-- TOGGLE
--========================================================

local function Toggle(Text, Y)

	local Button = Instance.new("TextButton")

	Button.Size =
		UDim2.new(1, -26, 0, 40)

	Button.Position =
		UDim2.fromOffset(13, Y)

	Button.BackgroundColor3 =
		Color3.fromRGB(22, 23, 29)

	Button.Text = ""

	Button.AutoButtonColor = false

	Button.Parent = Scroll

	Instance.new("UICorner", Button).CornerRadius =
		UDim.new(0, 9)

	local Label = Instance.new("TextLabel")

	Label.Size =
		UDim2.new(1, -65, 1, 0)

	Label.Position =
		UDim2.fromOffset(13, 0)

	Label.BackgroundTransparency = 1

	Label.Text = Text

	Label.Font =
		Enum.Font.GothamMedium

	Label.TextSize = 11

	Label.TextColor3 =
		Color3.fromRGB(210, 211, 218)

	Label.TextXAlignment =
		Enum.TextXAlignment.Left

	Label.Parent = Button

	local Switch = Instance.new("Frame")

	Switch.Size =
		UDim2.fromOffset(36, 20)

	Switch.Position =
		UDim2.new(1, -50, 0.5, -10)

	Switch.BackgroundColor3 =
		Color3.fromRGB(48, 49, 58)

	Switch.Parent = Button

	Instance.new("UICorner", Switch).CornerRadius =
		UDim.new(1, 0)

	local Knob = Instance.new("Frame")

	Knob.Size =
		UDim2.fromOffset(16, 16)

	Knob.Position =
		UDim2.fromOffset(2, 2)

	Knob.BackgroundColor3 =
		Color3.fromRGB(180, 181, 188)

	Knob.Parent = Switch

	Instance.new("UICorner", Knob).CornerRadius =
		UDim.new(1, 0)

	return Button, Switch, Knob
end

--========================================================
-- TOGGLE VISUAL
--========================================================

local function SetToggle(Switch, Knob, Enabled)

	if Enabled then

		Switch.BackgroundColor3 =
			Color3.fromRGB(102, 96, 205)

		Knob.BackgroundColor3 =
			Color3.fromRGB(250, 250, 255)

		Knob.Position =
			UDim2.fromOffset(18, 2)

	else

		Switch.BackgroundColor3 =
			Color3.fromRGB(48, 49, 58)

		Knob.BackgroundColor3 =
			Color3.fromRGB(180, 181, 188)

		Knob.Position =
			UDim2.fromOffset(2, 2)
	end
end

--========================================================
-- MASTER
--========================================================

Section("MASTER", 5)

local AimButton, AimSwitch, AimKnob =
	Toggle("Aimbot Enabled", 30)

SetToggle(
	AimSwitch,
	AimKnob,
	Settings.Enabled
)

--========================================================
-- AIM MODE
--========================================================

Section("AIM MODE", 82)

local Rage = Instance.new("TextButton")

Rage.Size =
	UDim2.new(0.5, -18, 0, 45)

Rage.Position =
	UDim2.fromOffset(13, 107)

Rage.BackgroundColor3 =
	Color3.fromRGB(27, 28, 35)

Rage.Text =
	"RAGE"

Rage.Font =
	Enum.Font.GothamBold

Rage.TextSize = 12

Rage.TextColor3 =
	Color3.fromRGB(190, 191, 200)

Rage.AutoButtonColor = false

Rage.Parent = Scroll

Instance.new("UICorner", Rage).CornerRadius =
	UDim.new(0, 10)

local Legit = Instance.new("TextButton")

Legit.Size =
	UDim2.new(0.5, -18, 0, 45)

Legit.Position =
	UDim2.new(0.5, 5, 0, 107)

Legit.BackgroundColor3 =
	Color3.fromRGB(67, 62, 125)

Legit.Text =
	"LEGIT"

Legit.Font =
	Enum.Font.GothamBold

Legit.TextSize = 12

Legit.TextColor3 =
	Color3.fromRGB(225, 224, 255)

Legit.AutoButtonColor = false

Legit.Parent = Scroll

Instance.new("UICorner", Legit).CornerRadius =
	UDim.new(0, 10)

--========================================================
-- TARGETING
--========================================================

Section("TARGETING", 165)

local ESPButton, ESPSwitch, ESPKnob =
	Toggle("ESP Boxes", 189)

local TeamButton, TeamSwitch, TeamKnob =
	Toggle("Team Check", 232)

local WallButton, WallSwitch, WallKnob =
	Toggle("Wall Check", 275)

local LockButton, LockSwitch, LockKnob =
	Toggle("Target Lock", 318)

SetToggle(
	ESPSwitch,
	ESPKnob,
	Settings.ESP
)

SetToggle(
	TeamSwitch,
	TeamKnob,
	Settings.TeamCheck
)

SetToggle(
	WallSwitch,
	WallKnob,
	Settings.WallCheck
)

SetToggle(
	LockSwitch,
	LockKnob,
	Settings.TargetLock
)

--========================================================
-- SLIDER
--========================================================

local function Slider(Text, Y, Min, Max, Initial, Callback)

	local Label = Instance.new("TextLabel")

	Label.Size =
		UDim2.new(1, -80, 0, 20)

	Label.Position =
		UDim2.fromOffset(13, Y)

	Label.BackgroundTransparency = 1

	Label.Text = Text

	Label.Font =
		Enum.Font.GothamMedium

	Label.TextSize = 10

	Label.TextColor3 =
		Color3.fromRGB(190, 191, 198)

	Label.TextXAlignment =
		Enum.TextXAlignment.Left

	Label.Parent = Scroll

	local Value = Instance.new("TextLabel")

	Value.Size =
		UDim2.fromOffset(55, 20)

	Value.Position =
		UDim2.new(1, -70, 0, Y)

	Value.BackgroundTransparency = 1

	Value.Text =
		tostring(Initial)

	Value.Font =
		Enum.Font.GothamBold

	Value.TextSize = 10

	Value.TextColor3 =
		Color3.fromRGB(150, 145, 255)

	Value.TextXAlignment =
		Enum.TextXAlignment.Right

	Value.Parent = Scroll

	local Bar = Instance.new("Frame")

	Bar.Size =
		UDim2.new(1, -26, 0, 5)

	Bar.Position =
		UDim2.fromOffset(13, Y + 27)

	Bar.BackgroundColor3 =
		Color3.fromRGB(40, 41, 49)

	Bar.BorderSizePixel = 0

	Bar.Active = true

	Bar.Parent = Scroll

	Instance.new("UICorner", Bar).CornerRadius =
		UDim.new(1, 0)

	local Fill = Instance.new("Frame")

	Fill.BackgroundColor3 =
		Color3.fromRGB(125, 119, 235)

	Fill.BorderSizePixel = 0

	Fill.Parent = Bar

	Instance.new("UICorner", Fill).CornerRadius =
		UDim.new(1, 0)

	local Percent =
		(Initial - Min) / (Max - Min)

	Fill.Size =
		UDim2.new(Percent, 0, 1, 0)

	local Dragging = false

	local function Update(X)

		local P =
			math.clamp(
				(X - Bar.AbsolutePosition.X)
				/ Bar.AbsoluteSize.X,
				0,
				1
			)

		local Number =
			math.floor(
				Min + (Max - Min) * P + 0.5
			)

		Fill.Size =
			UDim2.new(P, 0, 1, 0)

		Value.Text =
			tostring(Number)

		Callback(Number)
	end

	Bar.InputBegan:Connect(function(Input)

		if Input.UserInputType ==
			Enum.UserInputType.MouseButton1
			or Input.UserInputType ==
			Enum.UserInputType.Touch then

			Dragging = true

			Update(
				Input.Position.X
			)
		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

			Update(
				Input.Position.X
			)
		end
	end)

	UserInputService.InputEnded:Connect(function(Input)

		if Input.UserInputType ==
			Enum.UserInputType.MouseButton1
			or Input.UserInputType ==
			Enum.UserInputType.Touch then

			Dragging = false
		end
	end)
end

--========================================================
-- AIM SETTINGS
--========================================================

Section("AIM SETTINGS", 365)

Slider(
	"FOV",
	390,
	50,
	300,
	Settings.FOV,
	function(V)

		Settings.FOV = V
	end
)

Slider(
	"SMOOTHNESS",
	442,
	5,
	100,
	Settings.Smoothness,
	function(V)

		Settings.Smoothness = V
	end
)

Slider(
	"MAX DISTANCE",
	494,
	100,
	2000,
	Settings.MaxDistance,
	function(V)

		Settings.MaxDistance = V
	end
)

--========================================================
-- FOV
--========================================================

local FOVCircle = Instance.new("Frame")

FOVCircle.Name = "FOV"

FOVCircle.AnchorPoint =
	Vector2.new(0.5, 0.5)

FOVCircle.Position =
	UDim2.fromScale(0.5, 0.5)

FOVCircle.Size =
	UDim2.fromOffset(
		Settings.FOV * 2,
		Settings.FOV * 2
	)

FOVCircle.BackgroundTransparency = 1

FOVCircle.Parent = Gui

Instance.new("UICorner", FOVCircle).CornerRadius =
	UDim.new(1, 0)

local FOVStroke =
	Instance.new("UIStroke")

FOVStroke.Color =
	Color3.fromRGB(135, 130, 255)

FOVStroke.Transparency = 0.5

FOVStroke.Thickness = 1

FOVStroke.Parent = FOVCircle

--========================================================
-- STATUS
--========================================================

local Status = Instance.new("TextLabel")

Status.Size =
	UDim2.new(1, -26, 0, 25)

Status.Position =
	UDim2.fromOffset(13, 550)

Status.BackgroundTransparency = 1

Status.Text =
	"TARGET  •  NONE"

Status.Font =
	Enum.Font.GothamBold

Status.TextSize = 9

Status.TextColor3 =
	Color3.fromRGB(100, 102, 113)

Status.TextXAlignment =
	Enum.TextXAlignment.Left

Status.Parent = Scroll

--========================================================
-- TARGET CHECK
--========================================================

local function ValidTarget(Player)

	if Player == LP then
		return false
	end

	if Settings.TeamCheck then

		if LP.Team
			and Player.Team
			and LP.Team == Player.Team then

			return false
		end
	end

	local Character =
		Player.Character

	if not Character then
		return false
	end

	local Humanoid =
		Character:FindFirstChildOfClass(
			"Humanoid"
		)

	local Root =
		Character:FindFirstChild(
			"HumanoidRootPart"
		)

	local Head =
		Character:FindFirstChild(
			"Head"
		)

	if not Humanoid
		or Humanoid.Health <= 0
		or not Root
		or not Head then

		return false
	end

	local MyCharacter =
		LP.Character

	local MyRoot =
		MyCharacter
		and MyCharacter:FindFirstChild(
			"HumanoidRootPart"
		)

	if MyRoot then

		local Distance =
			(
				Root.Position
				- MyRoot.Position
			).Magnitude

		if Distance >
			Settings.MaxDistance then

			return false
		end
	end

	return true
end

--========================================================
-- WALL CHECK
--========================================================

local function Visible(Part)

	if not Settings.WallCheck then
		return true
	end

	local Camera =
		workspace.CurrentCamera

	if not Camera then
		return false
	end

	local Origin =
		Camera.CFrame.Position

	local Direction =
		Part.Position - Origin

	local Params =
		RaycastParams.new()

	Params.FilterType =
		Enum.RaycastFilterType.Exclude

	Params.FilterDescendantsInstances = {
		LP.Character
	}

	local Result =
		workspace:Raycast(
			Origin,
			Direction,
			Params
		)

	if not Result then
		return true
	end

	return Result.Instance:IsDescendantOf(
		Part.Parent
	)
end

--========================================================
-- AIM PART
--========================================================

local function GetAimPart(Character)

	if Settings.Mode == "Rage" then

		return Character:FindFirstChild(
			"Head"
		)
	end

	return Character:FindFirstChild(
		"UpperTorso"
	)
	or Character:FindFirstChild(
		"Torso"
	)
	or Character:FindFirstChild(
		"Head"
	)
end

--========================================================
-- SCREEN DISTANCE
--========================================================

local function ScreenDistance(Part)

	local Camera =
		workspace.CurrentCamera

	if not Camera then
		return math.huge
	end

	local Position, OnScreen =
		Camera:WorldToViewportPoint(
			Part.Position
		)

	if not OnScreen
		or Position.Z <= 0 then

		return math.huge
	end

	local Center =
		Vector2.new(
			Camera.ViewportSize.X / 2,
			Camera.ViewportSize.Y / 2
		)

	local Point =
		Vector2.new(
			Position.X,
			Position.Y
		)

	return (
		Point - Center
	).Magnitude
end

--========================================================
-- FIND TARGET
--========================================================

local function FindTarget()

	local BestPlayer = nil
	local BestPart = nil

	local BestDistance =
		Settings.FOV

	for _, Player in ipairs(
		Players:GetPlayers()
	) do

		if ValidTarget(Player) then

			local Character =
				Player.Character

			local Part =
				GetAimPart(Character)

			if Part and Visible(Part) then

				local Distance =
					ScreenDistance(Part)

				if Distance <
					BestDistance then

					BestDistance =
						Distance

					BestPlayer =
						Player

					BestPart =
						Part
				end
			end
		end
	end

	return BestPlayer, BestPart
end

--========================================================
-- TARGET STILL VALID
--========================================================

local function TargetStillValid()

	if not CurrentTarget
		or not CurrentPart then

		return false
	end

	if not ValidTarget(CurrentTarget) then
		return false
	end

	local Character =
		CurrentTarget.Character

	local Part =
		GetAimPart(Character)

	if not Part then
		return false
	end

	CurrentPart = Part

	if not Visible(Part) then
		return false
	end

	return ScreenDistance(Part)
		<= Settings.FOV * 1.35
end

--========================================================
-- ESP
--========================================================

local ESPObjects = {}

local function RemoveESP(Player)

	if ESPObjects[Player] then

		ESPObjects[Player]:Destroy()

		ESPObjects[Player] = nil
	end
end

local function CreateESP(Player)

	if Player == LP then
		return
	end

	if ESPObjects[Player] then
		return
	end

	if not Player.Character then
		return
	end

	local Highlight =
		Instance.new("Highlight")

	Highlight.Name =
		"ESPBox"

	Highlight.Adornee =
		Player.Character

	Highlight.FillTransparency = 1

	Highlight.OutlineTransparency =
		0.05

	Highlight.OutlineColor =
		Color3.fromRGB(
			235,
			235,
			255
		)

	Highlight.DepthMode =
		Enum.HighlightDepthMode.AlwaysOnTop

	Highlight.Enabled =
		Settings.ESP

	Highlight.Parent =
		Gui

	ESPObjects[Player] =
		Highlight
end

local function UpdateESP()

	for Player, Object in pairs(
		ESPObjects
	) do

		if not Player.Parent then

			Object:Destroy()

			ESPObjects[Player] = nil

		else

			Object.Adornee =
				Player.Character

			Object.Enabled =
				Settings.ESP
		end
	end

	if not Settings.ESP then
		return
	end

	for _, Player in ipairs(
		Players:GetPlayers()
	) do

		if Player ~= LP then

			CreateESP(Player)
		end
	end
end

Players.PlayerAdded:Connect(function(Player)

	Player.CharacterAdded:Connect(
		function()

			task.wait(0.1)

			if Settings.ESP then
				CreateESP(Player)
			end
		end
	)
end)

Players.PlayerRemoving:Connect(function(Player)

	RemoveESP(Player)

	if CurrentTarget == Player then

		CurrentTarget = nil
		CurrentPart = nil
	end
end)

--========================================================
-- BUTTONS
--========================================================

AimButton.MouseButton1Click:Connect(function()

	Settings.Enabled =
		not Settings.Enabled

	SetToggle(
		AimSwitch,
		AimKnob,
		Settings.Enabled
	)

	if not Settings.Enabled then

		CurrentTarget = nil
		CurrentPart = nil

		Status.Text =
			"AIM  •  OFF"

	else

		Status.Text =
			"AIM  •  READY"
	end
end)

Rage.MouseButton1Click:Connect(function()

	Settings.Mode = "Rage"

	Rage.BackgroundColor3 =
		Color3.fromRGB(95, 55, 65)

	Rage.TextColor3 =
		Color3.fromRGB(255, 225, 230)

	Legit.BackgroundColor3 =
		Color3.fromRGB(27, 28, 35)

	Legit.TextColor3 =
		Color3.fromRGB(190, 191, 200)

	CurrentTarget = nil
	CurrentPart = nil
end)

Legit.MouseButton1Click:Connect(function()

	Settings.Mode = "Legit"

	Legit.BackgroundColor3 =
		Color3.fromRGB(67, 62, 125)

	Legit.TextColor3 =
		Color3.fromRGB(225, 224, 255)

	Rage.BackgroundColor3 =
		Color3.fromRGB(27, 28, 35)

	Rage.TextColor3 =
		Color3.fromRGB(190, 191, 200)

	CurrentTarget = nil
	CurrentPart = nil
end)

ESPButton.MouseButton1Click:Connect(function()

	Settings.ESP =
		not Settings.ESP

	SetToggle(
		ESPSwitch,
		ESPKnob,
		Settings.ESP
	)

	UpdateESP()
end)

TeamButton.MouseButton1Click:Connect(function()

	Settings.TeamCheck =
		not Settings.TeamCheck

	SetToggle(
		TeamSwitch,
		TeamKnob,
		Settings.TeamCheck
	)

	CurrentTarget = nil
	CurrentPart = nil
end)

WallButton.MouseButton1Click:Connect(function()

	Settings.WallCheck =
		not Settings.WallCheck

	SetToggle(
		WallSwitch,
		WallKnob,
		Settings.WallCheck
	)

	CurrentTarget = nil
	CurrentPart = nil
end)

LockButton.MouseButton1Click:Connect(function()

	Settings.TargetLock =
		not Settings.TargetLock

	SetToggle(
		LockSwitch,
		LockKnob,
		Settings.TargetLock
	)

	if not Settings.TargetLock then

		CurrentTarget = nil
		CurrentPart = nil
	end
end)

--========================================================
-- AIM LOOP
--========================================================

RunService:BindToRenderStep(
	"FakeHacksV8Aim",
	Enum.RenderPriority.Camera.Value + 1,
	function(DeltaTime)

		local Camera =
			workspace.CurrentCamera

		if not Camera then
			return
		end

		FOVCircle.Size =
			UDim2.fromOffset(
				Settings.FOV * 2,
				Settings.FOV * 2
			)

		UpdateESP()

		if not Settings.Enabled then

			CurrentTarget = nil
			CurrentPart = nil

			Status.Text =
				"AIM  •  OFF"

			return
		end

		ScanTimer += DeltaTime

		if ScanTimer >= 0.033 then

			ScanTimer = 0

			if Settings.TargetLock then

				if not TargetStillValid() then

					CurrentTarget,
					CurrentPart =
						FindTarget()
				end

			else

				CurrentTarget,
				CurrentPart =
					FindTarget()
			end
		end

		if not CurrentTarget
			or not CurrentPart then

			Status.Text =
				"TARGET  •  NONE"

			return
		end

		if not TargetStillValid() then

			CurrentTarget = nil
			CurrentPart = nil

			Status.Text =
				"TARGET  •  NONE"

			return
		end

		Status.Text =
			"TARGET  •  "
			.. CurrentTarget.DisplayName
			.. "  •  "
			.. CurrentPart.Name

		local Desired =
			CFrame.lookAt(
				Camera.CFrame.Position,
				CurrentPart.Position
			)

		local Speed

		if Settings.Mode == "Rage" then

			Speed =
				Settings.RageSpeed

		else

			Speed =
				1
				+ (
					Settings.Smoothness
					/ 100
				)
				* Settings.LegitSpeed
		end

		local Alpha =
			1 - math.exp(
				-Speed * DeltaTime
			)

		Camera.CFrame =
			Camera.CFrame:Lerp(
				Desired,
				Alpha
			)
	end
)

--========================================================
-- DRAG MAIN WINDOW
--========================================================

local Dragging = false
local DragStart
local StartPosition

Top.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)

--========================================================
-- FLOATING BUTTON
--========================================================

local Floating = Instance.new("TextButton")

Floating.AnchorPoint =
	Vector2.new(0.5, 0.5)

Floating.Position =
	UDim2.fromScale(0.5, 0.5)

Floating.Size =
	UDim2.fromOffset(58, 58)

Floating.BackgroundColor3 =
	Color3.fromRGB(18, 19, 25)

Floating.Text =
	"A"

Floating.Font =
	Enum.Font.GothamBlack

Floating.TextSize = 25

Floating.TextColor3 =
	Color3.fromRGB(150, 145, 255)

Floating.Visible = false

Floating.Active = true

Floating.AutoButtonColor = false

Floating.Parent = Gui

Instance.new("UICorner", Floating).CornerRadius =
	UDim.new(1, 0)

local FloatingStroke =
	Instance.new("UIStroke")

FloatingStroke.Color =
	Color3.fromRGB(100, 95, 200)

FloatingStroke.Thickness = 2

FloatingStroke.Parent = Floating

--========================================================
-- MINIMIZE / RESTORE
--========================================================

MinButton.MouseButton1Click:Connect(function()

	Main.Visible = false
	Floating.Visible = true
end)

Floating.MouseButton1Click:Connect(function()

	Main.Visible = true
	Floating.Visible = false
end)

--========================================================
-- FLOATING BUTTON DRAG
--========================================================

local FloatDragging = false
local FloatStart
local FloatPosition

Floating.InputBegan:Connect(function(Input)

	if Input.UserInputType ==
		Enum.UserInputType.MouseButton1
		or Input.UserInputType ==
		Enum.UserInputType.Touch then

		FloatDragging = true

		FloatStart =
			Input.Position

		FloatPosition =
			Floating.Position
	end
end)

UserInputService.InputChanged:Connect(function(Input)

	if not FloatDragging then
		return
	end

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

		local Delta =
			Input.Position
			- FloatStart

		Floating.Position =
			UDim2.new(
				FloatPosition.X.Scale,
				FloatPosition.X.Offset + Delta.X,

				FloatPosition.Y.Scale,
				FloatPosition.Y.Offset + Delta.Y
			)
	end
end)

UserInputService.InputEnded:Connect(function(Input)

	if Input.UserInputType ==
		Enum.UserInputType.MouseButton1
		or Input.UserInputType ==
		Enum.UserInputType.Touch then

		FloatDragging = false
	end
end)

--========================================================
-- F4
--========================================================

UserInputService.InputBegan:Connect(function(
	Input,
	Processed
)

	if Processed then
		return
	end

	if Input.KeyCode ==
		Enum.KeyCode.F4 then

		Settings.Enabled =
			not Settings.Enabled

		SetToggle(
			AimSwitch,
			AimKnob,
			Settings.Enabled
		)

		if not Settings.Enabled then

			CurrentTarget = nil
			CurrentPart = nil

			Status.Text =
				"AIM  •  OFF"

		else

			Status.Text =
				"AIM  •  READY"
		end
	end
end)

--========================================================
-- START
--========================================================

FOVCircle.Visible = true

print("[Fake Hacks V8] Loaded")
print("[Fake Hacks V8] Centered GUI")
print("[Fake Hacks V8] Mobile friendly")
print("[Fake Hacks V8] Master toggle ready")

Features & Information

Aim bot Esp ......
#aimbot

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts