Anti grab
Key RequiredUniversal

Anti grab

Universal Scriptowlguy17owlguy17 2.1K views 494 executesUpdated Nov 24, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•440 lines (17755 chars)
-------------------------------------------------
-- 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

-------------------------------------------------
-- GRAB FUNCTION (para el botón Kill)
-------------------------------------------------
local function u()
    local ch = localPlayer.Character
    if not ch then return end

    local hrp = ch:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    local closest, bestDist = nil, 10
    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 targetHead = closest.Character:FindFirstChild("Head")
        if targetHead then
            safeFire(GrabEvent, targetHead, "Grab")
        end
    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
                local candidate, bestDist = nil, 10.5
                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
                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
                        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(100,50)
    mainFrame.Position = UDim2.new(0.5,-125,0.8,-150)
    mainFrame.BackgroundColor3 = Color3.fromRGB(25,25,25)
    mainFrame.Draggable = true
    mainFrame.BackgroundTransparency = 1
    local mCorner = Instance.new("UICorner", mainFrame)
    mCorner.CornerRadius = UDim.new(0,12)
    
    -- Textbox for times
    local TextBox = Instance.new("TextBox")
    TextBox.Name = "TextBox"
    TextBox.Parent = mainFrame
    TextBox.Size = UDim2.new(0, 50, 0, 30)
    TextBox.Position = UDim2.new(0, 10, 0, 10)
    TextBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    TextBox.TextColor3 = Color3.fromRGB(255, 255, 255)
    TextBox.PlaceholderText = "Write here..."
    TextBox.PlaceholderColor3 = Color3.fromRGB(180, 180, 180)
    TextBox.TextSize = 18
    TextBox.ClearTextOnFocus = false
    TextBox.Text = ""
    
    -- KILL BUTTON (ahora también hace Grab)
    local killBtn = Instance.new("TextButton")
    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()
        local value = tonumber(TextBox.Text) or 0
        for grabfc = 1, value do
            task.spawn(u)
            task.spawn(u)
            task.spawn(function()
                safeFire(ActivateEvent, SelectedTrap)
            end)
        end
    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,400)
    for i, name in ipairs({"VendingMachine","Cage","Shark","Guillotine","Sled","Machine","Catapult","VendingMachine2","VendingMachine3","Machine2","Cage2","Cage3"}) 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)
    
    -- 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)
    toggleBtn.Draggable = true
    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)

-------------------------------------------------
-- END OF SCRIPT
---------------------------------------------------------

Features & Information

press the kill button to send them to the trap you selected, the other button is to select the trap Carry people simulator 3
#Carry people simulator#anti grab#op

Community Comments (8)

@usernamealreadyexis broski is still promoting it 💀 respect

Replying to @SyrexGenesisXIsBack
owlguy17owlguy17Jan 2, 2026

@SyrexGenesisXIsBack ?

johnpedro032011johnpedro032011Nov 26, 2025

This is a good script that's really worth using. It works by teleporting someone to your location when they're carrying you alone. If you choose the option to make them die and click "kill," they're teleported back to the designated spot.

Replying to @johnpedro032011
owlguy17owlguy17Nov 29, 2025

@johnpedro032011 it sends them to the trap you selected when theyre grabbing u

owlguy17owlguy17Nov 29, 2025

actually it just sends them to the trap you selected, the best one is VendingMachine because it directly kills the one grabbing you

owlguy17owlguy17Dec 5, 2025

Updated: Added more traps!

owlguy17owlguy17Dec 5, 2025

Updated: Now you can send the closest player to the trap without need to grab them!

More Scripts for Universal Scripts