UNIVERSAL AIMBOT AND ESP ANTI BAN
Key RequiredUniversal

UNIVERSAL AIMBOT AND ESP ANTI BAN

Universal Scriptmuhammadahmadyaqoobmuhammadahmadyaqoob 1.3K views 4.1K executesUpdated Jun 20, 2026
Unrated
00
Lua Script•631 lines (16504 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
 
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
 
-- =====================
-- RAYFIELD GUI SETUP
-- =====================
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
 
local Window = Rayfield:CreateWindow({
	Name = "⚡ MADE BY: FLAME_YT277 ⚡",
	LoadingTitle = "MADE BY: FLAME_YT277 ⚡",
	LoadingSubtitle = "MADE BY: FLAME_YT277 | Ultra-fast targeting system",
	ConfigurationSaving = {
		Enabled = true,
		FolderName = "RobloxLockOn",
		FileName = "Settings"
	},
	Discord = {
		Enabled = false,
	},
	KeySystem = false
})
 
-- =====================
-- SETTINGS STATE
-- =====================
local settings = {
	-- Lock-On Settings
	lockEnabled = false,
	snapLock = true,
	lockDistance = 700,
	lockSmoothness = 0.01,
	ignoreTeammates = false,
	toggleKey = Enum.KeyCode.Q,
	fovEnabled = true,
	fovAngle = 90,
	
	-- ESP Settings
	espEnabled = false,
	espShowNames = true,
	espShowDistance = true,
	espShowHealth = true,
	espBoxes = true,
	espCrosshair = true,
	espMaxDistance = 700,
	espHealthBars = true,
	
	-- Visual Settings
	showTargetCircle = true,
	targetCircleColor = Color3.fromRGB(220, 50, 50)
}
 
local lockOnState = {
	currentTarget = nil,
	targetCircle = nil,
	espObjects = {},
	fovCircle = nil
}
 
-- =====================
-- LOCK-ON TAB
-- =====================
local LockOnTab = Window:CreateTab("🎯 Lock-On", 4483362458)
 
LockOnTab:CreateLabel("⚡ MADE BY: FLAME_YT277 ⚡")
LockOnTab:CreateDivider()
 
local LockToggle = LockOnTab:CreateToggle({
	Name = "Enable Lock-On",
	CurrentValue = false,
	Flag = "LockToggle",
	Callback = function(Value)
		settings.lockEnabled = Value
		if not Value then
			lockOnState.currentTarget = nil
		end
	end,
})
 
local SnapLockToggle = LockOnTab:CreateToggle({
	Name = "Snap Lock (INSTANT)",
	CurrentValue = true,
	Flag = "SnapLock",
	Callback = function(Value)
		settings.snapLock = Value
	end,
})
 
local FOVToggle = LockOnTab:CreateToggle({
	Name = "FOV Check",
	CurrentValue = true,
	Flag = "FOVCheck",
	Callback = function(Value)
		settings.fovEnabled = Value
	end,
})
 
LockOnTab:CreateSlider({
	Name = "FOV Angle",
	Range = {30, 180},
	Increment = 5,
	Suffix = "°",
	CurrentValue = 90,
	Flag = "FOVAngle",
	Callback = function(Value)
		settings.fovAngle = Value
	end,
})
 
LockOnTab:CreateSlider({
	Name = "Lock Distance",
	Range = {25, 700},
	Increment = 5,
	Suffix = " studs",
	CurrentValue = 100,
	Flag = "LockDistance",
	Callback = function(Value)
		settings.lockDistance = Value
	end,
})
 
LockOnTab:CreateSlider({
	Name = "Lock Smoothness",
	Range = {0.01, 0.5},
	Increment = 0.02,
	Suffix = "",
	CurrentValue = 0.01,
	Flag = "LockSmoothness",
	Callback = function(Value)
		settings.lockSmoothness = Value
	end,
})
 
local IgnoreTeammatesToggle = LockOnTab:CreateToggle({
	Name = "Ignore Teammates",
	CurrentValue = false,
	Flag = "IgnoreTeammates",
	Callback = function(Value)
		settings.ignoreTeammates = Value
	end,
})
 
LockOnTab:CreateKeybind({
	Name = "Toggle Lock-On",
	CurrentKeybind = "Q",
	HoldToInteract = false,
	Flag = "ToggleKey",
	Callback = function(Keybind)
		settings.toggleKey = Keybind
	end,
})
 
-- =====================
-- ESP TAB
-- =====================
local ESPTab = Window:CreateTab("👁️ ESP", 6023366590)
 
local ESPToggle = ESPTab:CreateToggle({
	Name = "Enable ESP",
	CurrentValue = false,
	Flag = "ESPToggle",
	Callback = function(Value)
		settings.espEnabled = Value
		if not Value then
			for _, v in pairs(lockOnState.espObjects) do
				if v and v.Parent then
					pcall(function() v:Destroy() end)
				end
			end
			lockOnState.espObjects = {}
		end
	end,
})
 
local ESPNamesToggle = ESPTab:CreateToggle({
	Name = "Show Names",
	CurrentValue = true,
	Flag = "ESPNames",
	Callback = function(Value)
		settings.espShowNames = Value
	end,
})
 
local ESPDistanceToggle = ESPTab:CreateToggle({
	Name = "Show Distance",
	CurrentValue = true,
	Flag = "ESPDistance",
	Callback = function(Value)
		settings.espShowDistance = Value
	end,
})
 
local ESPHealthToggle = ESPTab:CreateToggle({
	Name = "Show Health",
	CurrentValue = true,
	Flag = "ESPHealth",
	Callback = function(Value)
		settings.espShowHealth = Value
	end,
})
 
local ESPHealthBarsToggle = ESPTab:CreateToggle({
	Name = "Health Bars",
	CurrentValue = true,
	Flag = "ESPHealthBars",
	Callback = function(Value)
		settings.espHealthBars = Value
	end,
})
 
local ESPBoxesToggle = ESPTab:CreateToggle({
	Name = "ESP Boxes",
	CurrentValue = true,
	Flag = "ESPBoxes",
	Callback = function(Value)
		settings.espBoxes = Value
	end,
})
 
local ESPCrosshairToggle = ESPTab:CreateToggle({
	Name = "Crosshairs",
	CurrentValue = true,
	Flag = "ESPCrosshair",
	Callback = function(Value)
		settings.espCrosshair = Value
	end,
})
 
ESPTab:CreateSlider({
	Name = "ESP Max Distance",
	Range = {50, 700},
	Increment = 25,
	Suffix = " studs",
	CurrentValue = 200,
	Flag = "ESPMaxDistance",
	Callback = function(Value)
		settings.espMaxDistance = Value
	end,
})
 
-- =====================
-- VISUALS TAB
-- =====================
local VisualsTab = Window:CreateTab("✨ Visuals", 9191085848)
 
local TargetCircleToggle = VisualsTab:CreateToggle({
	Name = "Target Circle",
	CurrentValue = true,
	Flag = "TargetCircle",
	Callback = function(Value)
		settings.showTargetCircle = Value
		if not Value and lockOnState.targetCircle then
			lockOnState.targetCircle:Destroy()
			lockOnState.targetCircle = nil
		end
	end,
})
 
VisualsTab:CreateLabel("Made by: FLAME_YT277")
 
-- =====================
-- KEYBIND TOGGLE
-- =====================
UserInputService.InputBegan:Connect(function(input, processed)
	if processed then return end
	if input.KeyCode == settings.toggleKey then
		settings.lockEnabled = not settings.lockEnabled
		LockToggle:Set(settings.lockEnabled)
	end
end)
 
-- =====================
-- FOV CHECK FUNCTION
-- =====================
local function isInFOV(targetPosition)
	if not settings.fovEnabled then return true end
	
	local character = player.Character
	if not character then return false end
	local rootPart = character:FindFirstChild("HumanoidRootPart")
	if not rootPart then return false end
	
	local cameraPos = camera.CFrame.Position
	local cameraForward = camera.CFrame.LookVector
	local directionToTarget = (targetPosition - cameraPos).Unit
	
	-- Calculate angle between camera forward and target
	local angle = math.acos(math.clamp(cameraForward:Dot(directionToTarget), -1, 1))
	local angleInDegrees = math.deg(angle)
	
	return angleInDegrees <= (settings.fovAngle / 2)
end
 
-- =====================
-- VISIBILITY CHECK (RAYCAST)
-- =====================
local function isHeadVisible(head)
	local character = player.Character
	if not character then return false end
	local rootPart = character:FindFirstChild("HumanoidRootPart")
	if not rootPart then return false end
 
	local origin = rootPart.Position
	local direction = (head.Position - origin)
 
	local rayParams = RaycastParams.new()
	rayParams.FilterDescendantsInstances = {character}
	rayParams.FilterType = Enum.RaycastFilterType.Exclude
 
	local result = workspace:Raycast(origin, direction, rayParams)
 
	if result then
		local hitInstance = result.Instance
		local hitCharacter = hitInstance:FindFirstAncestorOfClass("Model")
		if hitCharacter and hitCharacter:FindFirstChild("Humanoid") then
			return hitCharacter == head.Parent
		end
		return false
	end
 
	return true
end
 
-- =====================
-- FIND NEAREST VISIBLE TARGET (WITH FOV CHECK)
-- =====================
local function getNearestVisibleTarget()
	local character = player.Character
	if not character then return nil end
	local rootPart = character:FindFirstChild("HumanoidRootPart")
	if not rootPart then return nil end
 
	local nearest = nil
	local nearestDist = settings.lockDistance
 
	for _, otherPlayer in ipairs(Players:GetPlayers()) do
		if otherPlayer == player then continue end
 
		local otherChar = otherPlayer.Character
		if not otherChar then continue end
 
		if settings.ignoreTeammates and otherPlayer.Team == player.Team then
			continue
		end
 
		local humanoid = otherChar:FindFirstChild("Humanoid")
		local head = otherChar:FindFirstChild("Head")
 
		if not humanoid or humanoid.Health <= 0 or not head then continue end
 
		-- FOV CHECK
		if not isInFOV(head.Position) then continue end
 
		local dist = (rootPart.Position - head.Position).Magnitude
		if dist < nearestDist and isHeadVisible(head) then
			nearest = head
			nearestDist = dist
		end
	end
 
	return nearest
end
 
-- =====================
-- TARGET CIRCLE (VISUAL FEEDBACK)
-- =====================
local function createTargetCircle()
	if lockOnState.targetCircle then
		lockOnState.targetCircle:Destroy()
	end
 
	local circle = Instance.new("BillboardGui")
	circle.Size = UDim2.new(4, 0, 4, 0)
	circle.MaxDistance = settings.lockDistance * 1.5
	circle.Adornee = lockOnState.currentTarget
 
	local frame = Instance.new("Frame")
	frame.Size = UDim2.new(1, 0, 1, 0)
	frame.BackgroundTransparency = 1
	frame.Parent = circle
 
	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(1, 0)
	corner.Parent = frame
 
	local stroke = Instance.new("UIStroke")
	stroke.Thickness = 2
	stroke.Color = settings.targetCircleColor
	stroke.Parent = frame
 
	circle.Parent = workspace
	lockOnState.targetCircle = circle
end
 
-- =====================
-- IMPROVED ESP SYSTEM
-- =====================
local function createESP(otherPlayer)
	local otherChar = otherPlayer.Character
	if not otherChar then return end
 
	local head = otherChar:FindFirstChild("Head")
	if not head then return end
 
	local espContainer = Instance.new("Folder")
	espContainer.Name = "ESP_" .. otherPlayer.UserId
	espContainer.Parent = workspace
 
	-- Main info billboard
	local espGui = Instance.new("BillboardGui")
	espGui.MaxDistance = settings.espMaxDistance
	espGui.Size = UDim2.new(5, 0, 6, 0)
	espGui.Adornee = head
 
	local mainFrame = Instance.new("Frame")
	mainFrame.BackgroundTransparency = 0.3
	mainFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
	mainFrame.Size = UDim2.new(1, 0, 1, 0)
	mainFrame.Parent = espGui
 
	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, 6)
	corner.Parent = mainFrame
 
	local stroke = Instance.new("UIStroke")
	stroke.Thickness = 2
	stroke.Color = Color3.fromRGB(0, 255, 0)
	stroke.Parent = mainFrame
 
	local textLabel = Instance.new("TextLabel")
	textLabel.BackgroundTransparency = 1
	textLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
	textLabel.TextSize = 13
	textLabel.Font = Enum.Font.GothamBold
	textLabel.Size = UDim2.new(1, 0, 0.8, 0)
	textLabel.Position = UDim2.new(0, 0, 0, 0)
	textLabel.TextWrapped = true
	textLabel.Parent = mainFrame
 
	-- Health bar background
	local healthBarBg = Instance.new("Frame")
	healthBarBg.BackgroundColor3 = Color3.fromRGB(100, 0, 0)
	healthBarBg.Size = UDim2.new(1, 0, 0.2, 0)
	healthBarBg.Position = UDim2.new(0, 0, 0.8, 0)
	healthBarBg.Parent = mainFrame
 
	-- Health bar fill
	local healthBarFill = Instance.new("Frame")
	healthBarFill.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	healthBarFill.Size = UDim2.new(1, 0, 1, 0)
	healthBarFill.Parent = healthBarBg
 
	espGui.Parent = espContainer
 
	-- Crosshair (if enabled)
	local crosshairGui = Instance.new("BillboardGui")
	crosshairGui.MaxDistance = settings.espMaxDistance
	crosshairGui.Size = UDim2.new(2, 0, 2, 0)
	crosshairGui.Adornee = head
 
	local crossFrame = Instance.new("Frame")
	crossFrame.BackgroundTransparency = 1
	crossFrame.Size = UDim2.new(1, 0, 1, 0)
	crossFrame.Parent = crosshairGui
 
	local crossH = Instance.new("Frame")
	crossH.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	crossH.Size = UDim2.new(0.6, 0, 0.1, 0)
	crossH.Position = UDim2.new(0.2, 0, 0.45, 0)
	crossH.Parent = crossFrame
 
	local crossV = Instance.new("Frame")
	crossV.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
	crossV.Size = UDim2.new(0.1, 0, 0.6, 0)
	crossV.Position = UDim2.new(0.45, 0, 0.2, 0)
	crossV.Parent = crossFrame
 
	crosshairGui.Parent = espContainer
 
	-- Store ESP data
	lockOnState.espObjects[otherPlayer.UserId] = {
		container = espContainer,
		mainGui = espGui,
		textLabel = textLabel,
		healthBarFill = healthBarFill,
		crosshairGui = crosshairGui,
		humanoid = otherChar:FindFirstChild("Humanoid")
	}
 
	-- Cleanup when humanoid dies
	local humanoid = otherChar:FindFirstChild("Humanoid")
	if humanoid then
		humanoid.HealthChanged:Connect(function()
			if humanoid.Health <= 0 then
				if lockOnState.espObjects[otherPlayer.UserId] then
					lockOnState.espObjects[otherPlayer.UserId].container:Destroy()
					lockOnState.espObjects[otherPlayer.UserId] = nil
				end
			end
		end)
	end
end
 
-- =====================
-- MAIN LOOP - ULTRA OPTIMIZED
-- =====================
RunService.RenderStepped:Connect(function()
	local character = player.Character
	if not character then return end
	local rootPart = character:FindFirstChild("HumanoidRootPart")
	if not rootPart then return end
 
	-- ========== LOCK-ON ==========
	if settings.lockEnabled then
		lockOnState.currentTarget = getNearestVisibleTarget()
 
		if lockOnState.currentTarget then
			if settings.snapLock then
				camera.CFrame = CFrame.lookAt(camera.CFrame.Position, lockOnState.currentTarget.Position)
			else
				local currentCFrame = camera.CFrame
				local lookAt = CFrame.lookAt(currentCFrame.Position, lockOnState.currentTarget.Position)
				camera.CFrame = currentCFrame:Lerp(lookAt, settings.lockSmoothness)
			end
		end
 
		-- Update target circle
		if settings.showTargetCircle then
			if lockOnState.currentTarget then
				if not lockOnState.targetCircle then
					createTargetCircle()
				else
					lockOnState.targetCircle.Adornee = lockOnState.currentTarget
				end
			else
				if lockOnState.targetCircle then
					lockOnState.targetCircle:Destroy()
					lockOnState.targetCircle = nil
				end
			end
		end
	end
 
	-- ========== ESP ==========
	if settings.espEnabled then
		for _, otherPlayer in ipairs(Players:GetPlayers()) do
			if otherPlayer == player then continue end
 
			local otherChar = otherPlayer.Character
			if not otherChar or not otherChar:FindFirstChild("Humanoid") then continue end
 
			local humanoid = otherChar.Humanoid
			if humanoid.Health <= 0 then continue end
 
			local head = otherChar:FindFirstChild("Head")
			if not head then continue end
 
			-- Create ESP if doesn't exist
			if not lockOnState.espObjects[otherPlayer.UserId] then
				createESP(otherPlayer)
			else
				-- Update ESP data
				local espData = lockOnState.espObjects[otherPlayer.UserId]
				if espData and espData.container.Parent then
					local distance = (rootPart.Position - head.Position).Magnitude
 
					-- Update text
					local espText = ""
					if settings.espShowNames then
						espText = espText .. otherPlayer.Name .. "\n"
					end
					if settings.espShowDistance then
						espText = espText .. string.format("%.1f studs", distance)
					end
 
					espData.textLabel.Text = espText
 
					-- Update health bar
					if settings.espHealthBars and espData.humanoid then
						local healthPercent = math.clamp(espData.humanoid.Health / espData.humanoid.MaxHealth, 0, 1)
						espData.healthBarFill.Size = UDim2.new(healthPercent, 0, 1, 0)
 
						-- Color gradient
						if healthPercent > 0.5 then
							espData.healthBarFill.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
						elseif healthPercent > 0.25 then
							espData.healthBarFill.BackgroundColor3 = Color3.fromRGB(255, 255, 0)
						else
							espData.healthBarFill.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
						end
					end
 
					-- Toggle crosshair visibility
					espData.crosshairGui.Enabled = settings.espCrosshair
				end
			end
		end
	end
end)
 
-- =====================
-- CLEANUP
-- =====================
player.CharacterAdded:Connect(function()
	if lockOnState.targetCircle then
		lockOnState.targetCircle:Destroy()
		lockOnState.targetCircle = nil
	end
	lockOnState.currentTarget = nil
	for _, v in pairs(lockOnState.espObjects) do
		if v and v.container and v.container.Parent then
			v.container:Destroy()
		end
	end
	lockOnState.espObjects = {}
end)
 
Players.PlayerRemoving:Connect(function(leavingPlayer)
	if lockOnState.espObjects[leavingPlayer.UserId] then
		if lockOnState.espObjects[leavingPlayer.UserId].container then
			lockOnState.espObjects[leavingPlayer.UserId].container:Destroy()
		end
		lockOnState.espObjects[leavingPlayer.UserId] = nil
	end
end)
 
Rayfield:LoadConfiguration()

Features & Information

ANTI BAN UNIVERSAL AIMBOT AND ESP KEYLESS SCRIPT MADE BY:FLAME_YT277
#KEYLESS#AIMBOT#UNIVERSAL#ESP#ANTI BAN

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts