If Player 1 touches a Tool in Player 2's inventory, Player 1 will take the Tool, and Player 2 will no longer have it.
Here's the current scripts
Tool = script.Parent
function fire(v)
Tool.Handle.Boing:play()
local vCharacter = Tool.Parent
local vPlayer = game.Players:playerFromCharacter(vCharacter)
local spawnPos = vCharacter.PrimaryPart.Position
spawnPos = spawnPos + (v * 7)
--[[
local missile = Instance.new("Part")
missile.Position = spawnPos
missile.Size = Vector3.new(2,2,2)
missile.Velocity = v * 10000000000000000000000000000000000000
missile.BrickColor = BrickColor.random() -- BrickColor.new(26)
missile.Shape = 0
missile.BottomSurface = 0
missile.TopSurface = 0
missile.Name = "Cannon Shot"
missile.Elasticity = 5
missile.Reflectance = .2
missile.Friction = 0
Tool.Handle.Boing:clone().Parent = missile
local new_script = script.Parent.CannonBall:clone()
new_script.Disabled = false
new_script.Parent = missile
local creator_tag = Instance.new("ObjectValue")
creator_tag.Value = vPlayer
creator_tag.Name = "creator"
creator_tag.Parent = missile
missile.Parent = game.Workspace
]]
connection:disconnect()
wait()
Tool.Parent = game.Workspace
Tool.Handle.Position = spawnPos
Tool.Handle.Velocity = v * 107.5
end
--Tool.Enabled = true
function onActivated()
--if not Tool.Enabled then
-- return
--end
--Tool.Enabled = false
local character = Tool.Parent;
local humanoid = character.Humanoid
if humanoid == nil then
print("Humanoid not found")
return
end
local targetPos = humanoid.TargetPoint
local lookAt = (targetPos - character.Head.Position).unit
fire(lookAt)
--wait(2)
--Tool.Enabled = true
end
while true do
script.Parent.Activated:wait()
connection = game:service("RunService").Stepped:connect(onActivated)
wait(2)
end
--connection = script.Parent.Activated:connect(onActivated)
(it's used for throwing the ball).
while true do
wait()
if script.Parent.Parent.Name == "Backpack" then
script.Parent.Parent = script.Parent.Parent.Parent.Character
end
end
(it's used for never hiding the Tool in the inventory)
I've tried everything, and I can't seem to get a working script for this problem. Please help me out.
stealrate = 1 -- adjust how fast you want the ball to be able to be stolen.
wait(stealrate)-- waiting before it can be stolen again, adjust above.
script.Parent.Handle.Touched:connect(function(hit)
pcall(function()
player = game.Players:getPlayerFromCharacter(hit.Parent)
script.Parent:Clone().Parent = player.Backpack
script.Parent:Remove()
end)
end)
was a script I used. It duplicated the tool when stolen.

2 comments
“I’ve tried everything” doesn’t help me identify your issue here. Telling me examples of some of your attempts, will.
I've edited the thread to show my attempts