--[[ Headshot Aimbot + Kill Aura (INFINITE RANGE) Features: • RMB Hold to Aim (Locks to HEAD) • Kill Aura - Instantly kills ANY player on the map • Headshot Priority • Prediction & Smooth Tracking • Team Check • FOV Circle ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer -- Settings local Settings = { Enabled = false, TeamCheck = true, FOV = 120, Range = 1000, Smoothness = 0.15, Prediction = 0.165, CircleColor = Color3.fromRGB(255, 0, 0), CircleThickness = 1.5, HeadPriority = true, WallCheck = true, -- Kill Aura Settings KillAura = false, KillRange = 999999, -- INFINITE RANGE (practically) KillCooldown = 0.01, -- Faster kills AutoKill = true -- Always auto kill } -- Variables local FOVCircle = nil local IsAiming = false local CurrentTarget = nil local LastTargetPosition = nil local TargetVelocity = Vector3.new(0, 0, 0) local LastKillTime = 0 -- Create FOV Circle local function CreateFOVCircle() if FOVCircle then FOVCircle:Remove() FOVCircle = nil end FOVCircle = Drawing.new("Circle") FOVCircle.Transparency = 1 FOVCircle.Color = Settings.CircleColor FOVCircle.Thickness = Settings.CircleThickness FOVCircle.Radius = Settings.FOV FOVCircle.Filled = false FOVCircle.Visible = Settings.Enabled FOVCircle.NumSides = 64 FOVCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) end CreateFOVCircle() -- Update circle RunService.RenderStepped:Connect(function() if FOVCircle and Settings.Enabled then FOVCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) FOVCircle.Visible = true FOVCircle.Radius = Settings.FOV FOVCircle.Color = Settings.CircleColor FOVCircle.Thickness = Settings.CircleThickness elseif FOVCircle then FOVCircle.Visible = false end end) -- Raycast for wall check local function IsVisible(targetPart) if not Settings.WallCheck then return true end local origin = Camera.CFrame.Position local direction = (targetPart.Position - origin).Unit * (targetPart.Position - origin).Magnitude local raycastParams = RaycastParams.new() raycastParams.FilterDescendantsInstances = {LocalPlayer.Character, targetPart.Parent} raycastParams.FilterType = Enum.RaycastFilterType.Blacklist local result = workspace:Raycast(origin, direction, raycastParams) if result then return false end return true end -- Get head position or fallback to HRP local function GetAimPoint(character) if Settings.HeadPriority then local head = character:FindFirstChild("Head") if head then local headPos, headVisible = Camera:WorldToViewportPoint(head.Position) if headVisible and IsVisible(head) then return head.Position, head end end end local hrp = character:FindFirstChild("HumanoidRootPart") if hrp and IsVisible(hrp) then return hrp.Position, hrp end return nil, nil end -- Get closest player to crosshair (for aimbot) local function GetClosestPlayer() local ClosestPlayer = nil local ClosestPart = nil local ClosestDistance = Settings.FOV + 1 local CenterPos = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) for _, Player in pairs(Players:GetPlayers()) do if Player ~= LocalPlayer and Player.Character then local Humanoid = Player.Character:FindFirstChild("Humanoid") if Humanoid and Humanoid.Health > 0 then if Settings.TeamCheck and Player.Team == LocalPlayer.Team then continue end local aimPoint, aimPart = GetAimPoint(Player.Character) if not aimPoint then continue end local Distance = (aimPoint - Camera.CFrame.Position).Magnitude if Distance > Settings.Range then continue end local ScreenPos, OnScreen = Camera:WorldToViewportPoint(aimPoint) if OnScreen then local TargetPos = Vector2.new(ScreenPos.X, ScreenPos.Y) local ScreenDistance = (CenterPos - TargetPos).Magnitude if aimPart and aimPart.Name == "Head" then ScreenDistance = ScreenDistance * 0.7 end if ScreenDistance <= Settings.FOV then if ScreenDistance < ClosestDistance then ClosestDistance = ScreenDistance ClosestPlayer = Player ClosestPart = aimPart end end end end end end return ClosestPlayer, ClosestPart end -- Get closest player by DISTANCE (INFINITE RANGE VERSION) local function GetClosestPlayerByDistance() local ClosestPlayer = nil local ClosestDistance = math.huge -- Infinite distance for _, Player in pairs(Players:GetPlayers()) do if Player ~= LocalPlayer and Player.Character then local Humanoid = Player.Character:FindFirstChild("Humanoid") local HRP = Player.Character:FindFirstChild("HumanoidRootPart") if Humanoid and Humanoid.Health > 0 and HRP then if Settings.TeamCheck and Player.Team == LocalPlayer.Team then continue end -- Get distance if you want closest, or just return first valid player local LocalHRP = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if LocalHRP then local Distance = (HRP.Position - LocalHRP.Position).Magnitude if Distance < ClosestDistance then ClosestDistance = Distance ClosestPlayer = Player end else -- If no local character, just kill anyone ClosestPlayer = Player break end end end end return ClosestPlayer end -- Kill Player Function (INSTANT) local function KillPlayer(player) if not player or not player.Character then return end local character = player.Character local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then humanoid.Health = 0 print("Killed: " .. player.Name) end end -- RMB Controls UserInputService.InputBegan:Connect(function(Input, GameProcessed) if GameProcessed then return end if Input.UserInputType == Enum.UserInputType.MouseButton2 and Settings.Enabled then IsAiming = true local target, part = GetClosestPlayer() CurrentTarget = target if part then LastTargetPosition = part.Position end end end) UserInputService.InputEnded:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton2 then IsAiming = false CurrentTarget = nil LastTargetPosition = nil TargetVelocity = Vector3.new(0, 0, 0) end end) -- Main loop - AIMBOT + INFINITE RANGE KILL AURA RunService.Heartbeat:Connect(function() local CurrentTime = tick() -- Kill Aura (Auto - Infinite Range) if Settings.KillAura then if CurrentTime - LastKillTime >= Settings.KillCooldown then local target = GetClosestPlayerByDistance() if target then KillPlayer(target) LastKillTime = CurrentTime end end end -- Aimbot if Settings.Enabled and IsAiming then if CurrentTarget then local Character = CurrentTarget.Character if not Character then CurrentTarget = nil return end local Humanoid = Character:FindFirstChild("Humanoid") if not Humanoid or Humanoid.Health <= 0 then CurrentTarget = nil return end local aimPoint, aimPart = GetAimPoint(Character) if not aimPoint then CurrentTarget = nil return end if LastTargetPosition then TargetVelocity = (aimPoint - LastTargetPosition) * 60 end LastTargetPosition = aimPoint local predictedPos = aimPoint + (TargetVelocity * Settings.Prediction) local ScreenPos, OnScreen = Camera:WorldToViewportPoint(predictedPos) if OnScreen then local MousePos = UserInputService:GetMouseLocation() local Distance = (aimPoint - Camera.CFrame.Position).Magnitude local DynamicSmooth = Settings.Smoothness if Distance < 50 then DynamicSmooth = Settings.Smoothness * 0.3 elseif Distance < 100 then DynamicSmooth = Settings.Smoothness * 0.6 end local DeltaX = (ScreenPos.X - MousePos.X) * DynamicSmooth local DeltaY = (ScreenPos.Y - MousePos.Y) * DynamicSmooth if math.abs(DeltaX) > 0.5 or math.abs(DeltaY) > 0.5 then mousemoverel(DeltaX, DeltaY) end else CurrentTarget = nil end else CurrentTarget, _ = GetClosestPlayer() end end end) -- UI local UI = Instance.new("ScreenGui") UI.Name = "HeadshotAimbot" UI.Parent = game.CoreGui UI.ResetOnSpawn = false local Main = Instance.new("Frame") Main.Size = UDim2.new(0, 300, 0, 380) Main.Position = UDim2.new(0.5, -150, 0.5, -190) Main.BackgroundColor3 = Color3.fromRGB(20, 20, 20) Main.BorderSizePixel = 0 Main.Active = true Main.Draggable = true Main.Parent = UI local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 8) MainCorner.Parent = Main -- Header local Header = Instance.new("Frame") Header.Size = UDim2.new(1, 0, 0, 35) Header.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Header.BorderSizePixel = 0 Header.Parent = Main local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 8) HeaderCorner.Parent = Header local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -40, 1, 0) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "Headshot Aimbot + INF Kill" Title.TextColor3 = Color3.fromRGB(255, 0, 0) Title.Font = Enum.Font.GothamBold Title.TextSize = 14 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = Header local Close = Instance.new("TextButton") Close.Size = UDim2.new(0, 25, 0, 25) Close.Position = UDim2.new(1, -30, 0.5, -12.5) Close.BackgroundColor3 = Color3.fromRGB(60, 20, 20) Close.Text = "X" Close.TextColor3 = Color3.fromRGB(255, 255, 255) Close.Font = Enum.Font.GothamBold Close.TextSize = 14 Close.Parent = Header local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 4) CloseCorner.Parent = Close Close.MouseButton1Click:Connect(function() if FOVCircle then FOVCircle:Remove() end UI:Destroy() end) -- Content local Content = Instance.new("Frame") Content.Size = UDim2.new(1, -20, 1, -45) Content.Position = UDim2.new(0, 10, 0, 40) Content.BackgroundTransparency = 1 Content.Parent = Main local Y = 0 -- Toggle local function CreateToggle(Text, Default, Callback) local Frame = Instance.new("Frame") Frame.Size = UDim2.new(1, 0, 0, 35) Frame.Position = UDim2.new(0, 0, 0, Y) Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Frame.Parent = Content local FrameCorner = Instance.new("UICorner") FrameCorner.CornerRadius = UDim.new(0, 6) FrameCorner.Parent = Frame local Label = Instance.new("TextLabel") Label.Size = UDim2.new(1, -60, 1, 0) Label.Position = UDim2.new(0, 10, 0, 0) Label.BackgroundTransparency = 1 Label.Text = Text Label.TextColor3 = Color3.fromRGB(255, 255, 255) Label.Font = Enum.Font.Gotham Label.TextSize = 13 Label.TextXAlignment = Enum.TextXAlignment.Left Label.Parent = Frame local Button = Instance.new("TextButton") Button.Size = UDim2.new(0, 45, 0, 25) Button.Position = UDim2.new(1, -55, 0.5, -12.5) Button.BackgroundColor3 = Default and Color3.fromRGB(200, 0, 0) or Color3.fromRGB(60, 60, 60) Button.Text = Default and "ON" or "OFF" Button.TextColor3 = Color3.fromRGB(255, 255, 255) Button.Font = Enum.Font.GothamBold Button.TextSize = 12 Button.Parent = Frame local ButtonCorner = Instance.new("UICorner") ButtonCorner.CornerRadius = UDim.new(0, 4) ButtonCorner.Parent = Button local State = Default Button.MouseButton1Click:Connect(function() State = not State Button.Text = State and "ON" or "OFF" Button.BackgroundColor3 = State and Color3.fromRGB(200, 0, 0) or Color3.fromRGB(60, 60, 60) Callback(State) end) Y = Y + 40 end -- Slider local function CreateSlider(Text, Min, Max, Default, Callback) local Frame = Instance.new("Frame") Frame.Size = UDim2.new(1, 0, 0, 45) Frame.Position = UDim2.new(0, 0, 0, Y) Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Frame.Parent = Content local FrameCorner = Instance.new("UICorner") FrameCorner.CornerRadius = UDim.new(0, 6) FrameCorner.Parent = Frame local Label = Instance.new("TextLabel") Label.Size = UDim2.new(1, -20, 0, 20) Label.Position = UDim2.new(0, 10, 0, 5) Label.BackgroundTransparency = 1 Label.Text = Text .. ": " .. Default Label.TextColor3 = Color3.fromRGB(255, 0, 0) Label.Font = Enum.Font.Gotham Label.TextSize = 13 Label.TextXAlignment = Enum.TextXAlignment.Left Label.Parent = Frame local Track = Instance.new("Frame") Track.Size = UDim2.new(1, -40, 0, 4) Track.Position = UDim2.new(0, 20, 0, 30) Track.BackgroundColor3 = Color3.fromRGB(60, 60, 60) Track.BorderSizePixel = 0 Track.Parent = Frame local TrackCorner = Instance.new("UICorner") TrackCorner.CornerRadius = UDim.new(0, 2) TrackCorner.Parent = Track local Knob = Instance.new("TextButton") Knob.Size = UDim2.new(0, 14, 0, 14) local Rel = (Default - Min) / (Max - Min) Knob.Position = UDim2.new(Rel, -7, 0, -5) Knob.BackgroundColor3 = Color3.fromRGB(255, 0, 0) Knob.Text = "" Knob.BorderSizePixel = 0 Knob.Parent = Track local KnobCorner = Instance.new("UICorner") KnobCorner.CornerRadius = UDim.new(0, 7) KnobCorner.Parent = Knob local Dragging = false local Value = Default Knob.MouseButton1Down:Connect(function() Dragging = true end) UserInputService.InputEnded:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = false end end) RunService.Heartbeat:Connect(function() if Dragging then local MousePos = UserInputService:GetMouseLocation() local TrackX = Track.AbsolutePosition.X local TrackW = Track.AbsoluteSize.X local RelX = (MousePos.X - TrackX) / TrackW RelX = math.clamp(RelX, 0, 1) Value = math.floor(Min + (RelX * (Max - Min))) Label.Text = Text .. ": " .. Value Knob.Position = UDim2.new(RelX, -7, 0, -5) Callback(Value) end end) Y = Y + 50 end -- Create UI Elements CreateToggle("Aimbot", false, function(State) Settings.Enabled = State if FOVCircle then FOVCircle.Visible = State end if not State then IsAiming = false CurrentTarget = nil end end) CreateToggle("Team Check", true, function(State) Settings.TeamCheck = State end) CreateToggle("Kill Aura (INF Range)", false, function(State) Settings.KillAura = State end) CreateSlider("FOV", 10, 300, 120, function(Value) Settings.FOV = Value if FOVCircle then FOVCircle.Radius = Value end end) -- Notification game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Headshot Aimbot + INF Kill", Text = "Kill Aura has INFINITE range!", Duration = 3 }) print("Script Loaded - Kill Aura has INFINITE range")