I want this script to drop the tool and remove it from its backpack, specifically when it is equipped. This script is in working order, but despite how I want it to really work, It doesn't. The issue I'm getting is that when I do die, the tool doesn't drop yet, until i respawn and it drops the tool I was holding. I want to make it when if you die, it immediately drops the tool so the enemy can pick it up and keep it, instead of waiting for 10 seconds for the body to despawn.

For those who wanted to know where this script is located is a script in StarterCharacterScripts.

local character = script.Parent
local humanoid = character:FindFirstChild("Humanoid")
local player = game.Players:GetPlayerFromCharacter(character)
local backpack = player:WaitForChild("Backpack")

local hadToolEquipped = false

humanoid.Died:Connect(function()
	print("Humanoid Died")
	for i, tool in pairs(character:GetChildren()) do
		if tool:IsA("Tool") then
			hadToolEquipped = true
			tool.Parent = game.ReplicatedStorage
		end
	end
end)

player.CharacterRemoving:Connect(function(character)
	print("Character Removed")
	for i, tool in pairs(backpack:GetChildren()) do
		if tool:IsA("Tool") and tool:FindFirstChild("Handle") then
			tool.Parent = game.Workspace
			tool.Handle.CFrame = character.HumanoidRootPart.CFrame
		end
	end
	if hadToolEquipped == true then
		local equippedTool = game.ReplicatedStorage:FindFirstChildOfClass("Tool")
		equippedTool.Parent = game.Workspace
		equippedTool.Handle.CFrame = character.HumanoidRootPart.CFrame
	end
end)