local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local Teams = game:GetService("Teams") local localPlayer = Players.LocalPlayer local camera = workspace.CurrentCamera local gui = {} local config = { aimbotEnabled = false, aimbotFOVSize = 100, aimbotStrength = 0.5, aimbotWallCheck = false, aimbotTargetPart = "Head", aimbotTeamTarget = "Enemies", aimbotCurrentTarget = nil, aimbotFOVRing = nil, aimbot360Enabled = false, aimbot360OriginalFOV = 100, aimbot360Omnidirectional = true, aimbot360BehindRange = 180, aimbotGetTarget = "Closest", masterGetTarget = "Closest", masterTeamTarget = "Enemies", masterTarget = "Players", targetMode = "Enemies", espc = Color3.fromRGB(255, 182, 193), esptargetc = Color3.fromRGB(255, 255, 0), espMasterEnabled = false, prefTextESP = false, prefHighlightESP = false, prefBoxESP = false, prefHealthESP = false, prefHeadDotESP = false, prefColorByHealth = false, espData = {}, highlightData = {}, playerConnections = {}, characterConnections = {}, currentTarget = nil, activeApplied = {}, originalSizes = {}, targethbSizes = {}, centerLocked = {}, hitchance = 100, fovsize = 120, fovc = Color3.fromRGB(100, 0, 0), fovct = Color3.fromRGB(255, 255, 0), wallc = false, rfd = false, looprfd = false, Enabled = false, bodypart = "Head", gp = 200, } local Alurt = loadstring(game:HttpGet("https://raw.githubusercontent.com/azir-py/project/refs/heads/main/Zwolf/AlurtUI.lua"))() local function safeNotify(opts) if typeof(Alurt) == "table" and type(Alurt.CreateNode) == "function" then pcall(function() Alurt.CreateNode(opts) end) end end local lib do local success, result = pcall(function() return loadstring(game:HttpGet("https://raw.githubusercontent.com/hm5650/ACXUI/refs/heads/main/ACXUI"))() end) if success and result then lib = result else lib = {} function lib:SetTitle() end function lib:SetIcon() end function lib:AddToggle(_, callback, default) if callback then pcall(callback, default) end end function lib:AddComboBox(_, _, callback) if callback then pcall(callback, "Enemies") end end function lib:AddInputBox(_, callback, _, default) if callback then pcall(callback, tostring(default)) end end function lib:CreateTab() return {} end function lib:Tab() end end end local function isTeammate(p) if not (localPlayer and p) then return false end if typeof(p) == "Instance" and p:IsA("Player") then if localPlayer.Team and p.Team then return localPlayer.Team == p.Team end end return false end local function getTargetCharacter(target) if not target then return nil end if typeof(target) == "Instance" then if target:IsA("Player") then return target.Character end end return nil end local function plralive(target) if not target then return false end if typeof(target) == "Instance" and target:IsA("Player") then local character = target.Character if not character then return false end local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid then return false end return humanoid.Health > 0 end return false end local function getAllTargets() local targets = {} for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer then table.insert(targets, pl) end end return targets end local function addesp(targetPlayer) if not targetPlayer then return false end if typeof(targetPlayer) == "Instance" and targetPlayer:IsA("Player") and targetPlayer == localPlayer then return false end local mode = config.targetMode or "Enemies" if mode == "Enemies" then if typeof(targetPlayer) == "Instance" and targetPlayer:IsA("Player") then if isTeammate(targetPlayer) then return false else return true end else return true end elseif mode == "Teams" then if typeof(targetPlayer) == "Instance" and targetPlayer:IsA("Player") then return isTeammate(targetPlayer) else return false end elseif mode == "All" then return true else if typeof(targetPlayer) == "Instance" and targetPlayer:IsA("Player") then if isTeammate(targetPlayer) then return false else return true end else return true end end end local function chooseBodyPartInstance(target) local char = getTargetCharacter(target) if not char then return nil, "Head" end local bp = "Head" return char:FindFirstChild(bp) or char:FindFirstChild("Head"), (char:FindFirstChild(bp) and char:FindFirstChild(bp).Name) or "Head" end local function saveOriginalPartInfo(targetPlayer, part) if not targetPlayer or not part then return end config.originalSizes[targetPlayer] = { partName = part.Name or "Head", size = part.Size, } end local function applySizeToPart(targetPlayer, targetDiameter, chosenPart) local char = getTargetCharacter(targetPlayer) if not char or targetPlayer == localPlayer then return end if not plralive(targetPlayer) then return end local part = chosenPart if not part then part, _ = chooseBodyPartInstance(targetPlayer) end if not part then return end if not config.originalSizes[targetPlayer] then saveOriginalPartInfo(targetPlayer, part) end local expansionSize = Vector3.new(targetDiameter, targetDiameter, targetDiameter) local chance = math.clamp(tonumber(config.hitchance) or 100, 0, 100) local useExpanded = true if chance <= 0 then useExpanded = false elseif chance < 100 then if math.random(1, 100) <= chance then useExpanded = true else useExpanded = false end else useExpanded = true end if useExpanded then config.targethbSizes[targetPlayer] = expansionSize else local original = config.originalSizes[targetPlayer] if original and original.size then config.targethbSizes[targetPlayer] = original.size else config.targethbSizes[targetPlayer] = Vector3.new(0.05, 0.05, 0.05) end end config.activeApplied[targetPlayer] = true end local function restorePartForPlayer(targetPlayer) if not targetPlayer or targetPlayer == localPlayer then return end local char = getTargetCharacter(targetPlayer) local original = config.originalSizes[targetPlayer] if not original then config.activeApplied[targetPlayer] = nil config.targethbSizes[targetPlayer] = nil return end local part = nil if char then part = char:FindFirstChild(original.partName) or char:FindFirstChild("Head") end if part and original.size then pcall(function() part.Size = original.size part.Transparency = 1 part.CanCollide = false part.Massless = false end) end config.activeApplied[targetPlayer] = nil config.originalSizes[targetPlayer] = nil config.targethbSizes[targetPlayer] = nil config.centerLocked[targetPlayer] = nil end local function wallCheck(targetPos, sourcePos) if not config.wallc then return true end if (targetPos - sourcePos).Magnitude <= 0 then return true end local ray = Ray.new(sourcePos, (targetPos - sourcePos).Unit * (targetPos - sourcePos).Magnitude) local ignoreList = {} if localPlayer and localPlayer.Character then table.insert(ignoreList, localPlayer.Character) end for _, otherPlayer in ipairs(Players:GetPlayers()) do if otherPlayer.Character then table.insert(ignoreList, otherPlayer.Character) end end local hit, position = Workspace:FindPartOnRayWithIgnoreList(ray, ignoreList) if hit and position then local distanceToTarget = (targetPos - sourcePos).Magnitude local distanceToHit = (position - sourcePos).Magnitude return distanceToHit >= (distanceToTarget - 2) end return true end local function high(targetPlayer) if not targetPlayer or not getTargetCharacter(targetPlayer) then return end if not addesp(targetPlayer) then return end if config.highlightData[targetPlayer] then local existing = config.highlightData[targetPlayer] if existing and existing.Parent then if targetPlayer == config.currentTarget or targetPlayer == config.aimbotCurrentTarget then existing.FillColor = config.esptargetc else existing.FillColor = config.espc end return else config.highlightData[targetPlayer] = nil end end local character = getTargetCharacter(targetPlayer) if not character then return end local highlight = Instance.new("Highlight") highlight.Name = "PlayerHighlight" highlight.FillColor = config.espc highlight.FillTransparency = 0.5 highlight.OutlineColor = Color3.new(1, 1, 1) highlight.OutlineTransparency = 0 pcall(function() highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop end) highlight.Parent = character if targetPlayer == config.currentTarget or targetPlayer == config.aimbotCurrentTarget then highlight.FillColor = config.esptargetc else highlight.FillColor = config.espc end config.highlightData[targetPlayer] = highlight end local function removeHighlightESP(targetPlayer) if not targetPlayer then return end local h = config.highlightData[targetPlayer] if h and h.Parent then pcall(function() h:Destroy() end) end config.highlightData[targetPlayer] = nil end local function removeESPLabel(targetPlayer) if not targetPlayer then return end local data = config.espData[targetPlayer] if not data then return end if data.connection then pcall(function() data.connection:Disconnect() end) data.connection = nil end if data.screenGui and data.screenGui.Parent then pcall(function() data.screenGui:Destroy() end) end config.espData[targetPlayer] = nil end local function healthColor(humanoid) if not humanoid then return config.espc end local maxH = humanoid.MaxHealth or 100 local health = math.clamp(humanoid.Health / maxH, 0, 1) local r = 1 - health local g = health return Color3.new(r, g, 0) end local function makeesp(targetPlayer) if not targetPlayer then return end if not addesp(targetPlayer) then return end if config.espData[targetPlayer] then local oldData = config.espData[targetPlayer] if oldData.connection then pcall(function() oldData.connection:Disconnect() end) end if oldData.screenGui and oldData.screenGui.Parent then pcall(function() oldData.screenGui:Destroy() end) end end local screenGui = Instance.new("ScreenGui") screenGui.Name = "ESP_" .. tostring(targetPlayer.Name) screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.IgnoreGuiInset = true screenGui.Parent = localPlayer:WaitForChild("PlayerGui") local label = Instance.new("TextLabel") label.Name = "ESPLabel" label.BackgroundTransparency = 1 label.Text = targetPlayer.Name label.TextSize = 6 label.Font = Enum.Font.GothamBold label.TextStrokeTransparency = 0 label.TextStrokeColor3 = Color3.new(0, 0, 0) label.Visible = false label.Size = UDim2.new(0, 200, 0, 20) label.AnchorPoint = Vector2.new(0.5, 1) label.TextXAlignment = Enum.TextXAlignment.Center label.Parent = screenGui local boxFrame = Instance.new("Frame") boxFrame.Name = "ESPBox" boxFrame.AnchorPoint = Vector2.new(0, 0) boxFrame.Size = UDim2.new(0, 0, 0, 0) boxFrame.Position = UDim2.new(0, 0, 0, 0) boxFrame.BackgroundTransparency = 0.6 boxFrame.BorderSizePixel = 0 boxFrame.Visible = false boxFrame.Parent = screenGui local boxOutline = Instance.new("UIStroke") boxOutline.Thickness = 1 boxOutline.LineJoinMode = Enum.LineJoinMode.Round boxOutline.Color = config.espc boxOutline.Transparency = 0.1 boxOutline.Parent = boxFrame local healthBg = Instance.new("Frame") healthBg.Name = "HealthBG" healthBg.AnchorPoint = Vector2.new(0, 0) healthBg.Size = UDim2.new(0, 4, 0, 0) healthBg.Position = UDim2.new(0, 0, 0, 0) healthBg.BackgroundTransparency = 0.6 healthBg.BackgroundColor3 = Color3.fromRGB(0,0,0) healthBg.BorderSizePixel = 0 healthBg.Visible = false healthBg.Parent = screenGui local healthFill = Instance.new("Frame") healthFill.Name = "HealthFill" healthFill.AnchorPoint = Vector2.new(0, 1) healthFill.Size = UDim2.new(1, 0, 0, 0) healthFill.Position = UDim2.new(0, 0, 1, 0) healthFill.BackgroundColor3 = Color3.fromRGB(0,255,0) healthFill.BorderSizePixel = 0 healthFill.Parent = healthBg local headDot = Instance.new("Frame") headDot.Name = "HeadDot" headDot.Size = UDim2.new(0, 6, 0, 6) headDot.AnchorPoint = Vector2.new(0.5, 0.5) headDot.BackgroundColor3 = config.espc headDot.BorderSizePixel = 0 headDot.Visible = false headDot.Parent = screenGui label.TextColor3 = config.espc if targetPlayer == config.currentTarget or targetPlayer == config.aimbotCurrentTarget then label.TextColor3 = config.esptargetc end local function startUpdater() if config.espData[targetPlayer] and config.espData[targetPlayer].connection then pcall(function() config.espData[targetPlayer].connection:Disconnect() end) end local conn = RunService.RenderStepped:Connect(function() local tchar = getTargetCharacter(targetPlayer) local charExists = tchar and tchar.Parent if not charExists then if label then label.Visible = false end if boxFrame then boxFrame.Visible = false end if healthBg then healthBg.Visible = false end if headDot then headDot.Visible = false end return end if not addesp(targetPlayer) then label.Visible = false boxFrame.Visible = false healthBg.Visible = false headDot.Visible = false return end local head = tchar:FindFirstChild("Head") local root = tchar:FindFirstChild("HumanoidRootPart") or tchar:FindFirstChild("Torso") or tchar:FindFirstChild("UpperTorso") if not head or not root then label.Visible = false boxFrame.Visible = false healthBg.Visible = false headDot.Visible = false return end local topPos = head.Position + Vector3.new(0, 0.4, 0) local bottomPos = root.Position - Vector3.new(0, 1.0, 0) local midPos = (topPos + bottomPos) * 0.5 local topV3, onTop = camera:WorldToViewportPoint(topPos) local bottomV3, onBottom = camera:WorldToViewportPoint(bottomPos) local midV3, onMid = camera:WorldToViewportPoint(midPos) local onScreen = onTop and onBottom and onMid and topV3.Z > 0 and bottomV3.Z > 0 and midV3.Z > 0 local topScreenY = topV3.Y local bottomScreenY = bottomV3.Y local centerX = midV3.X local heightPx = math.abs(bottomScreenY - topScreenY) if heightPx <= 2 then heightPx = 2 end local widthPx = math.clamp(heightPx * 0.45, 4, 400) local humanoid = tchar:FindFirstChildOfClass("Humanoid") local hpRatio = 1 if humanoid then local maxH = humanoid.MaxHealth or 100 if maxH > 0 then hpRatio = math.clamp(humanoid.Health / maxH, 0, 1) end end local hpColor = Color3.new(1,1,1) if humanoid then hpColor = healthColor(humanoid) end if config.espMasterEnabled and config.prefTextESP then local text = string.format("%s [%d]", targetPlayer.Name, humanoid and math.floor(humanoid.Health) or 0) label.Text = text local absWidth = 200 pcall(function() if label.TextBounds and label.TextBounds.X and label.TextBounds.X > 0 then absWidth = label.TextBounds.X + 8 elseif label.AbsoluteSize and label.AbsoluteSize.X and label.AbsoluteSize.X > 0 then absWidth = label.AbsoluteSize.X end end) label.Size = UDim2.new(0, absWidth, 0, 18) label.Position = UDim2.new(0, centerX, 0, topScreenY - 4) label.Visible = onScreen if config.prefColorByHealth and humanoid then label.TextColor3 = hpColor else label.TextColor3 = ((targetPlayer == config.currentTarget) or (targetPlayer == config.aimbotCurrentTarget)) and config.esptargetc or config.espc end else label.Visible = false end if config.espMasterEnabled and config.prefBoxESP then boxFrame.Size = UDim2.new(0, widthPx, 0, math.max(2, heightPx)) boxFrame.Position = UDim2.new(0, centerX - widthPx / 2, 0, topScreenY) boxFrame.Visible = onScreen boxFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) boxFrame.BackgroundTransparency = 0.7 if config.prefColorByHealth and humanoid then boxOutline.Color = hpColor else boxOutline.Color = ((targetPlayer == config.currentTarget) or (targetPlayer == config.aimbotCurrentTarget)) and config.esptargetc or config.espc end else boxFrame.Visible = false end if config.espMasterEnabled and config.prefHealthESP and humanoid then healthBg.Size = UDim2.new(0, 4, 0, math.max(2, heightPx)) healthBg.Position = UDim2.new(0, centerX + widthPx / 2 + 4, 0, topScreenY) healthBg.Visible = onScreen healthFill.Size = UDim2.new(1, 0, hpRatio, 0) healthFill.Position = UDim2.new(0, 0, 1, 0) healthFill.BackgroundColor3 = healthColor(humanoid) else healthBg.Visible = false end if config.espMasterEnabled and config.prefHeadDotESP and head then local headV3, onHead = camera:WorldToViewportPoint(head.Position) if onHead and headV3.Z > 0 then headDot.Position = UDim2.new(0, headV3.X, 0, headV3.Y) headDot.Visible = true if config.prefColorByHealth and humanoid then headDot.BackgroundColor3 = hpColor else headDot.BackgroundColor3 = ((targetPlayer == config.currentTarget) or (targetPlayer == config.aimbotCurrentTarget)) and config.esptargetc or config.espc end else headDot.Visible = false end else headDot.Visible = false end end) config.espData[targetPlayer] = { label = label, screenGui = screenGui, connection = conn, box = boxFrame, boxOutline = boxOutline, healthBG = healthBg, healthFill = healthFill, headDot = headDot } end local char = getTargetCharacter(targetPlayer) if char and (char:FindFirstChild("Head") or char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")) then startUpdater() else spawn(function() local c = getTargetCharacter(targetPlayer) if c then local okHead = c:WaitForChild("Head", 2) local okRoot = c:FindFirstChild("HumanoidRootPart") or c:FindFirstChild("Torso") or c:FindFirstChild("UpperTorso") if okHead or okRoot then startUpdater() end end end) end end local function updateESPColors() local toRemove = {} for targetPlayer, data in pairs(config.espData) do if (not targetPlayer) or (not data) or (not data.label) then toRemove[#toRemove+1] = targetPlayer else if not addesp(targetPlayer) then toRemove[#toRemove+1] = targetPlayer else local tchar = getTargetCharacter(targetPlayer) local humanoid = tchar and tchar:FindFirstChildOfClass("Humanoid") local hpColor = (humanoid and config.prefColorByHealth) and healthColor(humanoid) or nil if data.label then if config.espMasterEnabled and config.prefTextESP then if hpColor then data.label.TextColor3 = hpColor else data.label.TextColor3 = ((targetPlayer == config.currentTarget) or (targetPlayer == config.aimbotCurrentTarget)) and config.esptargetc or config.espc end data.label.Visible = true else data.label.Visible = false end end if data.box then if config.espMasterEnabled and config.prefBoxESP then data.box.Visible = true if data.boxOutline then data.boxOutline.Color = hpColor or ((targetPlayer == config.currentTarget or targetPlayer == config.aimbotCurrentTarget) and config.esptargetc or config.espc) end else data.box.Visible = false end end if data.healthBG then if config.espMasterEnabled and config.prefHealthESP and humanoid then data.healthBG.Visible = true local maxH = humanoid.MaxHealth or 100 local hRatio = math.clamp(humanoid.Health / maxH, 0, 1) data.healthFill.Size = UDim2.new(1, 0, hRatio, 0) data.healthFill.BackgroundColor3 = healthColor(humanoid) else data.healthBG.Visible = false end end if data.headDot then if config.espMasterEnabled and config.prefHeadDotESP then data.headDot.Visible = true if hpColor then data.headDot.BackgroundColor3 = hpColor else data.headDot.BackgroundColor3 = ((targetPlayer == config.currentTarget or targetPlayer == config.aimbotCurrentTarget) and config.esptargetc or config.espc) end else data.headDot.Visible = false end end end end end for _, targetPlayer in ipairs(toRemove) do config.espData[targetPlayer] = nil end local toRemoveHighlights = {} for targetPlayer, highlight in pairs(config.highlightData) do if not targetPlayer or not highlight or not highlight.Parent then toRemoveHighlights[#toRemoveHighlights+1] = targetPlayer else if not addesp(targetPlayer) then toRemoveHighlights[#toRemoveHighlights+1] = targetPlayer else if targetPlayer == config.currentTarget or targetPlayer == config.aimbotCurrentTarget then highlight.FillColor = config.esptargetc else highlight.FillColor = config.espc end end end end for _, targetPlayer in ipairs(toRemoveHighlights) do config.highlightData[targetPlayer] = nil end end local function applyESPMaster(state) config.espMasterEnabled = state if not state then for targetPlayer, _ in pairs(config.espData) do removeESPLabel(targetPlayer) end config.espData = {} for targetPlayer, _ in pairs(config.highlightData) do removeHighlightESP(targetPlayer) end config.highlightData = {} else if config.prefHighlightESP then for _, target in ipairs(getAllTargets()) do if addesp(target) and target.Character then high(target) end end end if config.prefTextESP or config.prefBoxESP or config.prefHealthESP or config.prefHeadDotESP then for _, target in ipairs(getAllTargets()) do if addesp(target) then makeesp(target) end end end end updateESPColors() end local function toggleHighlightESP(enabled) config.prefHighlightESP = enabled if config.espMasterEnabled and enabled then for _, target in ipairs(getAllTargets()) do if addesp(target) and target.Character then high(target) end end else for targetPlayer, _ in pairs(config.highlightData) do removeHighlightESP(targetPlayer) end config.highlightData = {} end end local function toggleTextESP(enabled) config.prefTextESP = enabled if config.espMasterEnabled and enabled then for _, target in ipairs(getAllTargets()) do if addesp(target) then makeesp(target) end end else for targetPlayer, _ in pairs(config.espData) do removeESPLabel(targetPlayer) end config.espData = {} end end local function toggleBoxESP(enabled) config.prefBoxESP = enabled if config.espMasterEnabled then for _, target in ipairs(getAllTargets()) do if addesp(target) then if not config.espData[target] then makeesp(target) end end end updateESPColors() else for targetPlayer, _ in pairs(config.espData) do removeESPLabel(targetPlayer) end config.espData = {} end end local function toggleHealthESP(enabled) config.prefHealthESP = enabled if config.espMasterEnabled then for _, target in ipairs(getAllTargets()) do if addesp(target) then if not config.espData[target] then makeesp(target) end end end updateESPColors() end end local function toggleHeadDotESP(enabled) config.prefHeadDotESP = enabled if config.espMasterEnabled then for _, target in ipairs(getAllTargets()) do if addesp(target) then if not config.espData[target] then makeesp(target) end end end updateESPColors() end end local function RFD(targetPlayer) local char = getTargetCharacter(targetPlayer) if not char then return end local head = char:FindFirstChild("Head") if head then for _, child in ipairs(head:GetChildren()) do if child:IsA("Decal") then local ok, t = pcall(function() return child.Texture end) local nameLower = tostring(child.Name):lower() local texLower = tostring(t or ""):lower() if nameLower == "face" or string.find(nameLower, "face") or string.find(texLower, "face") then pcall(function() child:Destroy() end) end end end end end local function removeAllFaceDecals() for _, target in ipairs(getAllTargets()) do RFD(target) end end local function lrfd() if config.looprfd then return end config.looprfd = true task.spawn(function() while config.Enabled do removeAllFaceDecals() task.wait(0.5) end config.looprfd = false end) end local function shouldTargetAimbot(target) if not target then return false end if target == localPlayer then return false end if not plralive(target) then return false end local mode = config.aimbotTeamTarget or "Enemies" if mode == "Enemies" then return not isTeammate(target) elseif mode == "Teams" then return isTeammate(target) elseif mode == "All" then return true end return false end local function aimbotWallCheck(targetPos, sourcePos) if not config.aimbotWallCheck then return true end if (targetPos - sourcePos).Magnitude <= 0 then return true end local ray = Ray.new(sourcePos, (targetPos - sourcePos).Unit * (targetPos - sourcePos).Magnitude) local ignoreList = {} if localPlayer and localPlayer.Character then table.insert(ignoreList, localPlayer.Character) end for _, otherPlayer in ipairs(Players:GetPlayers()) do if otherPlayer.Character then table.insert(ignoreList, otherPlayer.Character) end end local hit, position = Workspace:FindPartOnRayWithIgnoreList(ray, ignoreList) if hit and position then local distanceToTarget = (targetPos - sourcePos).Magnitude local distanceToHit = (position - sourcePos).Magnitude return distanceToHit >= (distanceToTarget - 2) end return true end local function getAimbotTargetPart(target) if not target then return nil end local partName = config.aimbotTargetPart or "Head" local char = getTargetCharacter(target) if not char then return nil end if partName == "Head" then return char:FindFirstChild("Head") elseif partName == "HumanoidRootPart" then return char:FindFirstChild("HumanoidRootPart") elseif partName == "Torso" then return char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") else return char:FindFirstChild("Head") end end local function smoothAim(currentCFrame, targetCFrame, strength) strength = math.clamp(strength or 0.5, 0, 1) return currentCFrame:Lerp(targetCFrame, strength) end local function updateAimbotFOVRing() if config.aimbotFOVRing and config.aimbotFOVRing.RingFrame then if config.aimbot360Enabled then config.aimbotFOVRing.RingFrame.Visible = false else config.aimbotFOVRing.RingFrame.Size = UDim2.new(0, config.aimbotFOVSize * 2, 0, config.aimbotFOVSize * 2) config.aimbotFOVRing.RingFrame.Position = UDim2.new(0.5, 0, 0.5, -28) config.aimbotFOVRing.RingFrame.Visible = config.aimbotEnabled end end end local function toggle360Aimbot(state) config.aimbot360Enabled = state if state then config.aimbot360OriginalFOV = config.aimbotFOVSize if not config.aimbotEnabled then config.aimbotEnabled = true end safeNotify({ Title = "360° Aimbot", Content = "Enabled - Targeting in all directions", Audio = "rbxassetid://17208361335", Length = 2, Image = "rbxassetid://4483362458", BarColor = Color3.fromRGB(255, 165, 0) }) else if config.aimbot360OriginalFOV then config.aimbotFOVSize = config.aimbot360OriginalFOV end safeNotify({ Title = "360° Aimbot", Content = "Disabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://4483362458", BarColor = Color3.fromRGB(255, 0, 0) }) end updateAimbotFOVRing() end local function setupDeathListener(targetPlayer) local char = getTargetCharacter(targetPlayer) if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if not humanoid then return end if config.characterConnections[targetPlayer] then pcall(function() config.characterConnections[targetPlayer]:Disconnect() end) config.characterConnections[targetPlayer] = nil end config.characterConnections[targetPlayer] = humanoid.HealthChanged:Connect(function(health) if health <= 0 then restorePartForPlayer(targetPlayer) if config.currentTarget == targetPlayer then config.currentTarget = nil updateESPColors() end if config.aimbotCurrentTarget == targetPlayer then config.aimbotCurrentTarget = nil updateESPColors() end end end) end local function cleanplrdata(targetPlayer) if not targetPlayer then return end restorePartForPlayer(targetPlayer) removeESPLabel(targetPlayer) removeHighlightESP(targetPlayer) if config.playerConnections[targetPlayer] then for _, conn in ipairs(config.playerConnections[targetPlayer]) do pcall(function() conn:Disconnect() end) end config.playerConnections[targetPlayer] = nil end if config.characterConnections[targetPlayer] then pcall(function() config.characterConnections[targetPlayer]:Disconnect() end) config.characterConnections[targetPlayer] = nil end config.activeApplied[targetPlayer] = nil config.originalSizes[targetPlayer] = nil config.targethbSizes[targetPlayer] = nil if config.currentTarget == targetPlayer then config.currentTarget = nil updateESPColors() end if config.aimbotCurrentTarget == targetPlayer then config.aimbotCurrentTarget = nil updateESPColors() end end local function setupPlayerListeners(pl) if pl == localPlayer then return end if config.playerConnections[pl] then for _, conn in ipairs(config.playerConnections[pl]) do pcall(function() conn:Disconnect() end) end end config.playerConnections[pl] = {} local function updateESPForPlayer() if config.espMasterEnabled then removeESPLabel(pl) removeHighlightESP(pl) if config.prefTextESP or config.prefBoxESP or config.prefHealthESP or config.prefHeadDotESP then if addesp(pl) then makeesp(pl) end end if config.prefHighlightESP and pl.Character then if addesp(pl) then high(pl) end end end end updateESPForPlayer() local charAddedConn = pl.CharacterAdded:Connect(function(char) task.wait(0.25) setupDeathListener(pl) removeESPLabel(pl) removeHighlightESP(pl) task.wait(0.1) if config.espMasterEnabled then if config.prefTextESP or config.prefBoxESP or config.prefHealthESP or config.prefHeadDotESP then if addesp(pl) then makeesp(pl) end end if config.prefHighlightESP then if addesp(pl) and pl.Character then high(pl) end end end end) table.insert(config.playerConnections[pl], charAddedConn) local charRemovingConn = pl.CharacterRemoving:Connect(function(char) if config.espData[pl] then local data = config.espData[pl] if data.label then data.label.Visible = false end if data.box then data.box.Visible = false end if data.healthBG then data.healthBG.Visible = false end if data.headDot then data.headDot.Visible = false end end removeHighlightESP(pl) end) table.insert(config.playerConnections[pl], charRemovingConn) local teamChangedConn = pl:GetPropertyChangedSignal("Team"):Connect(function() task.wait(0.05) updateESPForPlayer() end) table.insert(config.playerConnections[pl], teamChangedConn) if pl.Character then setupDeathListener(pl) end end local function onRenderStep() if not camera or not camera.Parent then camera = workspace.CurrentCamera if not camera then return end end if not gui.RingHolder or not gui.RingStroke then return end if not config.Enabled then gui.RingHolder.Visible = false return else gui.RingHolder.Visible = true end local viewportSize = camera.ViewportSize local center = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2) local radiusPx = config.fovsize if gui.RingHolder then local currentSize = gui.RingHolder.AbsoluteSize and gui.RingHolder.AbsoluteSize.X or (config.fovsize * 2) radiusPx = currentSize / 2 end local candidates = {} for _, pl in ipairs(getAllTargets()) do local bodyPart, chosenName = chooseBodyPartInstance(pl) local humanoid = nil local char = getTargetCharacter(pl) if char then humanoid = char:FindFirstChildOfClass("Humanoid") end if bodyPart and humanoid and humanoid.Health > 0 then local mode = config.targetMode or "Enemies" local skip = false if mode == "Enemies" then if typeof(pl) == "Instance" and pl:IsA("Player") and isTeammate(pl) then skip = true end elseif mode == "Teams" then if typeof(pl) == "Instance" and pl:IsA("Player") and not isTeammate(pl) then skip = true end elseif mode == "All" then skip = false end if not skip then local topPos = bodyPart.Position local screenPos3, onScreen = camera:WorldToViewportPoint(topPos) if onScreen then local screenVec = Vector2.new(screenPos3.X, screenPos3.Y) local distPx = (screenVec - center).Magnitude if distPx <= radiusPx then local cameraPos = camera.CFrame.Position local targetPos = bodyPart.Position if wallCheck(targetPos, cameraPos) then local worldDist = (cameraPos - targetPos).Magnitude table.insert(candidates, { player = pl, part = bodyPart, partName = chosenName, screenDist = distPx, worldDist = worldDist, screenPos = screenVec, screenPos3 = screenPos3, humanoid = humanoid }) end end end end else if config.activeApplied[pl] then restorePartForPlayer(pl) end end end local best = nil local selectionMode = "Closest" if #candidates > 0 then local bestWorldDist = math.huge for _, c in ipairs(candidates) do if c.worldDist < bestWorldDist then bestWorldDist = c.worldDist best = c end end end if best then gui.RingStroke.Color = config.fovct else gui.RingStroke.Color = config.fovc end if config.currentTarget ~= (best and best.player) then config.currentTarget = best and best.player updateESPColors() end for pl, _ in pairs(config.activeApplied) do if (not best) or pl ~= best.player or not plralive(pl) then restorePartForPlayer(pl) end end if best and plralive(best.player) then local diameter = (function() local H = viewportSize.Y local vFovDeg = camera.FieldOfView local vFovRad = math.rad(vFovDeg) local halfVFov = vFovRad / 2 local alpha = (radiusPx / (H / 2)) * halfVFov local worldHalf = best.worldDist * math.tan(alpha) local worldFull = worldHalf * 2 return worldFull end)() diameter = math.max(0.01, diameter) if best.screenDist <= 1 then if not config.centerLocked[best.player] then config.centerLocked[best.player] = true applySizeToPart(best.player, diameter, best.part) else local prevSize = config.targethbSizes[best.player] if prevSize then diameter = prevSize.X end applySizeToPart(best.player, diameter, best.part) end else config.centerLocked[best.player] = nil applySizeToPart(best.player, diameter, best.part) end if config.rfd then RFD(best.player) end end end local function hb() for playerObj, targetSize in pairs(config.targethbSizes) do if playerObj and playerObj ~= localPlayer and getTargetCharacter(playerObj) and plralive(playerObj) then local part = getTargetCharacter(playerObj):FindFirstChild(config.originalSizes[playerObj] and config.originalSizes[playerObj].partName) or getTargetCharacter(playerObj):FindFirstChild("Head") if not part then local p1 = getTargetCharacter(playerObj):FindFirstChild("HumanoidRootPart") local p2 = getTargetCharacter(playerObj):FindFirstChild("Head") part = p1 or p2 end if part then pcall(function() part.Size = targetSize part.Transparency = 1 part.CanCollide = false part.Massless = (part.Name ~= "HumanoidRootPart") end) end else if playerObj ~= localPlayer then restorePartForPlayer(playerObj) end end end end local function aimbotUpdate() if not config.aimbotEnabled then if config.aimbotCurrentTarget then config.aimbotCurrentTarget = nil updateESPColors() end return end if not camera then camera = workspace.CurrentCamera end if not camera then return end local viewportSize = camera.ViewportSize local center = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2) local radiusPx = config.aimbot360Enabled and math.huge or config.aimbotFOVSize local candidates = {} local cameraCFrame = camera.CFrame local cameraPos = cameraCFrame.Position for _, target in ipairs(getAllTargets()) do if shouldTargetAimbot(target) then local targetPart = getAimbotTargetPart(target) if targetPart then local screenPos, onScreen = camera:WorldToViewportPoint(targetPart.Position) local screenVec = Vector2.new(screenPos.X, screenPos.Y) local distPx = (screenVec - center).Magnitude if config.aimbot360Enabled or (onScreen and distPx <= radiusPx) then local worldDist = (targetPart.Position - cameraPos).Magnitude if aimbotWallCheck(targetPart.Position, cameraPos) then local humanoid = getTargetCharacter(target) and getTargetCharacter(target):FindFirstChildOfClass("Humanoid") table.insert(candidates, { target = target, part = targetPart, worldDist = worldDist, screenDist = distPx, humanoid = humanoid }) end end end end end local bestCandidate = nil local selectionMode = config.aimbotGetTarget or "Closest" if #candidates > 0 then if selectionMode == "Lowest Health" then local bestHealth = math.huge for _, c in ipairs(candidates) do local h = math.huge if c.humanoid then h = c.humanoid.Health end if bestCandidate == nil or h < bestHealth then bestHealth = h bestCandidate = c end end else local bestDist = math.huge for _, c in ipairs(candidates) do if c.worldDist < bestDist then bestDist = c.worldDist bestCandidate = c end end end end local bestTarget = bestCandidate and bestCandidate.target or nil local bestPart = bestCandidate and bestCandidate.part or nil if config.aimbotCurrentTarget ~= bestTarget then config.aimbotCurrentTarget = bestTarget updateESPColors() end if bestTarget and bestPart and localPlayer.Character then local humanoid = localPlayer.Character:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then local targetPosition = bestPart.Position local currentCFrame = camera.CFrame local targetCFrame = CFrame.lookAt(currentCFrame.Position, targetPosition) local strength = math.clamp(config.aimbotStrength, 0, 1) if strength < 1 then targetCFrame = smoothAim(currentCFrame, targetCFrame, strength) end camera.CFrame = targetCFrame end end end local function pc() local plr = game.Players.LocalPlayer task.spawn(function() while true do pcall(function() plr.ReplicationFocus = workspace plr.MaximumSimulationRadius = math.huge plr.SimulationRadius = config.gp end) task.wait(0.1) end end) end local function makeui() lib:SetTitle("2kirt") lib:SetIcon("http://www.roblox.com/asset/?id=7734056878") lib:SetTheme("HighContrast") local T1 = lib:CreateTab("Aimbot") lib:Tab("Aimbot") lib:AddToggle("Toggle Aimbot (Crtl+'Q')", function(state) config.aimbotEnabled = state if not state and config.aimbot360Enabled then toggle360Aimbot(false) end if config.aimbotFOVRing and config.aimbotFOVRing.RingFrame then config.aimbotFOVRing.RingFrame.Visible = state end if state then if not config.aimbotFOVRing then aimbotfov() end safeNotify({ Title = "Aimbot", Content = "Enabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(0, 255, 0) }) else config.aimbotCurrentTarget = nil updateESPColors() safeNotify({ Title = "Aimbot", Content = "Disabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(255, 0, 0) }) end end, false) lib:AddToggle("WallCheck AB (Ctrl+'B')", function(state) config.aimbotWallCheck = state if state then safeNotify({ Title = "Aimbot Wall Check", Content = "Enabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://4483362458", BarColor = Color3.fromRGB(0, 170, 255) }) else safeNotify({ Title = "Aimbot Wall Check", Content = "Disabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://4483362458", BarColor = Color3.fromRGB(255, 0, 0) }) end end, false) lib:AddToggle("360° Aimbot", function(state) toggle360Aimbot(state) end, false) lib:AddComboBox("Team Target", {"Enemies", "Teams", "All"}, function(selection) config.aimbotTeamTarget = selection config.aimbotCurrentTarget = nil updateESPColors() if config.aimbotTeamTarget == "All" then config.masterTeamTarget = "All" end end) lib:AddComboBox("Target Part", {"Head", "HumanoidRootPart", "Torso"}, function(selection) config.aimbotTargetPart = selection end) lib:AddComboBox("GetTarget", {"Closest", "Lowest Health"}, function(selection) config.aimbotGetTarget = selection end) lib:AddInputBox("Aim Strength", function(text) local n = tonumber(text) if n and n >= 0 and n <= 1 then config.aimbotStrength = n end return tostring(config.aimbotStrength) end, "0-1", "0.5", { min = 0, max = 1, isNumber = true }) lib:AddInputBox("FOV Size", function(text) local n = tonumber(text) if n and n >= 1 then config.aimbotFOVSize = n updateAimbotFOVRing() return tostring(config.aimbotFOVSize) end return tostring(config.aimbotFOVSize) end, "Enter Value...", "100", { min = 1, max = math.huge, isNumber = true }) lib:AddToggle("Toggle SilentAim (Ctrl+'E')", function(state) config.Enabled = state if not config.Enabled then if gui.RingHolder then gui.RingHolder.Visible = false end for pl, _ in pairs(config.activeApplied) do restorePartForPlayer(pl) end safeNotify({ Title = "SilentAim", Content = "Disabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(255, 0, 0) }) else safeNotify({ Title = "SilentAim", Content = "Enabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://255", BarColor = Color3.fromRGB(255, 100, 0) }) if gui.RingHolder then gui.RingHolder.Visible = true end lrfd() end end, false) lib:AddToggle("WallCheck SA (B)", function(state) config.wallc = state if state then safeNotify({ Title = "Wall Check", Content = "Enabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(0, 170, 255) }) else safeNotify({ Title = "Wall Check", Content = "Disabled", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(255, 0, 0) }) end end, false) lib:AddComboBox("Team Target", {"Enemies", "Teams", "All"}, function(selection) if selection == "Enemies" then config.targetMode = "Enemies" elseif selection == "Teams" then config.targetMode = "Teams" elseif selection == "All" then config.targetMode = "All" else config.targetMode = "Enemies" end if config.targetMode == "All" then config.masterTeamTarget = "All" end end) lib:AddComboBox("Target Part", {"Head", "HumanoidRootPart", "Both"}, function(selection) for pl, _ in pairs(config.activeApplied) do restorePartForPlayer(pl) end config.bodypart = selection or "Head" end) lib:AddInputBox("HitChance", function(text) local n = tonumber(text) if n and n >= 0 and n <= 100 then config.hitchance = n end return tostring(config.hitchance) end, "0-100", tostring(config.hitchance), { min = 0, max = 100, isNumber = true }) lib:AddInputBox("FovSize", function(text) local n = tonumber(text) if n and n >= 1 then config.fovsize = n if gui.RingHolder then gui.RingHolder.Size = UDim2.new(0, math.max(8, config.fovsize * 2), 0, math.max(8, config.fovsize * 2)) end return tostring(config.fovsize) else return tostring(config.fovsize) end end, "Enter Value...", tostring(config.fovsize), { min = 0, max = math.huge, isNumber = true }) lib:AddToggle("Remove Face Decals", function(state) config.rfd = state if state then removeAllFaceDecals() end end, false) lib:AddInputBox("GetPart", function(text) local n = tonumber(text) if n then config.gp = n end return tostring(config.gp) end, "-9999 to 9999", "200", { min = -9999, max = 9999, isNumber = true }) lib:AddButton("Partclaim", function() pc() safeNotify({ Title = "PartClaim", Content = "Refreshed", Audio = "rbxassetid://17208361335", Length = 3, Image = "rbxassetid://4483362458", BarColor = Color3.fromRGB(0, 255, 0) }) end) local fovScreenGui = Instance.new("ScreenGui") fovScreenGui.Name = "FOVToggleGui_Modern" fovScreenGui.ResetOnSpawn = false fovScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling fovScreenGui.Parent = localPlayer:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(1, 0, 1, 0) mainFrame.BackgroundTransparency = 1 mainFrame.Parent = fovScreenGui local ringHolder = Instance.new("Frame") ringHolder.Name = "RingHolder" ringHolder.AnchorPoint = Vector2.new(0.5, 0.5) ringHolder.Size = UDim2.new(0, config.fovsize * 2, 0, config.fovsize * 2) ringHolder.Position = UDim2.new(0.5, 0, 0.5, -28) ringHolder.BackgroundTransparency = 1 ringHolder.Parent = mainFrame local ringCorner = Instance.new("UICorner") ringCorner.CornerRadius = UDim.new(1, 0) ringCorner.Parent = ringHolder local ringStroke = Instance.new("UIStroke") ringStroke.Thickness = 1 ringStroke.LineJoinMode = Enum.LineJoinMode.Round ringStroke.Parent = ringHolder ringStroke.Color = Color3.fromRGB(200, 200, 255) ringStroke.Transparency = 0 gui.ScreenGui = fovScreenGui gui.MainFrame = mainFrame gui.RingHolder = ringHolder gui.RingStroke = ringStroke gui.UI = lib local function aimbotfov() if config.aimbotFOVRing and config.aimbotFOVRing.Parent then config.aimbotFOVRing:Destroy() end local screenGui = Instance.new("ScreenGui") screenGui.Name = "AimbotFOVRing" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = localPlayer:WaitForChild("PlayerGui") local ringFrame = Instance.new("Frame") ringFrame.Name = "RingFrame" ringFrame.AnchorPoint = Vector2.new(0.5, 0.5) ringFrame.Size = UDim2.new(0, config.aimbotFOVSize * 2, 0, config.aimbotFOVSize * 2) ringFrame.Position = UDim2.new(0.5, 0, 0.5, -28) ringFrame.BackgroundTransparency = 1 ringFrame.Visible = config.aimbotEnabled ringFrame.Parent = screenGui local ringCorner = Instance.new("UICorner") ringCorner.CornerRadius = UDim.new(1, 0) ringCorner.Parent = ringFrame local ringStroke = Instance.new("UIStroke") ringStroke.Thickness = 1 ringStroke.LineJoinMode = Enum.LineJoinMode.Round ringStroke.Color = Color3.fromRGB(255, 0, 0) ringStroke.Transparency = 0.3 ringStroke.Parent = ringFrame config.aimbotFOVRing = { ScreenGui = screenGui, RingFrame = ringFrame, RingStroke = ringStroke } return config.aimbotFOVRing end aimbotfov() return lib end local function isCtrlDown() return UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) or UserInputService:IsKeyDown(Enum.KeyCode.RightControl) end local function init() makeui() for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer then setupPlayerListeners(pl) end end Players.PlayerAdded:Connect(function(pl) if pl ~= localPlayer then setupPlayerListeners(pl) end end) Players.PlayerRemoving:Connect(function(pl) cleanplrdata(pl) end) for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer then setupPlayerListeners(pl) if config.espMasterEnabled then if config.prefTextESP or config.prefBoxESP or config.prefHealthESP then if addesp(pl) then makeesp(pl) end end if config.prefHighlightESP and pl.Character then if addesp(pl) then high(pl) end end end end end Players.PlayerAdded:Connect(function(pl) if pl ~= localPlayer then setupPlayerListeners(pl) task.wait(0.5) if config.espMasterEnabled then if config.prefTextESP or config.prefBoxESP or config.prefHealthESP then if addesp(pl) then makeesp(pl) end end if config.prefHighlightESP and pl.Character then if addesp(pl) then high(pl) end end end end end) RunService:BindToRenderStep("FOVhbUpdater_Modern", Enum.RenderPriority.First.Value, onRenderStep) if config.hotkeyConnection and config.hotkeyConnection.Connected then pcall(function() config.hotkeyConnection:Disconnect() end) config.hotkeyConnection = nil end config.hotkeyConnection = UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end local focused = UserInputService:GetFocusedTextBox() if focused then return end if input.UserInputType == Enum.UserInputType.Keyboard then local kc = input.KeyCode if kc == Enum.KeyCode.B and not isCtrlDown() and not UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) and not UserInputService:IsKeyDown(Enum.KeyCode.RightShift) then config.wallc = not config.wallc if config.wallc then safeNotify({ Title = "SilentAim Wall Check", Content = "Enabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(0, 170, 255) }) else safeNotify({ Title = "SilentAim Wall Check", Content = "Disabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(255, 0, 0) }) end elseif kc == Enum.KeyCode.E and isCtrlDown() then config.Enabled = not config.Enabled if not config.Enabled then if gui.RingHolder then gui.RingHolder.Visible = false end for pl, _ in pairs(config.activeApplied) do restorePartForPlayer(pl) end safeNotify({ Title = "SilentAim", Content = "Disabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(255, 0, 0) }) else if gui.RingHolder then gui.RingHolder.Visible = true end lrfd() safeNotify({ Title = "SilentAim", Content = "Enabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(255, 100, 0) }) end elseif kc == Enum.KeyCode.Q and isCtrlDown() then config.aimbotEnabled = not config.aimbotEnabled if config.aimbotFOVRing and config.aimbotFOVRing.RingFrame then config.aimbotFOVRing.RingFrame.Visible = config.aimbotEnabled end if config.aimbotEnabled then if not config.aimbotFOVRing then aimbotfov() end safeNotify({ Title = "Aimbot", Content = "Enabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(0, 255, 0) }) else config.aimbotCurrentTarget = nil updateESPColors() safeNotify({ Title = "Aimbot", Content = "Disabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://", BarColor = Color3.fromRGB(255, 0, 0) }) end elseif kc == Enum.KeyCode.B and isCtrlDown() then config.aimbotWallCheck = not config.aimbotWallCheck if config.aimbotWallCheck then safeNotify({ Title = "Aimbot Wall Check", Content = "Enabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://4483362458", BarColor = Color3.fromRGB(0, 170, 255) }) else safeNotify({ Title = "Aimbot Wall Check", Content = "Disabled (Hotkey)", Audio = "rbxassetid://17208361335", Length = 1, Image = "rbxassetid://4483362458", BarColor = Color3.fromRGB(255, 0, 0) }) end end end end) end RunService.Heartbeat:Connect(hb) RunService.RenderStepped:Connect(aimbotUpdate) init()