i'm trying to write it so that when a player buys an item (which is in the replicated storage) it doesn't go away when they die. Here is my script I've written, does anyone have any advice?

local Inventory = {}

local function Spawned(Char)
	local Plr = game.Players:GetPlayerFromCharacter(Char)
	for i,v in pairs(Inventory[Plr]) do
		if Plr['StarterGear']:findFirstChild(v.Name) then
			Plr['StarterGear'][v.Name]:Destroy()
		end
		v.Parent = Plr['StarterGear']	
	end
	Inventory[Plr] = {}
	Char:WaitForChild('Humanoid').Died:connect(function()
		for i,v in pairs({Plr['StarterGear'], 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)