local Settings = { Enabled = false, Key = "Q", -- default (now stored as Enum.KeyCode.Name string) Prediction = 0.135, AimPart = "Head", FOV = 180, OffsetX = 0, OffsetY = 58, Smoothness = 5, TeamCheck = true, FovVisible = true, WallCheck = true, AimNPCs = false, MaxDistance = 500, InfDistance = false, TeamWhitelist = {}, ESPOpposite = false } -- normalize key to uppercase Enum.KeyCode name format Settings.Key = tostring(Settings.Key):upper() local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local Mouse = Players.LocalPlayer:GetMouse() local LocalPlayer = Players.LocalPlayer local Target = nil local RightClick = false local displayParts = {"Head", "Torso", "HumanoidRootPart", "Right Arm", "Left Arm", "Right Leg", "Left Leg", "Right Hand"} local actualParts = {"Head", "Torso", "HumanoidRootPart", "RightUpperArm", "LeftUpperArm", "RightUpperLeg", "LeftUpperLeg", "RightHand"} local currentPartIndex = 1 local okDrawing, Drawing = pcall(function() return Drawing end) if not okDrawing then Drawing = nil end local FOVCircle, CenterDot if Drawing then FOVCircle = Drawing.new("Circle") FOVCircle.Radius = Settings.FOV FOVCircle.Color = Color3.new(1,1,1) FOVCircle.Thickness = 1.5 FOVCircle.Filled = false FOVCircle.Transparency = 1 FOVCircle.Visible = false CenterDot = Drawing.new("Circle") CenterDot.Radius = 2 CenterDot.Color = Color3.new(1,1,1) CenterDot.Filled = true CenterDot.Transparency = 1 CenterDot.Visible = false end -- Create a storage folder in CoreGui for highlights (safer and easier cleanup) local CoreGui = game:GetService("CoreGui") local STORAGE_NAME = "Highlight_Storage_AIMBOT" local storage = CoreGui:FindFirstChild(STORAGE_NAME) if not storage then storage = Instance.new("Folder") storage.Name = STORAGE_NAME storage.Parent = CoreGui end local Gui = Instance.new("ScreenGui") Gui.Name = "AimbotGUI" Gui.ResetOnSpawn = false Gui.Parent = game:GetService("CoreGui") local Frame = Instance.new("Frame") Frame.Size = UDim2.new(0, 200, 0, 550) Frame.Position = UDim2.new(0, 10, 0.5, -275) Frame.BackgroundColor3 = Color3.fromRGB(30,30,30) Frame.BorderSizePixel = 2 Frame.BorderColor3 = Color3.fromRGB(100,100,100) Frame.Active = true Frame.Draggable = true Frame.Visible = true Frame.Parent = Gui local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1,0,0,25) Title.BackgroundTransparency = 1 Title.Text = "Aimbot Settings" Title.TextColor3 = Color3.new(1,1,1) Title.Font = Enum.Font.SourceSansBold Title.TextSize = 16 Title.Parent = Frame -- Key bind button (placed top-right of frame, does not overlap existing labels) local KeyBindButton = Instance.new("TextButton") KeyBindButton.Size = UDim2.new(0, 80, 0, 20) KeyBindButton.Position = UDim2.new(1, -90, 0, 4) KeyBindButton.BackgroundColor3 = Color3.fromRGB(60,60,60) KeyBindButton.TextColor3 = Color3.new(1,1,1) KeyBindButton.Font = Enum.Font.SourceSans KeyBindButton.TextSize = 14 KeyBindButton.Text = "Key: " .. (Settings.Key or "Q") KeyBindButton.Parent = Frame local keyCapturing = false KeyBindButton.MouseButton1Click:Connect(function() if keyCapturing then return end keyCapturing = true KeyBindButton.Text = "Press a key..." -- temporary capture connection local conn conn = UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.Keyboard then local name = input.KeyCode and input.KeyCode.Name if name and name ~= "" then Settings.Key = tostring(name):upper() KeyBindButton.Text = "Key: " .. Settings.Key end keyCapturing = false conn:Disconnect() end end) end) local function CreateLabel(text, posY) local l = Instance.new("TextLabel") l.Size = UDim2.new(1,0,0,20) l.Position = UDim2.new(0,0,0,posY) l.BackgroundTransparency = 1 l.Text = text l.TextColor3 = Color3.new(1,1,1) l.Font = Enum.Font.SourceSans l.TextSize = 14 l.Parent = Frame return l end local YLabel = CreateLabel("Up/Down: 58", 25) local XLabel = CreateLabel("Left/Right: 0", 70) local FOVLabel = CreateLabel("FOV: 180", 115) local SLabel = CreateLabel("Smooth: 5", 160) local DLabel = CreateLabel("Max Dist: 500", 205) local PLabel = CreateLabel("Predict: 0.135", 250) local function CreateSlider(posY, fillColor) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1,-20,0,20) btn.Position = UDim2.new(0,10,0,posY) btn.BackgroundColor3 = Color3.fromRGB(60,60,60) btn.Text = "" btn.BorderSizePixel = 0 btn.Parent = Frame local fill = Instance.new("Frame") fill.Size = UDim2.new(0.5,0,1,0) fill.BackgroundColor3 = fillColor fill.BorderSizePixel = 0 fill.Parent = btn return btn, fill end local YSlider, YFill = CreateSlider(45, Color3.fromRGB(0,170,255)) local XSlider, XFill = CreateSlider(90, Color3.fromRGB(0,170,255)) local FOVSlider, FOVFill = CreateSlider(135, Color3.fromRGB(0,170,255)) local SSlider, SFill = CreateSlider(180, Color3.fromRGB(0,255,0)) local DSlider, DFill = CreateSlider(225, Color3.fromRGB(255,100,100)) local PSlider, PFill = CreateSlider(270, Color3.fromRGB(255,200,0)) local AimPartLabel = CreateLabel("Aim Part: Head", 295) local AimPartToggle = Instance.new("TextButton") AimPartToggle.Size = UDim2.new(1,-20,0,20) AimPartToggle.Position = UDim2.new(0,10,0,315) AimPartToggle.BackgroundColor3 = Color3.fromRGB(60,60,60) AimPartToggle.Text = "Aim Part: Head" AimPartToggle.TextColor3 = Color3.new(1,1,1) AimPartToggle.Font = Enum.Font.SourceSans AimPartToggle.TextSize = 14 AimPartToggle.BorderSizePixel = 0 AimPartToggle.Parent = Frame AimPartToggle.MouseButton1Click:Connect(function() currentPartIndex = currentPartIndex + 1 if currentPartIndex > #displayParts then currentPartIndex = 1 end Settings.AimPart = actualParts[currentPartIndex] AimPartToggle.Text = "Aim Part: " .. displayParts[currentPartIndex] AimPartLabel.Text = "Aim Part: " .. displayParts[currentPartIndex] end) local WhitelistLabel = CreateLabel("Whitelist Teams: None", 340) local TeamNameBox = Instance.new("TextBox") TeamNameBox.Size = UDim2.new(0.6,0,0,20) TeamNameBox.Position = UDim2.new(0,10,0,360) TeamNameBox.BackgroundColor3 = Color3.fromRGB(60,60,60) TeamNameBox.PlaceholderText = "Team name (e.g., Blue)" TeamNameBox.TextColor3 = Color3.new(1,1,1) TeamNameBox.Font = Enum.Font.SourceSans TeamNameBox.TextSize = 14 TeamNameBox.BorderSizePixel = 0 TeamNameBox.Parent = Frame local AddTeamButton = Instance.new("TextButton") AddTeamButton.Size = UDim2.new(0.4,0,0,20) AddTeamButton.Position = UDim2.new(0.6,0,0,360) AddTeamButton.BackgroundColor3 = Color3.fromRGB(0,170,0) AddTeamButton.Text = "Add" AddTeamButton.TextColor3 = Color3.new(1,1,1) AddTeamButton.Font = Enum.Font.SourceSans AddTeamButton.TextSize = 14 AddTeamButton.BorderSizePixel = 0 AddTeamButton.Parent = Frame local ClearWhitelistButton = Instance.new("TextButton") ClearWhitelistButton.Size = UDim2.new(1,-20,0,20) ClearWhitelistButton.Position = UDim2.new(0,10,0,380) ClearWhitelistButton.BackgroundColor3 = Color3.fromRGB(200,60,60) ClearWhitelistButton.Text = "Clear" ClearWhitelistButton.TextColor3 = Color3.new(1,1,1) ClearWhitelistButton.Font = Enum.Font.SourceSans ClearWhitelistButton.TextSize = 14 ClearWhitelistButton.BorderSizePixel = 0 ClearWhitelistButton.Parent = Frame local TeamCheckToggle = Instance.new("TextButton") TeamCheckToggle.Size = UDim2.new(1,-20,0,20) TeamCheckToggle.Position = UDim2.new(0,10,0,410) TeamCheckToggle.BackgroundColor3 = Color3.fromRGB(60,60,60) TeamCheckToggle.Text = "Team Check: ON" TeamCheckToggle.TextColor3 = Color3.new(1,1,1) TeamCheckToggle.Font = Enum.Font.SourceSans TeamCheckToggle.TextSize = 14 TeamCheckToggle.BorderSizePixel = 0 TeamCheckToggle.Parent = Frame local FovVisibleToggle = Instance.new("TextButton") FovVisibleToggle.Size = UDim2.new(1,-20,0,20) FovVisibleToggle.Position = UDim2.new(0,10,0,435) FovVisibleToggle.BackgroundColor3 = Color3.fromRGB(60,60,60) FovVisibleToggle.Text = "FOV Visible: ON" FovVisibleToggle.TextColor3 = Color3.new(1,1,1) FovVisibleToggle.Font = Enum.Font.SourceSans FovVisibleToggle.TextSize = 14 FovVisibleToggle.BorderSizePixel = 0 FovVisibleToggle.Parent = Frame local ESPToggle = Instance.new("TextButton") ESPToggle.Size = UDim2.new(1,-20,0,20) ESPToggle.Position = UDim2.new(0,10,0,460) ESPToggle.BackgroundColor3 = Color3.fromRGB(60,60,60) ESPToggle.Text = "ESP Opposite: OFF" ESPToggle.TextColor3 = Color3.new(1,1,1) ESPToggle.Font = Enum.Font.SourceSans ESPToggle.TextSize = 14 ESPToggle.BorderSizePixel = 0 ESPToggle.Parent = Frame local WallCheckToggle = Instance.new("TextButton") WallCheckToggle.Size = UDim2.new(1,-20,0,20) WallCheckToggle.Position = UDim2.new(0,10,0,485) WallCheckToggle.BackgroundColor3 = Color3.fromRGB(60,60,60) WallCheckToggle.Text = "Wall Check: ON" WallCheckToggle.TextColor3 = Color3.new(1,1,1) WallCheckToggle.Font = Enum.Font.SourceSans WallCheckToggle.TextSize = 14 WallCheckToggle.BorderSizePixel = 0 WallCheckToggle.Parent = Frame local AimNPCsToggle = Instance.new("TextButton") AimNPCsToggle.Size = UDim2.new(1,-20,0,20) AimNPCsToggle.Position = UDim2.new(0,10,0,510) AimNPCsToggle.BackgroundColor3 = Color3.fromRGB(60,60,60) AimNPCsToggle.Text = "Aim NPCs: OFF" AimNPCsToggle.TextColor3 = Color3.new(1,1,1) AimNPCsToggle.Font = Enum.Font.SourceSans AimNPCsToggle.TextSize = 14 AimNPCsToggle.BorderSizePixel = 0 AimNPCsToggle.Parent = Frame local InfDistanceToggle = Instance.new("TextButton") InfDistanceToggle.Size = UDim2.new(1,-20,0,20) InfDistanceToggle.Position = UDim2.new(0,10,0,535) InfDistanceToggle.BackgroundColor3 = Color3.fromRGB(60,60,60) InfDistanceToggle.Text = "Inf Dist: OFF" InfDistanceToggle.TextColor3 = Color3.new(1,1,1) InfDistanceToggle.Font = Enum.Font.SourceSans InfDistanceToggle.TextSize = 14 InfDistanceToggle.BorderSizePixel = 0 InfDistanceToggle.Parent = Frame TeamCheckToggle.MouseButton1Click:Connect(function() Settings.TeamCheck = not Settings.TeamCheck TeamCheckToggle.Text = "Team Check: " .. (Settings.TeamCheck and "ON" or "OFF") RefreshESP() end) FovVisibleToggle.MouseButton1Click:Connect(function() Settings.FovVisible = not Settings.FovVisible FovVisibleToggle.Text = "FOV Visible: " .. (Settings.FovVisible and "ON" or "OFF") if Drawing and FOVCircle and CenterDot then FOVCircle.Visible = Settings.FovVisible and Settings.Enabled CenterDot.Visible = Settings.FovVisible and Settings.Enabled end end) -- ESP storage/tracking local ESPInstances = {} -- key: model -> Highlight instance local function destroyHighlightForModel(model) if not model then return end local hl = ESPInstances[model] if hl and hl.Parent then hl:Destroy() end ESPInstances[model] = nil end local function createHighlightForModel(model, fillColor) if not model or not model:IsA("Model") then return end -- avoid duplicates destroyHighlightForModel(model) local ok, Highlight = pcall(Instance.new, "Highlight") if not ok or not Highlight then return end Highlight.Name = "ESP_Highlight" Highlight.Adornee = model Highlight.FillColor = fillColor or Color3.new(1, 0, 0) -- default transparency; can be updated by slider later Highlight.FillTransparency = 0.7 Highlight.OutlineColor = Color3.new(0, 0, 0) Highlight.OutlineTransparency = 0.5 Highlight.Enabled = true -- parent to storage for easier cleanup / visibility isolation Highlight.Parent = storage ESPInstances[model] = Highlight end -- Clear all tracked highlights safely local function ClearAllESP() -- snapshot keys to avoid modifying table while iterating local keys = {} for model, _ in pairs(ESPInstances) do keys[#keys+1] = model end for _, model in ipairs(keys) do destroyHighlightForModel(model) end end local function shouldHighlightPlayerModel(model) if not model then return false end local plr = Players:GetPlayerFromCharacter(model) if not plr or plr == LocalPlayer then return false end if plr.Team and table.find(Settings.TeamWhitelist, plr.Team.Name) then return false end if Settings.TeamCheck and LocalPlayer.Team and plr.Team == LocalPlayer.Team then return false end return true end function RefreshESP() -- remove highlights for models that are no longer valid or no longer should be highlighted local keys = {} for model, _ in pairs(ESPInstances) do keys[#keys+1] = model end for _, model in ipairs(keys) do if not model or not model.Parent then destroyHighlightForModel(model) else -- if ESPOpposite disabled, clear everything if not Settings.ESPOpposite then destroyHighlightForModel(model) else -- if model no longer should be highlighted, remove if not shouldHighlightPlayerModel(model) then destroyHighlightForModel(model) end end end end if not Settings.ESPOpposite then return end -- create highlights for eligible players for _, plr in pairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character and plr.Character.Parent then if shouldHighlightPlayerModel(plr.Character) then local col = (plr.Team and plr.Team.TeamColor and plr.Team.TeamColor.Color) or Color3.new(1, 0, 0) createHighlightForModel(plr.Character, col) else destroyHighlightForModel(plr.Character) end end end end ESPToggle.MouseButton1Click:Connect(function() Settings.ESPOpposite = not Settings.ESPOpposite ESPToggle.Text = "ESP Opposite: " .. (Settings.ESPOpposite and "ON" or "OFF") if Settings.ESPOpposite then RefreshESP() else -- ensure all highlights are removed when disabling ESP ClearAllESP() end end) WallCheckToggle.MouseButton1Click:Connect(function() Settings.WallCheck = not Settings.WallCheck WallCheckToggle.Text = "Wall Check: " .. (Settings.WallCheck and "ON" or "OFF") end) AimNPCsToggle.MouseButton1Click:Connect(function() Settings.AimNPCs = not Settings.AimNPCs AimNPCsToggle.Text = "Aim NPCs: " .. (Settings.AimNPCs and "ON" or "OFF") end) InfDistanceToggle.MouseButton1Click:Connect(function() Settings.InfDistance = not Settings.InfDistance InfDistanceToggle.Text = "Inf Dist: " .. (Settings.InfDistance and "ON" or "OFF") end) AddTeamButton.MouseButton1Click:Connect(function() local teamName = TeamNameBox.Text if teamName ~= "" and not table.find(Settings.TeamWhitelist, teamName) then table.insert(Settings.TeamWhitelist, teamName) WhitelistLabel.Text = "Whitelist Teams: " .. table.concat(Settings.TeamWhitelist, ", ") TeamNameBox.Text = "" RefreshESP() end end) ClearWhitelistButton.MouseButton1Click:Connect(function() Settings.TeamWhitelist = {} WhitelistLabel.Text = "Whitelist Teams: None" RefreshESP() end) YFill.Size = UDim2.new((Settings.OffsetY + 100)/200, 0, 1, 0) XFill.Size = UDim2.new((Settings.OffsetX + 100)/200, 0, 1, 0) FOVFill.Size = UDim2.new(math.clamp(Settings.FOV / 500, 0, 1), 0, 1, 0) SFill.Size = UDim2.new((Settings.Smoothness - 1)/19, 0, 1, 0) DFill.Size = UDim2.new(Settings.MaxDistance / 1000, 0, 1, 0) PFill.Size = UDim2.new(Settings.Prediction / 0.5, 0, 1, 0) local dragging = nil YSlider.MouseButton1Down:Connect(function() dragging = "Y" end) XSlider.MouseButton1Down:Connect(function() dragging = "X" end) FOVSlider.MouseButton1Down:Connect(function() dragging = "F" end) SSlider.MouseButton1Down:Connect(function() dragging = "S" end) DSlider.MouseButton1Down:Connect(function() dragging = "D" end) PSlider.MouseButton1Down:Connect(function() dragging = "P" end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = nil end end) RunService.RenderStepped:Connect(function() if not dragging then return end if not Mouse then return end local mx = Mouse.X local slider = dragging == "Y" and YSlider or dragging == "X" and XSlider or dragging == "S" and SSlider or dragging == "D" and DSlider or dragging == "P" and PSlider or dragging == "F" and FOVSlider local fill = dragging == "Y" and YFill or dragging == "X" and XFill or dragging == "S" and SFill or dragging == "D" and DFill or dragging == "P" and PFill or dragging == "F" and FOVFill local label = dragging == "Y" and YLabel or dragging == "X" and XLabel or dragging == "S" and SLabel or dragging == "D" and DLabel or dragging == "P" and PLabel or dragging == "F" and FOVLabel if not slider then return end local sx = slider.AbsolutePosition.X local w = slider.AbsoluteSize.X local rel = math.clamp((mx - sx) / w, 0, 1) fill.Size = UDim2.new(rel, 0, 1, 0) if dragging == "Y" then Settings.OffsetY = math.floor(rel * 200 - 100) YLabel.Text = "Up/Down: " .. Settings.OffsetY elseif dragging == "X" then Settings.OffsetX = math.floor(rel * 200 - 100) XLabel.Text = "Left/Right: " .. Settings.OffsetX elseif dragging == "S" then Settings.Smoothness = math.max(1, math.floor(rel * 19 + 1)) SLabel.Text = "Smooth: " .. Settings.Smoothness elseif dragging == "D" then Settings.MaxDistance = math.floor(rel * 1000) DLabel.Text = "Max Dist: " .. Settings.MaxDistance elseif dragging == "F" then Settings.FOV = math.max(0, math.floor(rel * 500)) FOVLabel.Text = "FOV: " .. Settings.FOV if Drawing and FOVCircle then FOVCircle.Radius = Settings.FOV end else Settings.Prediction = rel * 0.5 PLabel.Text = "Predict: " .. string.format("%.3f", Settings.Prediction) end end) local function IsInRange(aimPart) if Settings.InfDistance then return true end if not aimPart then return false end return (Camera.CFrame.Position - aimPart.Position).Magnitude <= Settings.MaxDistance end local function IsVisible(aimPart) if not Settings.WallCheck then return true end if not aimPart then return false end local origin = Camera.CFrame.Position local dir = (aimPart.Position - origin) local ray = Ray.new(origin, dir.Unit * dir.Magnitude) local hit = workspace:FindPartOnRayWithIgnoreList(ray, {LocalPlayer.Character}) return hit and (hit:IsDescendantOf(aimPart.Parent) or hit == aimPart) end Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() task.wait(0.1); RefreshESP() end) plr:GetPropertyChangedSignal("Team"):Connect(RefreshESP) end) Players.PlayerRemoving:Connect(function(plr) destroyHighlightForModel(plr.Character) RefreshESP() end) LocalPlayer:GetPropertyChangedSignal("Team"):Connect(RefreshESP) local function IsPlayerCharacter(model) return Players:GetPlayerFromCharacter(model) ~= nil end local function GetClosestTarget() local best = nil local bestDist = Settings.FOV local cx = Mouse.X + Settings.OffsetX local cy = Mouse.Y + Settings.OffsetY for _, plr in pairs(Players:GetPlayers()) do if plr == LocalPlayer or not plr.Character then continue end if Settings.TeamCheck and plr.Team == LocalPlayer.Team then continue end if plr.Team and table.find(Settings.TeamWhitelist, plr.Team.Name) then continue end local char = plr.Character local aimPart = char:FindFirstChild(Settings.AimPart) local hum = char:FindFirstChild("Humanoid") if aimPart and hum and hum.Health > 0 and IsInRange(aimPart) then local pos, onScreen = Camera:WorldToViewportPoint(aimPart.Position) if onScreen then local dist = (Vector2.new(pos.X, pos.Y) - Vector2.new(cx, cy)).Magnitude if dist < bestDist and IsVisible(aimPart) then best = char bestDist = dist end end end end if Settings.AimNPCs then for _, model in pairs(workspace:GetDescendants()) do if not model:IsA("Model") or model == LocalPlayer.Character or IsPlayerCharacter(model) then continue end local hum = model:FindFirstChild("Humanoid") local aimPart = model:FindFirstChild(Settings.AimPart) if hum and aimPart and hum.Health > 0 and IsInRange(aimPart) then local pos, onScreen = Camera:WorldToViewportPoint(aimPart.Position) if onScreen then local dist = (Vector2.new(pos.X, pos.Y) - Vector2.new(cx, cy)).Magnitude if dist < bestDist and IsVisible(aimPart) then best = model bestDist = dist end end end end end return best end -- Use Settings.Key (Enum.KeyCode.Name string) for toggling aimbot UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode and input.KeyCode.Name == Settings.Key then Settings.Enabled = not Settings.Enabled if Settings.Enabled then Target = GetClosestTarget() if Drawing and Settings.FovVisible then FOVCircle.Visible = true CenterDot.Visible = true end else Target = nil if Drawing and FOVCircle and CenterDot then FOVCircle.Visible = false CenterDot.Visible = false end end end end) if Mouse then Mouse.Button2Down:Connect(function() RightClick = true end) Mouse.Button2Up:Connect(function() RightClick = false end) end RunService.Heartbeat:Connect(function() local cx = Mouse.X + Settings.OffsetX local cy = Mouse.Y + Settings.OffsetY if Drawing and FOVCircle and CenterDot then FOVCircle.Position = Vector2.new(cx, cy) CenterDot.Position = Vector2.new(cx, cy) FOVCircle.Radius = Settings.FOV FOVCircle.Visible = Settings.Enabled and Settings.FovVisible CenterDot.Visible = Settings.Enabled and Settings.FovVisible end if Settings.ESPOpposite then RefreshESP() end if not Settings.Enabled or RightClick then return end if not Target or not Target:FindFirstChild(Settings.AimPart) then Target = GetClosestTarget() if not Target then return end end local aimPart = Target:FindFirstChild(Settings.AimPart) local hum = Target:FindFirstChild("Humanoid") local pos, onScreen = Camera:WorldToViewportPoint(aimPart.Position) if not hum or hum.Health <= 0 or not onScreen or not IsInRange(aimPart) then Target = GetClosestTarget() if not Target then return end aimPart = Target:FindFirstChild(Settings.AimPart) hum = Target:FindFirstChild("Humanoid") pos, onScreen = Camera:WorldToViewportPoint(aimPart.Position) if not onScreen or not hum or hum.Health <= 0 then return end end if Settings.WallCheck and not IsVisible(aimPart) then return end local pred = aimPart.Position if Settings.Prediction > 0 then local velocity = aimPart.AssemblyLinearVelocity or aimPart.Velocity or Vector3.new() pred = aimPart.Position + velocity * Settings.Prediction end local scr = Camera:WorldToScreenPoint(pred) local deltaX = math.round((scr.X - Mouse.X) / Settings.Smoothness) local deltaY = math.round((scr.Y - Mouse.Y) / Settings.Smoothness) if type(mousemoverel) == "function" then mousemoverel(deltaX, deltaY) end end) Players.PlayerRemoving:Connect(function(p) if Target and Target == p.Character then Target = nil end destroyHighlightForModel(p.Character) end) -- ensure no stale highlights remain at load ClearAllESP()