Tool not cloning

My script does not give me the hand:

local hands = {{"WoodHand",10,1000,Color3.fromRGB(124,92,70),Enum.Material.Wood},
				{"MetalHand",15,2000,Color3.fromRGB(99,95,98),Enum.Material.Metal},
				{"MetalHand",100,1000000,Color3.fromRGB(255,255,255),Enum.Material.Neon},
}

function createHand(name,damage,pressure,color,material,parent)
	local og_hand = game.ServerStorage:WaitForChild("Hand")
	local hand = og_hand:Clone()
	local config = hand:WaitForChild("Handle"):WaitForChild("Configuration")
	hand.Name = name
	config.Damage.Value = damage
	config.Pressure.Value = pressure
	config.Parent.Color = color
	config.Parent.Material = material
	hand.ToolTip = "Damage: "..damage.."\nForce:"..pressure
	
	hand.Parent = parent
end

local ds = game:GetService("DataStoreService")
local gds = ds:GetDataStore("CurrentHand")
local plrs = game:GetService("Players")

game.Players.PlayerAdded:Connect(function(plr)
	local info = Instance.new("Folder",plr)
	info.Name = "Info"

	local current = Instance.new("IntValue",info)
	current.Name = "Current"
	current.Value = gds:GetAsync(plr.UserId) or 1
	
	--[[if (current.Value > #hands) or (current.Value < 0) then
		plr:Kick("Kicked under suspicion of exploiting")
	end]]
	
	plr.CharacterAdded:Connect(function(char)
		local hand = hands[current.Value]
		createHand(hand[1],hand[2],hand[3],hand[4],hand[5],plr:WaitForChild("Backpack"))
	end)
end)

game.Players.PlayerRemoving:Connect(function(plr)
	gds:SetAsync(plr.UserId, plr:WaitForChild("Info")["Current"].Value)
end)

Anyone know why? Thanks