--[[ Auto-Aura Grab Kill Player Script (PC Only) Features: • Auto-Aura Grab (M key): Scans every 1/70 sec for the closest player (within 20 studs) and fires the Grab event. • Kill Button: Fires the ActivateButton event with the selected trap. • Trap Selection: A drop-down list to choose among "VendingMachine", "Cage", "Shark", and "Guillotine". • Teleport Grab: Displays a scrolling list of players; clicking a name teleports you temporarily. • Invincible (TESTING) Button: Continuously clears workspace.Ignore. • Professional Mode (X key): When enabled, every 0.035 sec checks for a target within 9 studs by firing the Grab event. – Left-click (MouseButton1) will drop the current target and force an immediate candidate refresh. – Only the mode toggle sends a notification. • Keybinds (PC Only): LeftAlt toggles the GUI (only if not running on a touch device), M toggles Auto-Aura Grab, X toggles Professional Mode. • The GUI is draggable and re-created on character respawn (retaining saved settings). • When a new player joins, a 1-second candidate refresh loop runs every 0.035 sec if Professional Mode is enabled. --]] ------------------------------------------------- -- SERVICES & REMOTES ------------------------------------------------- local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local StarterGui = game:GetService("StarterGui") local localPlayer = Players.LocalPlayer local EventsFolder = ReplicatedStorage:WaitForChild("Events") local GrabEvent = EventsFolder:WaitForChild("Grab") local ActivateEvent = EventsFolder:WaitForChild("ActivateButton") ------------------------------------------------- -- STATE VARIABLES ------------------------------------------------- local AUTO = false -- Auto-Aura Grab toggle (M key) local PROF = false -- Professional Mode toggle (X key) local SelectedTrap = "Cage4" -- Selected Trap (e.g., "Cage4" stands for "Cage") local currentTarget = nil -- Currently grabbed target for Professional Mode local autoLoopRunning = false -- For Auto-Aura Grab loop local proLoopRunning = false -- For Professional Mode loop ------------------------------------------------- -- UTILITY FUNCTIONS ------------------------------------------------- local function notify(text) pcall(function() StarterGui:SetCore("SendNotification", {Title = "AutoAura", Text = text, Duration = 2}) end) end local function safeFire(remote, ...) if remote and remote:IsA("RemoteEvent") then remote:FireServer(...) else warn("[AutoAura] Invalid remote!") end end ------------------------------------------------- -- AUTO-AURA GRAB FUNCTION (every 1/70 sec within 20 studs) ------------------------------------------------- local function toggleAutoAura(btn) AUTO = not AUTO btn.Text = AUTO and "Auto-Aura Grab: ON" or "Auto-Aura Grab: OFF" notify(AUTO and "Auto-Aura Enabled" or "Auto-Aura Disabled") if AUTO and not autoLoopRunning then autoLoopRunning = true task.spawn(function() while AUTO do local ch = localPlayer.Character local hrp = ch and ch:FindFirstChild("HumanoidRootPart") if hrp then local closest, bestDist = nil, 20 for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer and pl.Character then local phrp = pl.Character:FindFirstChild("HumanoidRootPart") if phrp then local d = (hrp.Position - phrp.Position).Magnitude if d < bestDist then bestDist = d closest = pl end end end end if closest and closest.Character then local targetTorso = closest.Character:FindFirstChild("Torso") or closest.Character:FindFirstChild("UpperTorso") if targetTorso then safeFire(GrabEvent, targetTorso, "Grab", Vector3.new(), CFrame.new(targetTorso.Position)) end end end task.wait(1/70) end autoLoopRunning = false end) end end ------------------------------------------------- -- PROFESSIONAL MODE LOOP (every 0.035 sec within 9 studs) ------------------------------------------------- local function professionalModeLoop() proLoopRunning = true while PROF do local ch = localPlayer.Character local hrp = ch and ch:FindFirstChild("HumanoidRootPart") if hrp then if not currentTarget then -- No target held: scan for a candidate within 9 studs. local candidate, bestDist = nil, 10.5 -- Using 9.01 so targets exactly at 9 studs qualify. for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer and pl.Character then local phrp = pl.Character:FindFirstChild("HumanoidRootPart") if phrp then local d = (hrp.Position - phrp.Position).Magnitude if d <= 10.5 and d < bestDist then bestDist = d candidate = pl end end end end if candidate and candidate.Character then local targetTorso = candidate.Character:FindFirstChild("Torso") or candidate.Character:FindFirstChild("UpperTorso") if targetTorso then safeFire(GrabEvent, targetTorso, "Grab", Vector3.new(), CFrame.new(targetTorso.Position)) currentTarget = candidate end end else -- A target is held; check its distance. local targetTorso = nil if currentTarget.Character then targetTorso = currentTarget.Character:FindFirstChild("Torso") or currentTarget.Character:FindFirstChild("UpperTorso") end if targetTorso then local d = (hrp.Position - targetTorso.Position).Magnitude if d > 10.5 then currentTarget = nil else -- Check for a chasing candidate (within 9 studs that is farther away) local bestCandidate = currentTarget local bestCandDist = d for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer and pl ~= currentTarget and pl.Character then local phrp2 = pl.Character:FindFirstChild("HumanoidRootPart") if phrp2 then local d2 = (hrp.Position - phrp2.Position).Magnitude if d2 <= 10. and d2 > bestCandDist then bestCandDist = d2 bestCandidate = pl end end end end if bestCandidate ~= currentTarget then local newTargetTorso = bestCandidate.Character:FindFirstChild("Torso") or bestCandidate.Character:FindFirstChild("UpperTorso") if newTargetTorso then safeFire(GrabEvent, newTargetTorso, "Grab", Vector3.new(), CFrame.new(newTargetTorso.Position)) currentTarget = bestCandidate end end end else currentTarget = nil end end end task.wait(1/70) end proLoopRunning = false end ------------------------------------------------- -- Force Immediate Refresh in Professional Mode ------------------------------------------------- local function forceProfessionalCandidate() local ch = localPlayer.Character local hrp = ch and ch:FindFirstChild("HumanoidRootPart") if hrp then local candidate, bestDist = nil, 9.9 for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer and pl.Character then local phrp = pl.Character:FindFirstChild("HumanoidRootPart") if phrp then local d = (hrp.Position - phrp.Position).Magnitude if d <= 9.9 and d < bestDist then bestDist = d candidate = pl end end end end if candidate and candidate.Character then local targetTorso = candidate.Character:FindFirstChild("Torso") or candidate.Character:FindFirstChild("UpperTorso") if targetTorso then safeFire(GrabEvent, targetTorso, "Grab", Vector3.new(), CFrame.new(targetTorso.Position)) currentTarget = candidate end end end end ------------------------------------------------- -- Detect Left-Click: Drop current target and force refresh (PC Only) ------------------------------------------------- local function detectDropInput(input) if PROF then if input.UserInputType == Enum.UserInputType.MouseButton1 then if currentTarget then currentTarget = nil forceProfessionalCandidate() end end end end UIS.InputBegan:Connect(detectDropInput) ------------------------------------------------- -- Toggle Professional Mode (Auto-Aura Grab Kill) ------------------------------------------------- local function toggleProMode(toggleBtn) PROF = not PROF if toggleBtn then toggleBtn.Text = PROF and "Pro Mode: ON" or "Pro Mode: OFF" toggleBtn.BackgroundColor3 = PROF and Color3.fromRGB(0,255,0) or Color3.fromRGB(255,0,0) end notify(PROF and "Professional Mode Enabled" or "Professional Mode Disabled") if PROF then currentTarget = nil if not proLoopRunning then task.spawn(professionalModeLoop) end else currentTarget = nil end end ------------------------------------------------- -- TELEPORT GRAB FUNCTION ------------------------------------------------- local function teleportGrab(pl) if not (pl and pl.Character) then return end local targetTorso = pl.Character:FindFirstChild("Torso") or pl.Character:FindFirstChild("UpperTorso") local ch = localPlayer.Character local hrp = ch and ch:FindFirstChild("HumanoidRootPart") if targetTorso and hrp then local home = hrp.CFrame hrp.CFrame = targetTorso.CFrame local t0 = tick() while tick() - t0 <= 0.7 do safeFire(GrabEvent, targetTorso, "Grab", Vector3.new(), CFrame.new(targetTorso.Position)) task.wait(0.01) end local t1 = tick() while tick() - t1 < 1 do hrp.CFrame = home if (hrp.Position - home.Position).Magnitude < 1 then break end task.wait(0.01) end hrp.CFrame = home end end ------------------------------------------------- -- CREATE GUI (Old Version) ------------------------------------------------- local function createGUI() local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "AA_Gui" ScreenGui.Parent = localPlayer:WaitForChild("PlayerGui") -- MAIN FRAME local mainFrame = Instance.new("Frame", ScreenGui) mainFrame.Size = UDim2.fromOffset(250,440) mainFrame.Position = UDim2.new(0.5,-125,0.8,-150) mainFrame.BackgroundColor3 = Color3.fromRGB(25,25,25) local mCorner = Instance.new("UICorner", mainFrame) mCorner.CornerRadius = UDim.new(0,12) -- AUTO-AURA GRAB BUTTON local autoButton = Instance.new("TextButton", mainFrame) autoButton.Size = UDim2.new(1,-10,0,30) autoButton.Position = UDim2.new(0,5,0,5) autoButton.Font = Enum.Font.GothamBold autoButton.TextSize = 18 autoButton.TextScaled = true autoButton.BackgroundColor3 = Color3.fromRGB(50,50,50) local aCorner = Instance.new("UICorner", autoButton) aCorner.CornerRadius = UDim.new(0,8) autoButton.Text = AUTO and "Auto-Aura Grab: ON" or "Auto-Aura Grab: OFF" autoButton.MouseButton1Click:Connect(function() toggleAutoAura(autoButton) end) -- KILL BUTTON (fires ActivateButton with SelectedTrap) local killBtn = autoButton:Clone() killBtn.Parent = mainFrame killBtn.Size = UDim2.new(0.5,-10,0,30) killBtn.Position = UDim2.new(0,5,0,40) killBtn.Text = "Kill" killBtn.TextScaled = true killBtn.BackgroundColor3 = Color3.fromRGB(255,50,50) killBtn.MouseButton1Click:Connect(function() safeFire(ActivateEvent, SelectedTrap) end) -- TRAP BUTTON & DROP-DOWN LIST local trapBtn = killBtn:Clone() trapBtn.Parent = mainFrame trapBtn.Position = UDim2.new(0.5,0,0,40) trapBtn.Text = "Trap: " .. ((SelectedTrap=="Cage4") and "Cage" or SelectedTrap) trapBtn.TextScaled = true trapBtn.BackgroundColor3 = Color3.fromRGB(50,150,50) local trapFrame = Instance.new("ScrollingFrame", mainFrame) trapFrame.Size = UDim2.new(1,-10,0,60) trapFrame.Position = UDim2.new(0,5,0,80) trapFrame.BackgroundColor3 = Color3.fromRGB(35,35,35) trapFrame.ScrollBarThickness = 6 trapFrame.Visible = false trapFrame.CanvasSize = UDim2.new(0,0,0,108) for i, name in ipairs({"VendingMachine","Cage","Shark","Guillotine"}) do local tBtn = Instance.new("TextButton", trapFrame) tBtn.Size = UDim2.new(1,0,0,25) tBtn.Position = UDim2.new(0,0,0,(i-1)*27) tBtn.Font = Enum.Font.GothamBold tBtn.TextSize = 16 tBtn.TextScaled = true tBtn.BackgroundColor3 = Color3.fromRGB(100,100,100) local tCorner = Instance.new("UICorner", tBtn) tCorner.CornerRadius = UDim.new(0,8) tBtn.Text = name tBtn.MouseButton1Click:Connect(function() SelectedTrap = (name=="Cage") and "Cage4" or name trapBtn.Text = "Trap: " .. name trapFrame.Visible = false end) end trapBtn.MouseButton1Click:Connect(function() trapFrame.Visible = not trapFrame.Visible end) -- TELEPORT GRAB BUTTON & PLAYER LIST local tpBtn = autoButton:Clone() tpBtn.Parent = mainFrame tpBtn.Position = UDim2.new(0,5,0,150) tpBtn.Text = "Teleport Grab" tpBtn.TextScaled = true tpBtn.BackgroundColor3 = Color3.fromRGB(50,100,200) local playerFrame = Instance.new("ScrollingFrame", mainFrame) playerFrame.Size = UDim2.fromOffset(240,80) playerFrame.Position = UDim2.new(0,5,0,185) playerFrame.BackgroundColor3 = Color3.fromRGB(35,35,35) playerFrame.ScrollBarThickness = 6 playerFrame.Visible = false local function updatePlayerList() for _, c in ipairs(playerFrame:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end local y = 0 for _, pl in ipairs(Players:GetPlayers()) do if pl ~= localPlayer then local pBtn = Instance.new("TextButton", playerFrame) pBtn.Size = UDim2.new(1,0,0,25) pBtn.Position = UDim2.new(0,0,0,y) y = y + 27 pBtn.Text = pl.Name pBtn.Font = Enum.Font.GothamBold pBtn.TextSize = 16 pBtn.TextScaled = true pBtn.BackgroundColor3 = Color3.fromRGB(100,100,100) local pCorner = Instance.new("UICorner", pBtn) pCorner.CornerRadius = UDim.new(0,8) pBtn.MouseButton1Click:Connect(function() playerFrame.Visible = false teleportGrab(pl) end) end end playerFrame.CanvasSize = UDim2.new(0,0,0,y) end tpBtn.MouseButton1Click:Connect(function() playerFrame.Visible = not playerFrame.Visible if playerFrame.Visible then updatePlayerList() end end) task.spawn(function() while task.wait(1) do if playerFrame.Visible then updatePlayerList() end end end) -- INVINCIBLE (TESTING) BUTTON - clears workspace.Ignore repeatedly. local invBtn = autoButton:Clone() invBtn.Parent = mainFrame invBtn.Position = UDim2.new(0,5,0,260) invBtn.Text = "Invincible (TESTING)" invBtn.TextScaled = true invBtn.BackgroundColor3 = Color3.fromRGB(150,0,150) invBtn.MouseButton1Click:Connect(function() task.spawn(function() while true do for _, o in ipairs(workspace.Ignore:GetChildren()) do o:Destroy() end task.wait(0.01) end end) end) -- PROFESSIONAL MODE BUTTON local proButton = autoButton:Clone() proButton.Parent = mainFrame proButton.Position = UDim2.new(0,5,0,310) proButton.Text = PROF and "Pro Mode: ON" or "Pro Mode: OFF" proButton.TextScaled = true proButton.BackgroundColor3 = Color3.fromRGB(0,150,150) proButton.MouseButton1Click:Connect(function() toggleProMode(proButton) end) -- CLOSE (X) BUTTON local closeBtn = Instance.new("TextButton", mainFrame) closeBtn.Size = UDim2.fromOffset(25,25) closeBtn.Position = UDim2.new(1,-30,0,5) closeBtn.Text = "X" closeBtn.TextScaled = true closeBtn.BackgroundColor3 = Color3.fromRGB(200,0,0) local closeCorner = Instance.new("UICorner", closeBtn) closeCorner.CornerRadius = UDim.new(0,8) closeBtn.MouseButton1Click:Connect(function() mainFrame.Visible = false notify("Press LeftAlt to Open/Close GUI") end) -- Persistent Toggle GUI BUTTON (always visible at top-left) local toggleBtn = Instance.new("TextButton", ScreenGui) toggleBtn.Size = UDim2.fromOffset(80,25) toggleBtn.Position = UDim2.new(0,5,0,35) toggleBtn.Text = "Toggle GUI" toggleBtn.TextScaled = true toggleBtn.BackgroundColor3 = Color3.fromRGB(0,150,0) local togCorner = Instance.new("UICorner", toggleBtn) togCorner.CornerRadius = UDim.new(0,8) toggleBtn.MouseButton1Click:Connect(function() mainFrame.Visible = not mainFrame.Visible end) -- Make the GUI draggable. local dragging = false local ds, sp mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true ds = input.Position sp = mainFrame.Position end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - ds mainFrame.Position = UDim2.new(sp.X.Scale, sp.X.Offset + delta.X, sp.Y.Scale, sp.Y.Offset + delta.Y) end end) UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) return ScreenGui, mainFrame, proButton, autoButton end ------------------------------------------------- -- INITIALIZE GUI & HANDLE CHARACTER RESPAWN ------------------------------------------------- local screenGui, mainFrame, proButton, autoButton = createGUI() -- KEYBINDS (PC Only): -- LeftAlt toggles GUI (only if UIS.TouchEnabled is false), X toggles Professional Mode, and M toggles Auto-Aura Grab. UIS.InputBegan:Connect(function(input, processed) if processed then return end if not UIS.TouchEnabled and input.KeyCode == Enum.KeyCode.LeftAlt then if screenGui then screenGui.Enabled = not screenGui.Enabled end elseif input.KeyCode == Enum.KeyCode.X then toggleProMode(proButton) if proButton then proButton.BackgroundColor3 = PROF and Color3.fromRGB(0,255,0) or Color3.fromRGB(255,0,0) end elseif input.KeyCode == Enum.KeyCode.M then toggleAutoAura(autoButton) end end) localPlayer.CharacterAdded:Connect(function() task.wait(1) if screenGui then screenGui:Destroy() end local newGui, newFrame, newProBtn, newAutoBtn = createGUI() proButton = newProBtn autoButton = newAutoBtn if AUTO then autoButton.Text = "Auto-Aura Grab: ON" if not autoLoopRunning then task.spawn(function() toggleAutoAura(autoButton) end) end end if PROF then currentTarget = nil -- Refresh Professional Mode upon respawn if not proLoopRunning then task.spawn(professionalModeLoop) end end end) ------------------------------------------------- -- When a new player joins, if Professional Mode is on, -- run a candidate refresh loop for 1 second (every 0.02 sec). ------------------------------------------------- Players.PlayerAdded:Connect(function(pl) if PROF then task.spawn(function() local startTime = tick() while tick() - startTime < 1 do forceProfessionalCandidate() task.wait(0.015) end end) end end) ------------------------------------------------- -- END OF SCRIPT -------------------------------------------------