--local speed = script.Parent.Speed

local tweenInfo = TweenInfo.new(
	speed, -- Length (seconds)
	Enum.EasingStyle.Bounce,
	Enum.EasingDirection.Out,
	0, -- times repeared
	false, -- reverse
	delayed -- delay
)

goals[ 1 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -30 ), 0 )
goals[ 2 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -60 ), 0 )
goals[ 3 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -90 ), 0 )
goals[ 4 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -120 ), 0 )
goals[ 5 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -150 ), 0 )
goals[ 6 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -180 ), 0 )
goals[ 7 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -210 ), 0 )
goals[ 8 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -240 ), 0 )
goals[ 9 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -270 ), 0 )
goals[ 10 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -300 ), 0 )
goals[ 11 ] = spin.CFrame * CFrame.Angles( 0, math.rad( -330 ), 0 )
goals[ 12 ] = spin.CFrame

local i = 0
while spinning do
	i = i % #goals + 1

	local tween = TweenService:Create( spin, tweenInfo, { CFrame = goals[ i ] } )
	tween:Play()

	local state = tween.Completed:Wait()
	if state == Enum.PlaybackState.Cancelled then
		warn( 'Tween cancelled' )
		break
	end
end
