Maybe use CFrame instead on the handle and set it before parenting to workspace
local function onDied()
print ("Script Loaded.")
local bat = game.ReplicatedStorage["Bat"]:Clone()
bat.Handle.CFrame = script.Parent.Parent.Torso.CFrame
bat.Parent = workspace
end
script.Parent.Died:Connect(onDied)
Tools don’t have positional properties, you would have to move the Handle, you were probably getting an error on the position line