Why my Tool ability stop working when i clone to backpack from replicated storage

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    Trying to clone my Tool from restorage to players backpack with proximity prompt.

  2. What is the issue? Include screenshots / videos if possible!
    Ive tried everything cloning my tool from repstorage to Plrs backpack
    when it enters my backpack it doesnt work anymore and i tested it with other tools with scripts they work but mine just doesnt wanna work.

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?

After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!

--This is ProximityPrompt Script
local RS = game:GetService("ReplicatedStorage")
local PP = script.Parent

PP.Triggered:Connect(function(plr)
	local FireGrab = RS:WaitForChild("Weapons"):WaitForChild("FireGrabMove"):Clone()
 	FireGrab.Parent = plr:WaitForChild("Backpack")
end)

--This is Local Script for my ability
local UIS = game:GetService("UserInputService")
local RS = game:GetService("ReplicatedStorage")
Player = game:GetService('Players').LocalPlayer
local Character = Player.Character
local Humanoid = Character:WaitForChild('Humanoid')
local DashRemote = script.DashGrab
local GrabAnim = script.Grab
local Debounce = false
local tool = script.Parent
local AbilityBools = RS:WaitForChild("AbilityBools").FireGrab

local equipped = false

tool.Equipped:Connect(function()
	equipped = true
end)


UIS.InputBegan:Connect(function(input, GPE)
		if GPE then return end
		if input.KeyCode == Enum.KeyCode.F and equipped == true then
			DashRemote:FireServer(input)
			print("Grab Fired to Server")
			local LoadAnimGrab = Humanoid:LoadAnimation(GrabAnim)
			LoadAnimGrab:Play()
	end
end)

--This is ServerScript
local RS = game:GetService("ReplicatedStorage")
local DashRemote = script.Parent.Parent.DashGrab
local HitBox = RS:WaitForChild("VFX").GrabHitBox
local CarryingAnim = script.Parent.Parent.GrabCarrying
local OtherPLayerCarryAnim = script.Parent.Parent.OtherPlayerAnim
local Debris = game:GetService("Debris")
DashRemote.OnServerEvent:Connect(function(plr, input)
	
	local Character = plr.Character
	local HumRP = Character:WaitForChild("HumanoidRootPart")
	local Humanoid = Character:WaitForChild("Humanoid")
	local RightHand = Character:WaitForChild("RightHand")
	
	local HitboxClone = HitBox:Clone()
	HitboxClone.Parent = workspace
	HitboxClone.Transparency = 1
	HitboxClone.Size = Vector3.new(7,7,7)
	HitboxClone.BrickColor = BrickColor.new("Really red")
	
	local FireHand = RS:WaitForChild("VFX").FireHand
	local FireHandD = FireHand:Clone()
	FireHandD.Parent = workspace
	FireHandD.Position = RightHand.Position
	local Weld4 = Instance.new("Weld")
	Weld4.Parent = RightHand
	Weld4.Part1 = FireHandD
	Weld4.Part0 = RightHand
	
	local BodyVelocity = Instance.new("BodyVelocity")
	BodyVelocity.Parent = HumRP
	BodyVelocity.MaxForce = Vector3.new(37000,0,37000)
	BodyVelocity.Velocity = HumRP.CFrame.LookVector * 300
	
	local Weld = Instance.new("Weld")
	Weld.Parent = HitboxClone
	Weld.Part0 = RightHand
	Weld.Part1 = HitboxClone
	Debris:AddItem(HitboxClone,3)
	Debris:AddItem(FireHandD, 3)
	Debris:AddItem(Weld4, 3)
	local loadCarryingAnim = Humanoid:LoadAnimation(CarryingAnim)
	local DamageBox = HitboxClone:Clone()
	HitboxClone.Touched:Connect(function(Hit)
		print(tostring(Hit) .. " Grab Script")
		DamageBox.Name = "DamageBox"
		DamageBox.Parent = workspace
		local Weld2 = Instance.new("Weld")
		Weld2.Parent = DamageBox
		Weld2.Part0 = RightHand
		Weld2.Part1 = DamageBox
		if Hit.Parent:FindFirstChild("Humanoid") then
			local Character = Hit.Parent:FindFirstChild("Humanoid").Parent
			local Head = Character:WaitForChild("Head")
			local Hum = Character:FindFirstChild("Humanoid")

			local LoadVictimAnim = Hit.Parent:FindFirstChild("Humanoid"):LoadAnimation(OtherPLayerCarryAnim)
			for i, v in pairs(Character:GetChildren()) do
				if v:IsA("BasePart") then
					v.CanCollide = false
					v.Massless = true
				end
			end
			
			
			LoadVictimAnim:Play()
			local Weld = Instance.new("Weld")
			Weld.Parent = RightHand
			Weld.Part0 = Head
			Weld.Part1 = RightHand
			Weld.C0 = CFrame.new(0,-0.1,-0.8)
			Weld.C1 = CFrame.Angles(10,-10,0)
			
			HumRP.Anchored = true
			Humanoid.WalkSpeed = 0
			loadCarryingAnim:Play()
			
			task.wait(3.8)
			
			local FireVFX = RS:WaitForChild("VFX").FireBlast
			local FireVFXX = FireVFX:Clone()
			FireVFXX.Parent = workspace
			FireVFXX.Position = RightHand.Position
			local Weld3 = Instance.new("Weld")
			Weld3.Parent = FireVFXX
			Weld3.Part1 = FireVFXX
			Weld3.Part0 = RightHand
			Weld3.C0 = CFrame.new(0,0,0)
			Weld3.C1 = CFrame.Angles(0,0,0)
			Hum:TakeDamage(plr:WaitForChild("StatsFolder").MagicDamage.Value)
			
			task.wait(3.2)
			
			HumRP.Anchored = false
			Humanoid.WalkSpeed = 16
			Debris:AddItem(FireVFXX, 3)
			Debris:AddItem(Weld3, 3)
			Debris:AddItem(Weld, 3)
			LoadVictimAnim:Stop()
			Debris:AddItem(DamageBox, 3)
			loadCarryingAnim:Stop()
		end
	end)
	
	Debris:AddItem(BodyVelocity, 0.3)
	
end)

image
when i put it in StarterPack it works
Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.

– Needed Information
Was there errors coming from output?

– Solution (Maybe)
What I’d do is have the localscript “SuperPowerGrab” and the ServerScript “DashGrabServer” both disabled until it gets cloned into the players backpack, then re-enabled them.

– Suggestion
Also although it may not be a problem, something to look at would be this forum post

Just about habits with using “WaitForChild” instead of using “FindFirstChild”

ok ill try what u said thanks for replying

But there’s nothing in the output