So this script works if the tools were given to the player by a tool giver or shop button, but in my game, the main tools get dropped my mobs, not directly added to the player's backpack. Can somebody tell me how to fix this so that tools can be saved when dropped from an NPC also?

local Inventory = {}

local function Spawned(Char)
	local Plr = game.Players:GetPlayerFromCharacter(Char)
	for i,v in pairs(Inventory[Plr]) do
		if Plr['Backpack']:findFirstChild(v.Name) then
			Plr['Backpack'][v.Name]:Destroy()
		end
		v.Parent = Plr['Backpack']	
	end
	Inventory[Plr] = {}
	Char:WaitForChild('Humanoid').Died:connect(function()
		for i,v in pairs({Plr['Backpack'], Char}) do
			for ii,vv in pairs(v:GetChildren()) do
				if vv:IsA('Tool') then
					table.insert(Inventory[Plr], vv:Clone())
					vv:Destroy()
				end
			end
		end
	end)
end

game.Players.PlayerAdded:connect(function(Plr)
	Inventory[Plr] = {}
	local Char = Plr.Character or Plr.CharacterAdded:wait()
	Spawned(Char)
	Plr.CharacterAdded:connect(Spawned)
end)