ITEM GRABBER BETA
Key RequiredUniversal

ITEM GRABBER BETA

Universal ScriptVeldranVeldran 850 views 592 executesUpdated Jan 1, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•187 lines (5082 chars)
-- AUTO TOOL GRABBER + SEARCH BAR
-- 1 SOLO SCRIPT | SOLO TOOLS AGARRABLES

local Players = game:GetService("Players")
local player = Players.LocalPlayer

-- ================= GUI =================

local gui = Instance.new("ScreenGui", player.PlayerGui)
gui.Name = "ToolItemGrabber"
gui.ResetOnSpawn = false

-- BOTÓN OPEN
local toggle = Instance.new("TextButton", gui)
toggle.Size = UDim2.fromScale(0.08,0.08)
toggle.Position = UDim2.fromScale(0.01,0.45)
toggle.Text = "OPEN"
toggle.TextScaled = true
toggle.Font = Enum.Font.GothamBold
toggle.BackgroundColor3 = Color3.fromRGB(0,255,200)
toggle.TextColor3 = Color3.new(0,0,0)
toggle.BorderSizePixel = 0
Instance.new("UIStroke", toggle).Thickness = 3

-- FRAME
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.fromScale(0.45,0.6)
frame.Position = UDim2.fromScale(0.275,0.2)
frame.BackgroundColor3 = Color3.fromRGB(15,15,20)
frame.Visible = false
frame.BorderSizePixel = 0
Instance.new("UIStroke", frame).Thickness = 3

-- TITULO
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.fromScale(1,0.1)
title.BackgroundTransparency = 1
title.Text = "TOOL GRABBER"
title.TextScaled = true
title.Font = Enum.Font.GothamBold
title.TextColor3 = Color3.fromRGB(0,255,200)

-- SEARCH BAR
local searchBox = Instance.new("TextBox", frame)
searchBox.Size = UDim2.fromScale(0.9,0.08)
searchBox.Position = UDim2.fromScale(0.05,0.11)
searchBox.PlaceholderText = "Buscar Tool..."
searchBox.Text = ""
searchBox.TextScaled = true
searchBox.Font = Enum.Font.Gotham
searchBox.BackgroundColor3 = Color3.fromRGB(25,25,30)
searchBox.TextColor3 = Color3.new(1,1,1)
searchBox.BorderSizePixel = 0

-- LISTA
local listFrame = Instance.new("ScrollingFrame", frame)
listFrame.Position = UDim2.fromScale(0.05,0.21)
listFrame.Size = UDim2.fromScale(0.9,0.48)
listFrame.CanvasSize = UDim2.new()
listFrame.ScrollBarImageTransparency = 0.3
listFrame.BackgroundColor3 = Color3.fromRGB(20,20,25)
listFrame.BorderSizePixel = 0

local layout = Instance.new("UIListLayout", listFrame)
layout.Padding = UDim.new(0,6)

-- BOTONES
local grabBtn = Instance.new("TextButton", frame)
grabBtn.Size = UDim2.fromScale(0.45,0.12)
grabBtn.Position = UDim2.fromScale(0.05,0.72)
grabBtn.Text = "GRABBER (TP)"
grabBtn.TextScaled = true
grabBtn.Font = Enum.Font.GothamBold
grabBtn.BackgroundColor3 = Color3.fromRGB(0,200,150)
grabBtn.TextColor3 = Color3.new(0,0,0)
grabBtn.BorderSizePixel = 0

local resetBtn = Instance.new("TextButton", frame)
resetBtn.Size = UDim2.fromScale(0.45,0.12)
resetBtn.Position = UDim2.fromScale(0.5,0.72)
resetBtn.Text = "RESET"
resetBtn.TextScaled = true
resetBtn.Font = Enum.Font.GothamBold
resetBtn.BackgroundColor3 = Color3.fromRGB(200,80,80)
resetBtn.TextColor3 = Color3.new(1,1,1)
resetBtn.BorderSizePixel = 0

-- ================= LOGICA =================

local detectedTools = {} -- [tool] = button
local selectedTool = nil
local TP_OFFSET = Vector3.new(0,4,0)

local function isValidTool(tool)
	return tool:IsA("Tool")
		and tool:FindFirstChild("Handle")
		and tool.Parent == workspace
end

local function refreshFilter()
	local query = string.lower(searchBox.Text)

	for tool, button in pairs(detectedTools) do
		button.Visible = (query == "" or string.find(string.lower(tool.Name), query))
	end

	task.wait()
	listFrame.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 10)
end

local function addTool(tool)
	if detectedTools[tool] or not isValidTool(tool) then return end

	local btn = Instance.new("TextButton", listFrame)
	btn.Size = UDim2.new(1,-10,0,40)
	btn.Text = tool.Name
	btn.TextScaled = true
	btn.Font = Enum.Font.Gotham
	btn.BackgroundColor3 = Color3.fromRGB(30,30,35)
	btn.TextColor3 = Color3.fromRGB(0,255,200)
	btn.BorderSizePixel = 0

	btn.MouseButton1Click:Connect(function()
		selectedTool = tool
	end)

	detectedTools[tool] = btn
	refreshFilter()
end

local function removeTool(tool)
	if detectedTools[tool] then
		detectedTools[tool]:Destroy()
		detectedTools[tool] = nil
		if selectedTool == tool then
			selectedTool = nil
		end
	end
end

local function fullScan()
	for tool in pairs(detectedTools) do
		removeTool(tool)
	end
	selectedTool = nil

	for _, obj in pairs(workspace:GetChildren()) do
		if obj:IsA("Tool") then
			addTool(obj)
		end
	end
end

-- AUTO DETECCIÓN
workspace.ChildAdded:Connect(function(obj)
	if obj:IsA("Tool") then
		task.wait(0.1)
		addTool(obj)
	end
end)

workspace.ChildRemoved:Connect(removeTool)

-- SEARCH
searchBox:GetPropertyChangedSignal("Text"):Connect(refreshFilter)

-- BOTONES
grabBtn.MouseButton1Click:Connect(function()
	if not selectedTool then return end
	if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end

	local handle = selectedTool:FindFirstChild("Handle")
	if handle then
		player.Character.HumanoidRootPart.CFrame =
			CFrame.new(handle.Position + TP_OFFSET)
	end
end)

resetBtn.MouseButton1Click:Connect(fullScan)

toggle.MouseButton1Click:Connect(function()
	frame.Visible = not frame.Visible
	toggle.Text = frame.Visible and "CLOSE" or "OPEN"
	if frame.Visible then
		fullScan()
	end
end)

Features & Information

HOLA A TODOS, este script esta en BETA, informeme sobre cualquier error y lo actualizare, como funciona: - te hace tp a los objetos de la lista, primero dele click a un objeto y despues grabber - te teletransportara al objeto escogido

Community Comments (7)

pinkblownephiapinkblownephiaJan 2, 2026

I found it useful.

pinkblownephiapinkblownephiaJan 2, 2026

How does this work? I mean the search tab.

Replying to @pinkblownephia
VeldranVeldranJan 2, 2026

@pinkblownephia It only detects grabable objects. The search tab works if it detects too many objects; to make things easier, it searches for the object. Can you tell me which game you tested it on so I can update the script?

Replying to @Veldran
pinkblownephiapinkblownephiaJan 2, 2026

@Veldran It was my mistake; the script works perfectly.

Replying to @pinkblownephia
VeldranVeldranJan 4, 2026

@pinkblownephia Oh, okay, if any errors occur in the script, let me know and I'll fix them.

pinkblownephiapinkblownephiaJan 2, 2026

Não seria mais fácil o script já mostrar os itens

pinkblownephiapinkblownephiaJan 2, 2026

Onde estão

More Scripts for Universal Scripts