Tween not moving correctly

Im just really confused why it does this:

local guiWordTable = {
	["guikey"] = Skillslot1
}
Slot1.MouseButton1Click:Connect(function()
	guiWordTable["guikey"] = Skillslot1
end)
Slot2.MouseButton1Click:Connect(function()
	guiWordTable["guikey"] = Skillslot2
end)

local cooldown = script.Parent.Values.Cooldown.Value
local last = tick() - cooldown
if last > cooldown then last = cooldown end

detroit.OnClientEvent:Connect(function()
	local change = 1 - (last/cooldown)
	guiWordTable["guikey"]:TweenSize(UDim2.new(1,0,change,0),"In","Linear",0.3)
	wait(cooldown)

Can you explain more. What are you trying to do?

So everytime a player uses a move, the cooldown would happen. Every time a player uses a move but whenever id use a move in the video the tween would just go up not repeating itself