Dark Spawner Script
HomeGamesTrendingExecutors
Dark Spawner Script

The best community driven platform for finding the latest Roblox scripts. Create, share, and discover amazing scripts.

Scripts
538+
Games
376+
Votes cast
7,802+

Quick Links

  • How to Use
  • Games
  • Trending Scripts
  • Executors
  • FAQs

Community

Links coming soon.

Contact

  • [email protected]
  • Report a script

© 2026 Dark Spawner Script. All rights reserved.

About UsPrivacy PolicyDisclaimer
Home›Games›FORTLINE

FORTLINE Script Apathy: Silent Aim, ESP

FORTLINE•1 hour ago
0 views
FORTLINE Script Apathy: Silent Aim, ESP
No Key
  • Working
  • updated 1 hour ago
  • No key
  • tested on Delta, Xeno
T

Team Darkspawner

Hub: Apathy

Play Game Game Link

Description

Use this Apathy hub for FORTLINE Roblox!! Now you can get features like Silent Aim, Auto Attack, Hitbox Expander, Enemy Magnet and Fly, and More!! Combat is the first tab, and its Aim / Attack block starts with Silent Aim, then Camera Aim on right mouse or E, then Auto Attack, all switched off when the menu loads. ESP and Movement get their own tabs beside Combat, and the author lists corner boxes, health bars, tracers and distance for the ESP side plus Fly and Noclip for getting around. Auto Attack comes with its own CPS setting and Magnet Enemies has a distance setting. No key on this one, so paste the loadstring and go!!

Features

  • +Hitbox Expander
  • +Corner Box ESP
  • +Silent Aim
  • +Fly
  • +Enemy Magnet
  • +Camera Aimbot
  • +Tracer Lines
  • +Noclip
  • +Auto Attack
  • +Health Bar ESP
  • +Spinbot
  • +Team Check
  • +Distance ESP
FORTLINE

FORTLINE

Explore more scripts for this game (1)

Script

Raw Download
-- language: Lua, target: Roblox FORTLINE, executor any
-- apathy | FORTLINE — clean ESP + auto-attack (ghost-fixed)
local okRay, Rayfield = pcall(function()
	return loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
end)
if not okRay or not Rayfield then
	warn("[apathy] Rayfield failed")
	return
end

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local VirtualInputManager = game:GetService("VirtualInputManager")
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
local Mouse = LocalPlayer:GetMouse()
local LocalUserId = LocalPlayer.UserId

local Settings = {
	SilentAim = false,
	SilentFOV = 220,
	SilentPart = "Head",
	TeamCheck = false,
	WallCheck = false,
	CameraAim = false,
	Smooth = 0.18,
	AutoAttack = false,
	AutoAttackCPS = 12,
	HitboxExpand = false,
	HitboxSize = Vector3.new(12, 12, 12),
	Magnet = false,
	MagnetDistance = 6,
	MagnetHeight = 0,
	Spin = false,
	SpinSpeed = 25,
	ESP = true,
	ESPCorners = true,
	ESPName = true,
	ESPHealth = true,
	ESPDistance = true,
	ESPTracer = false,
	ESPMaxDist = 2500,
	ESPColor = Color3.fromRGB(170, 85, 255),
	Fly = false,
	FlySpeed = 80,
	Noclip = false,
	Speed = false,
	WalkSpeed = 28,
	InfiniteJump = false,
}

local currentTarget = nil
local lastClick = 0

local function getChar() return LocalPlayer.Character end
local function getHum()
	local c = getChar()
	return c and c:FindFirstChildOfClass("Humanoid")
end
local function getRoot()
	local c = getChar()
	return c and c:FindFirstChild("HumanoidRootPart")
end

local function isAlive(plr)
	local c = plr.Character
	if not c then return false end
	if c == LocalPlayer.Character then return false end
	local h = c:FindFirstChildOfClass("Humanoid")
	local r = c:FindFirstChild("HumanoidRootPart")
	return h and r and h.Health > 0
end

local function isEnemy(plr)
	if not plr then return false end
	if plr == LocalPlayer then return false end
	if plr.UserId == LocalUserId then return false end
	if not isAlive(plr) then return false end
	if Settings.TeamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
		return false
	end
	return true
end

local function hasLOS(fromPos, part)
	if not Settings.WallCheck then return true end
	local params = RaycastParams.new()
	params.FilterType = Enum.RaycastFilterType.Exclude
	params.FilterDescendantsInstances = {getChar(), part.Parent}
	local res = Workspace:Raycast(fromPos, part.Position - fromPos, params)
	return res == nil or res.Instance:IsDescendantOf(part.Parent)
end

local function getTarget()
	local best, bestDist = nil, Settings.SilentFOV
	local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
	local camPos = Camera.CFrame.Position
	for _, plr in ipairs(Players:GetPlayers()) do
		if isEnemy(plr) then
			local part = plr.Character:FindFirstChild(Settings.SilentPart)
				or plr.Character:FindFirstChild("Head")
				or plr.Character:FindFirstChild("HumanoidRootPart")
			if part then
				local sp, on = Camera:WorldToViewportPoint(part.Position)
				if on and sp.Z > 0 then
					local d = (Vector2.new(sp.X, sp.Y) - center).Magnitude
					if d < bestDist and hasLOS(camPos, part) then
						bestDist = d
						best = part
					end
				end
			end
		end
	end
	return best
end

local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 1
fovCircle.NumSides = 64
fovCircle.Filled = false
fovCircle.Color = Color3.fromRGB(170, 85, 255)
fovCircle.Visible = false

local function doClick()
	pcall(function()
		VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0)
		task.wait(0.02)
		VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 0)
	end)
end

RunService.RenderStepped:Connect(function()
	if Settings.SilentAim or Settings.CameraAim or Settings.AutoAttack then
		currentTarget = getTarget()
	else
		currentTarget = nil
	end

	if Settings.SilentAim then
		fovCircle.Visible = true
		fovCircle.Radius = Settings.SilentFOV
		fovCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
	else
		fovCircle.Visible = false
	end

	if Settings.CameraAim and currentTarget then
		local hold = UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)
			or UserInputService:IsKeyDown(Enum.KeyCode.E)
			or Settings.AutoAttack
		if hold then
			local cam = Camera.CFrame
			Camera.CFrame = cam:Lerp(CFrame.new(cam.Position, currentTarget.Position), Settings.Smooth)
		end
	end

	if Settings.AutoAttack and currentTarget then
		local now = tick()
		local interval = 1 / math.max(Settings.AutoAttackCPS, 1)
		if now - lastClick >= interval then
			lastClick = now
			doClick()
		end
	end
end)

-- ========== SPIN ==========
local spinBAV = nil
local function stopSpin()
	if spinBAV then spinBAV:Destroy() spinBAV = nil end
	local root = getRoot()
	if root then root.AssemblyAngularVelocity = Vector3.zero end
end
local function startSpin()
	stopSpin()
	local root = getRoot()
	if not root then return end
	spinBAV = Instance.new("BodyAngularVelocity")
	spinBAV.Name = "ApathySpin"
	spinBAV.MaxTorque = Vector3.new(0, math.huge, 0)
	spinBAV.AngularVelocity = Vector3.new(0, Settings.SpinSpeed, 0)
	spinBAV.Parent = root
end
RunService.Heartbeat:Connect(function()
	if not Settings.Spin then
		if spinBAV then stopSpin() end
		return
	end
	local root = getRoot()
	if not root then return end
	if not spinBAV or spinBAV.Parent ~= root then
		startSpin()
	else
		spinBAV.AngularVelocity = Vector3.new(0, Settings.SpinSpeed, 0)
	end
end)

-- ========== HITBOX ENEMIES ONLY ==========
local BODY_NAMES = {
	Head = true, HumanoidRootPart = true, UpperTorso = true, LowerTorso = true, Torso = true
}
local originalSizes = {}
local function isLocalPart(part)
	local char = LocalPlayer.Character
	if not char or not part then return true end
	return part:IsDescendantOf(char)
end
local function restorePart(part)
	local size = originalSizes[part]
	if size and part and part.Parent then
		pcall(function() part.Size = size end)
	end
	originalSizes[part] = nil
end
local function restoreAllHitboxes()
	for part in pairs(originalSizes) do restorePart(part) end
	table.clear(originalSizes)
end
local function purgeLocalFromHitboxes()
	for part in pairs(originalSizes) do
		if isLocalPart(part) then restorePart(part) end
	end
end
local function expandEnemyHitboxes()
	purgeLocalFromHitboxes()
	if not Settings.HitboxExpand then
		restoreAllHitboxes()
		return
	end
	local seen = {}
	for _, plr in ipairs(Players:GetPlayers()) do
		if isEnemy(plr) then
			local char = plr.Character
			if char and char ~= LocalPlayer.Character then
				for _, part in ipairs(char:GetChildren()) do
					if part:IsA("BasePart") and BODY_NAMES[part.Name] and not isLocalPart(part) then
						seen[part] = true
						if not originalSizes[part] then originalSizes[part] = part.Size end
						pcall(function()
							part.Size = Settings.HitboxSize
							part.Massless = true
							part.CanCollide = false
						end)
					end
				end
			end
		end
	end
	for part in pairs(originalSizes) do
		if not seen[part] or not part.Parent or isLocalPart(part) then
			restorePart(part)
		end
	end
end
RunService.Heartbeat:Connect(expandEnemyHitboxes)

-- ========== MAGNET ==========
local function magnetStep()
	if not Settings.Magnet then return end
	local root = getRoot()
	if not root then return end
	local cf = root.CFrame
	local targetCF = CFrame.new(cf.Position + cf.LookVector * Settings.MagnetDistance + Vector3.new(0, Settings.MagnetHeight, 0))
	for _, plr in ipairs(Players:GetPlayers()) do
		if isEnemy(plr) then
			local eroot = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart")
			if eroot and not isLocalPart(eroot) then
				pcall(function()
					eroot.AssemblyLinearVelocity = Vector3.zero
					eroot.AssemblyAngularVelocity = Vector3.zero
					eroot.CFrame = targetCF
				end)
			end
		end
	end
end
RunService.Heartbeat:Connect(magnetStep)

-- ========== SILENT HOOKS ==========
local function redirectArgsToTarget(args)
	if not currentTarget or not currentTarget.Parent then return args end
	local pos, cf = currentTarget.Position, currentTarget.CFrame
	for i, v in ipairs(args) do
		local t = typeof(v)
		if t == "Vector3" then args[i] = pos
		elseif t == "CFrame" then args[i] = cf
		elseif t == "table" then
			if v.Hit then v.Hit = cf end
			if v.hit then v.hit = cf end
			if v.Target then v.Target = currentTarget end
			if v.target then v.target = currentTarget end
			if v.Position then v.Position = pos end
			if v.position then v.position = pos end
			if v.Origin and v.Direction then v.Direction = pos - v.Origin end
			if v.origin and v.direction then v.direction = pos - v.origin end
			if v.End then v.End = pos end
			if v.Point then v.Point = pos end
		end
	end
	return args
end

pcall(function()
	if not hookmetamethod or not getnamecallmethod or not newcclosure then error("no") end
	local old
	old = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
		local method = getnamecallmethod()
		local args = {...}
		if Settings.SilentAim and currentTarget and currentTarget.Parent then
			if method == "FireServer" or method == "fireServer" then
				return old(self, unpack(redirectArgsToTarget(args)))
			end
			if method == "Raycast" and self == Workspace then
				local origin = args[1]
				if typeof(origin) == "Vector3" then
					local dir = currentTarget.Position - origin
					args[2] = dir.Unit * math.max(dir.Magnitude, 1000)
					return old(self, unpack(args))
				end
			end
		end
		return old(self, ...)
	end))
end)

pcall(function()
	local mt = getrawmetatable(game)
	local oldIndex = mt.__index
	setreadonly(mt, false)
	mt.__index = newcclosure(function(self, key)
		if Settings.SilentAim and currentTarget and currentTarget.Parent and self == Mouse then
			if key == "Hit" or key == "hit" then return currentTarget.CFrame end
			if key == "Target" or key == "target" then return currentTarget end
		end
		return oldIndex(self, key)
	end)
	setreadonly(mt, true)
end)

-- ========== ESP — NO GHOSTS, NEVER SELF ==========
local ESP = {}

local function destroyDrawings(t)
	if not t then return end
	if t.corners then
		for i = 1, 8 do
			if t.corners[i] then
				pcall(function()
					t.corners[i].Visible = false
					t.corners[i]:Remove()
				end)
				t.corners[i] = nil
			end
		end
	end
	local elements = {"name", "dist", "hpBack", "hpBar", "tracer"}
	for _, key in ipairs(elements) do
		if t[key] then
			pcall(function()
				t[key].Visible = false
				t[key]:Remove()
			end)
			t[key] = nil
		end
	end
end

local function removeESP(plr)
	local t = ESP[plr]
	if t then
		destroyDrawings(t)
		ESP[plr] = nil
	end
end

local function clearAllESP()
	for plr, t in pairs(ESP) do
		destroyDrawings(t)
	end
	table.clear(ESP)
end

local function hideESP(t)
	if not t then return end
	if t.name then t.name.Visible = false end
	if t.dist then t.dist.Visible = false end
	if t.hpBack then t.hpBack.Visible = false end
	if t.hpBar then t.hpBar.Visible = false end
	if t.tracer then t.tracer.Visible = false end
	if t.corners then
		for i = 1, 8 do
			if t.corners[i] then t.corners[i].Visible = false end
		end
	end
end

local function makeESP()
	local corners = {}
	for i = 1, 8 do
		local l = Drawing.new("Line")
		l.Thickness = 2
		l.Visible = false
		corners[i] = l
	end
	local name = Drawing.new("Text")
	name.Size = 15
	name.Center = true
	name.Outline = true
	name.OutlineColor = Color3.new(0, 0, 0)
	name.Visible = false
	local dist = Drawing.new("Text")
	dist.Size = 13
	dist.Center = true
	dist.Outline = true
	dist.Visible = false
	local hpBack = Drawing.new("Square")
	hpBack.Filled = true
	hpBack.Color = Color3.fromRGB(30, 30, 30)
	hpBack.Visible = false
	local hpBar = Drawing.new("Square")
	hpBar.Filled = true
	hpBar.Visible = false
	local tracer = Drawing.new("Line")
	tracer.Thickness = 1
	tracer.Visible = false
	return {corners = corners, name = name, dist = dist, hpBack = hpBack, hpBar = hpBar, tracer = tracer}
end

local function drawCorners(t, x, y, w, h, color)
	local len = math.clamp(math.min(w, h) * 0.25, 4, 12)
	local L = t.corners
	L[1].From = Vector2.new(x, y);         L[1].To = Vector2.new(x + len, y)
	L[2].From = Vector2.new(x, y);         L[2].To = Vector2.new(x, y + len)
	L[3].From = Vector2.new(x + w, y);     L[3].To = Vector2.new(x + w - len, y)
	L[4].From = Vector2.new(x + w, y);     L[4].To = Vector2.new(x + w, y + len)
	L[5].From = Vector2.new(x, y + h);     L[5].To = Vector2.new(x + len, y + h)
	L[6].From = Vector2.new(x, y + h);     L[6].To = Vector2.new(x, y + h - len)
	L[7].From = Vector2.new(x + w, y + h); L[7].To = Vector2.new(x + w - len, y + h)
	L[8].From = Vector2.new(x + w, y + h); L[8].To = Vector2.new(x + w, y + h - len)
	for i = 1, 8 do
		L[i].Color = color
		L[i].Visible = true
	end
end

RunService.RenderStepped:Connect(function()
	if not Settings.ESP then
		clearAllESP()
		return
	end

	local myChar = LocalPlayer.Character
	local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
	local myPos = myRoot and myRoot.Position or Camera.CFrame.Position
	local color = Settings.ESPColor
	local valid = {}

	for _, plr in ipairs(Players:GetPlayers()) do
		local shouldRemove = false

		if plr == LocalPlayer or plr.UserId == LocalUserId then
			shouldRemove = true
		else
			local char = plr.Character
			if not char or not char.Parent then
				shouldRemove = true
			else
				local root = char:FindFirstChild("HumanoidRootPart")
				local head = char:FindFirstChild("Head")
				local hum = char:FindFirstChildOfClass("Humanoid")

				if not root or not head or not hum or hum.Health <= 0 then
					shouldRemove = true
				else
					if Settings.TeamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
						shouldRemove = true
					else
						valid[plr] = true
						local distance = (root.Position - myPos).Magnitude
						if distance > Settings.ESPMaxDist then
							shouldRemove = true
						else
							local t = ESP[plr]
							if not t then
								t = makeESP()
								ESP[plr] = t
							end

							local top = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.9, 0))
							local bottom = Camera:WorldToViewportPoint(root.Position - Vector3.new(0, 3, 0))

							if top.Z <= 0 or bottom.Z <= 0 then
								hideESP(t)
							else
								local height = math.abs(top.Y - bottom.Y)
								local width = height * 0.55
								local x, y = top.X - width / 2, top.Y
								local vs = Camera.ViewportSize

								if x + width < 0 or x > vs.X or y + height < 0 or y > vs.Y then
									hideESP(t)
								else
									if Settings.ESPCorners then
										drawCorners(t, x, y, width, height, color)
									else
										for i = 1, 8 do t.corners[i].Visible = false end
									end

									if Settings.ESPName then
										t.name.Text = (plr.DisplayName ~= plr.Name) and (plr.DisplayName .. " (@" .. plr.Name .. ")") or plr.Name
										t.name.Position = Vector2.new(top.X, y - 18)
										t.name.Color = color
										t.name.Visible = true
									else
										t.name.Visible = false
									end

									if Settings.ESPDistance then
										t.dist.Text = string.format("%dm", math.floor(distance))
										t.dist.Position = Vector2.new(top.X, bottom.Y + 4)
										t.dist.Color = Color3.fromRGB(220, 220, 220)
										t.dist.Visible = true
									else
										t.dist.Visible = false
									end

									if Settings.ESPHealth then
										local hp = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
										local barH, barW, barX = height, 3, x - 6
										t.hpBack.Size = Vector2.new(barW, barH)
										t.hpBack.Position = Vector2.new(barX, y)
										t.hpBack.Visible = true
										t.hpBar.Size = Vector2.new(barW, barH * hp)
										t.hpBar.Position = Vector2.new(barX, y + barH * (1 - hp))
										t.hpBar.Color = Color3.fromRGB(255 * (1 - hp), 255 * hp, 40)
										t.hpBar.Visible = true
									else
										t.hpBack.Visible = false
										t.hpBar.Visible = false
									end

									if Settings.ESPTracer then
										t.tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
										t.tracer.To = Vector2.new(bottom.X, bottom.Y)
										t.tracer.Color = color
										t.tracer.Visible = true
									else
										t.tracer.Visible = false
									end
								end
							end
						end
					end
				end
			end
		end

		if shouldRemove then
			removeESP(plr)
		end
	end

	for existingPlr, t in pairs(ESP) do
		if not valid[existingPlr] then
			removeESP(existingPlr)
		end
	end
end)

Players.PlayerRemoving:Connect(function(plr)
	removeESP(plr)
end)

local function hookCharacterRemoving(plr)
	plr.CharacterRemoving:Connect(function()
		removeESP(plr)
	end)
end
Players.PlayerAdded:Connect(hookCharacterRemoving)
for _, plr in ipairs(Players:GetPlayers()) do
	hookCharacterRemoving(plr)
end

-- ========== MOVEMENT ==========
local flyBV, flyBG, flyConn
local function stopFly()
	if flyConn then flyConn:Disconnect() flyConn = nil end
	if flyBV then flyBV:Destroy() flyBV = nil end
	if flyBG then flyBG:Destroy() flyBG = nil end
end
local function startFly()
	stopFly()
	local root, hum = getRoot(), getHum()
	if not root or not hum then return end
	flyBV = Instance.new("BodyVelocity")
	flyBV.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
	flyBV.Velocity = Vector3.zero
	flyBV.Parent = root
	flyBG = Instance.new("BodyGyro")
	flyBG.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
	flyBG.P = 9e4
	flyBG.Parent = root
	hum.PlatformStand = true
	flyConn = RunService.RenderStepped:Connect(function()
		if not Settings.Fly then
			stopFly()
			if hum then hum.PlatformStand = false end
			return
		end
		local cam = Camera.CFrame
		flyBG.CFrame = cam
		local move = Vector3.zero
		if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + cam.LookVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - cam.LookVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - cam.RightVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + cam.RightVector end
		if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0, 1, 0) end
		if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then move = move - Vector3.new(0, 1, 0) end
		flyBV.Velocity = move.Magnitude > 0 and move.Unit * Settings.FlySpeed or Vector3.zero
	end)
end

local noclipConn
local function setNoclip(on)
	if noclipConn then noclipConn:Disconnect() noclipConn = nil end
	if not on then return end
	noclipConn = RunService.Stepped:Connect(function()
		local char = getChar()
		if not char then return end
		for _, p in ipairs(char:GetDescendants()) do
			if p:IsA("BasePart") then p.CanCollide = false end
		end
	end)
end

local speedConn
local function setSpeed(on)
	if speedConn then speedConn:Disconnect() speedConn = nil end
	if on then
		speedConn = RunService.Heartbeat:Connect(function()
			local h = getHum()
			if h and Settings.Speed then h.WalkSpeed = Settings.WalkSpeed end
		end)
	else
		local h = getHum()
		if h then h.WalkSpeed = 16 end
	end
end

UserInputService.JumpRequest:Connect(function()
	if Settings.InfiniteJump then
		local h = getHum()
		if h then h:ChangeState(Enum.HumanoidStateType.Jumping) end
	end
end)

local function disableAllCombatHelpers()
	Settings.Magnet = false
	Settings.HitboxExpand = false
	Settings.Spin = false
	Settings.SilentAim = false
	Settings.CameraAim = false
	Settings.AutoAttack = false
	restoreAllHitboxes()
	stopSpin()
	clearAllESP()
end

LocalPlayer.CharacterAdded:Connect(function()
	task.wait(0.4)
	purgeLocalFromHitboxes()
	stopSpin()
	clearAllESP()
	if Settings.Fly then startFly() end
	if Settings.Noclip then setNoclip(true) end
	if Settings.Speed then setSpeed(true) end
	if Settings.Spin then startSpin() end
end)

LocalPlayer.CharacterRemoving:Connect(function()
	stopFly()
	stopSpin()
	purgeLocalFromHitboxes()
	clearAllESP()
end)

-- ========== UI ==========
local Window = Rayfield:CreateWindow({
	Name = "apathy — FORTLINE",
	LoadingTitle = "apathy",
	LoadingSubtitle = "clean ESP · auto-attack",
	Theme = "Amethyst",
	ConfigurationSaving = {
		Enabled = true,
		FolderName = "apathy",
		FileName = "fortline_aa"
	},
	KeySystem = false
})

local Combat = Window:CreateTab("Combat", 4483362458)
Combat:CreateSection("Aim / Attack")
Combat:CreateToggle({ Name = "Silent Aim", CurrentValue = false, Flag = "Silent", Callback = function(v) Settings.SilentAim = v end })
Combat:CreateToggle({ Name = "Camera Aim (RMB / E)", CurrentValue = false, Flag = "CamAim", Callback = function(v) Settings.CameraAim = v end })
Combat:CreateToggle({ Name = "Auto Attack", CurrentValue = false, Flag = "AA", Callback = function(v) Settings.AutoAttack = v end })
Combat:CreateSlider({ Name = "Auto Attack CPS", Range = {1, 20}, Increment = 1, CurrentValue = 12, Flag = "CPS", Callback = function(v) Settings.AutoAttackCPS = v end })
Combat:CreateSlider({ Name = "FOV", Range = {50, 500}, Increment = 5, CurrentValue = 220, Flag = "FOV", Callback = function(v) Settings.SilentFOV = v end })
Combat:CreateDropdown({ Name = "Aim Part", Options = {"Head", "HumanoidRootPart", "UpperTorso"}, CurrentOption = {"Head"}, Flag = "AimPart", Callback = function(o) Settings.SilentPart = type(o) == "table" and o[1] or o end })
Combat:CreateToggle({ Name = "Team Check", CurrentValue = false, Flag = "Team", Callback = function(v) Settings.TeamCheck = v end })

Combat:CreateSection("Hitbox (enemies ONLY)")
Combat:CreateToggle({ Name = "Expand enemy body parts", CurrentValue = false, Flag = "Hitbox", Callback = function(v) Settings.HitboxExpand = v if not v then restoreAllHitboxes() end end })
Combat:CreateSlider({ Name = "Hitbox Size", Range = {4, 30}, Increment = 1, CurrentValue = 12, Flag = "HBSize", Callback = function(v) Settings.HitboxSize = Vector3.new(v, v, v) end })

Combat:CreateSection("Magnet")
Combat:CreateToggle({ Name = "Magnet enemies", CurrentValue = false, Flag = "Magnet", Callback = function(v) Settings.Magnet = v end })
Combat:CreateSlider({ Name = "Magnet distance", Range = {2, 20}, Increment = 1, CurrentValue = 6, Flag = "MagDist", Callback = function(v) Settings.MagnetDistance = v end })

Combat:CreateSection("Spin")
Combat:CreateToggle({ Name = "Spin", CurrentValue = false, Flag = "Spin", Callback = function(v) Settings.Spin = v if v then startSpin() else stopSpin() end end })
Combat:CreateSlider({ Name = "Spin speed", Range = {5, 80}, Increment = 1, CurrentValue = 25, Flag = "SpinSpd", Callback = function(v) Settings.SpinSpeed = v end })

Combat:CreateSection("Kill switch")
Combat:CreateButton({ Name = "DISABLE all combat helpers", Callback = function() disableAllCombatHelpers() Rayfield:Notify({ Title = "apathy", Content = "All combat helpers OFF", Duration = 3 }) end })

local Visuals = Window:CreateTab("ESP", 4483362458)
Visuals:CreateToggle({ Name = "ESP", CurrentValue = true, Flag = "ESP", Callback = function(v) Settings.ESP = v if not v then clearAllESP() end end })
Visuals:CreateToggle({ Name = "Corner Box", CurrentValue = true, Flag = "Corners", Callback = function(v) Settings.ESPCorners = v end })
Visuals:CreateToggle({ Name = "Name", CurrentValue = true, Flag = "Name", Callback = function(v) Settings.ESPName = v end })
Visuals:CreateToggle({ Name = "Health Bar", CurrentValue = true, Flag = "HP", Callback = function(v) Settings.ESPHealth = v end })
Visuals:CreateToggle({ Name = "Distance", CurrentValue = true, Flag = "Dist", Callback = function(v) Settings.ESPDistance = v end })
Visuals:CreateToggle({ Name = "Tracer", CurrentValue = false, Flag = "Tracer", Callback = function(v) Settings.ESPTracer = v end })
Visuals:CreateSlider({ Name = "Max Distance", Range = {200, 5000}, Increment = 50, CurrentValue = 2500, Flag = "MaxD", Callback = function(v) Settings.ESPMaxDist = v end })
Visuals:CreateButton({ Name = "Force clear ESP ghosts", Callback = function() clearAllESP() Rayfield:Notify({ Title = "apathy", Content = "ESP cleared", Duration = 2 }) end })

local Move = Window:CreateTab("Movement", 4483362458)
Move:CreateToggle({ Name = "Fly", CurrentValue = false, Flag = "Fly", Callback = function(v) Settings.Fly = v if v then startFly() else stopFly() local h = getHum() if h then h.PlatformStand = false end end end })
Move:CreateSlider({ Name = "Fly Speed", Range = {20, 250}, Increment = 5, CurrentValue = 80, Flag = "FSpeed", Callback = function(v) Settings.FlySpeed = v end })
Move:CreateToggle({ Name = "Noclip", CurrentValue = false, Flag = "Noclip", Callback = function(v) Settings.Noclip = v setNoclip(v) end })
Move:CreateToggle({ Name = "Speed", CurrentValue = false, Flag = "Speed", Callback = function(v) Settings.Speed = v setSpeed(v) end })
Move:CreateSlider({ Name = "WalkSpeed", Range = {16, 100}, Increment = 1, CurrentValue = 28, Flag = "WSpeed", Callback = function(v) Settings.WalkSpeed = v end })
Move:CreateToggle({ Name = "Infinite Jump", CurrentValue = false, Flag = "InfJump", Callback = function(v) Settings.InfiniteJump = v end })

Rayfield:Notify({ Title = "apathy", Content = "Clean ESP + Auto Attack ready", Duration = 5 })
Rayfield:LoadConfiguration()

Similar Scripts

Virus Border Roleplay Script sidmubeera3854: Aimbot, ESP

No Key • 1 hour ago

+1 Spider Web Script sidmubeera3854: Auto Farm, Auto Wins

No Key • 1 hour ago

Sail Down A River Script Hyperr99: Auto Farm, Gem Farm

No Key • 1 hour ago

Steal a Superpower Script Sosiskomras: Kill Aura, Auto Farm

Key System • 1 hour ago

Prison Life Script Spent Hub: Silent Aim, ESP

No Key • 1 hour ago