I am trying to track the kills in my game to reward players with money but I can't get the creator tag to print an actual tag, it's always nil. I made my own weapon with a copied tag and untag method from a roblox sword. I put it in the dealdamage server script. What am I doing wrong?

function TagHumanoid(humanoid, player)
	local Creator_Tag = Instance.new("ObjectValue")
	Creator_Tag.Name = "creator"
	Creator_Tag.Value = player
	game:GetService("Debris"):AddItem(Creator_Tag, 2)
	Creator_Tag.Parent = humanoid
end

function UntagHumanoid(humanoid)
	for i, v in pairs(humanoid:GetChildren()) do
		if v:IsA("ObjectValue") and v.Name == "creator" then
			v:Destroy()
		end
	end
end

script.Parent.DealDamage.OnServerEvent:Connect(function(player, Target, Damage)
	UntagHumanoid(Target)
	TagHumanoid(Target, player)
	Target.Humanoid:TakeDamage(Damage)
end)

game.Players.PlayerAdded:Connect(TagHumanoid)
game.Players.PlayerAdded:Connect(UntagHumanoid)

this is the damage script above.

local char = script.Parent
local hum = char:WaitForChild("Humanoid")

hum.Died:Connect(function()
	local tag = hum:FindFirstChild("creator")
	print(tag)
	if tag then 
		local player = tag.Value
		local Cash = player.leaderstats.Cash
		Cash.Value = Cash.Value + 10
	end
end)

this is the server script inside the NPC I am testing with.

Again, the console always prints the tag as nil. Any help would be massively appreciated!