Pass Variables Between Lessons

Mar 27, 2013


I am new to e-learning and am wondering how to pass variables between lessons in my LMS.

My course layout:

- Students take an assessment at beginning of course

- Depending on outcome of above, students are driven to different parts of the course

My primary concern is not being able to properly guide students.  This is easy to manage when everything is in one story but that's not feasible as my story is too large.

Suggestions appreciated!

Thanks in advance,

22 Replies
john faulkes


There is an 'easy' way to do this and it may tick some of your boxes but not all. When I say 'Storyline file' below I actually mean the published output of each of the .story files you have:

Your initial Storyline file is the assessment, and the results of it you can store in various variables. Depending on the results you use these to direct people to different parts of the course, which are different storyline files you have. Each of the latter will have its own URL and your directions can be hyperlinks to load whichever one into the current window. Thus it is seamless for the user. There are a few bits and pieces that have to be set right, but it can be done no problem.

The actual results of the assessment, if you want to keep them, you may be able to capture in your LMS. I'm not an expert on what resolution of data you can report on. But if for some reasons you want the other Storyline files to pick up any of the variables' values, i don't believe a standard LMS will be able to do that. I am looking forward to hearing some replies by LMS experts on the forum, but at first look it seems tricky.

There is another way to do it...a Storyline project can be customised to send variables values to a database, and another Storyline project can be customised to pick up these values from a database. Depending on your LMS requirements you can use this database as your LMS, or it can be a separate utility.  This is not something easily accessible within the normal programming of Storyline, it requires some detailed javascript. I am happy to explain further, no problem, if you want to contact me.


Brett Rockwood

Bringing this topic back alive...

Here's what I'm trying to do:

First, I'm hosting the courses on SharePoint so there are no LMS or SCORM concerns. I have a course that has three regional variations and multiple modules. Each module has three scenes, one for each region. At the beginning of the first module I want to have the user pick their region, which sets the region variable and takes them to the proper scene. This is fine within the first module. But I want them to be able to progress to the next module and be taken to the proper region (scene) without having to set the variable again.

John, it sounds like your idea of using javascript and a database to pass the variables might be the answer. Can you, or someone else, elaborate? Or maybe there is a better solution...

john faulkes

Brett - I am subscribed to this thread I think.

But anyway, as to your question, I don't think there is a better way than to use a js trigger to send the variable to a database.

You could have this working very quickly, it sounds fairly straightforward. Could you connect with me on and we will discuss further...


Neil Chandarana

Hi All,

This is an interesting article and it is very similar to the problems that we are facing.

We currently use an internal LMS that has been created in-house by our iT team and have a .story file of well over 800mb. 

Due to the size and complexity of the .story file we are having problems working/publishing the file despite having a machine of the specification below:

Processot : i7


OS: Windows 64 bit. 

Due to these problems we are looking into splitting our .story files into two parts.

The problem we have is that we are reporting variables to our LRS and some information needs to be passed from 'Part 1' to 'Part 2' of the program. We were under the assumption that should both parts of the program have the same 'Course ID' then then data would pass from 'Part 1' to 'Part 2'. However when testing this this has not worked. 

Has anyone been able to successfully transfer data from one course to another via TIN CAN API. If so please could they assist us, any help would be much appreciated. 

John Faulkes - Your thoughts are interesting, I would like to get in contact with you further, would you mind if I contact you directly?
Additionally should anyone else have any thoughts please feel free to share, we are hitting a brick wall at the moment!
Please get back to me when you can, this would be much appreciated.
Many Thanks
Neil Chandarana.
Phil Mayor

John's suggestion is the best route to go, I think both courses having the same course ID may cause you to lose data in the LRS and would not pass variable data back to the player as I expect the player would not be able to match the resume data with its internal structure and discard the resume data.

Neil Chandarana

Hi John,

When you say John's suggestion is the best route, do you mean the JavaScript option?

With regards to having the same course ID, should you keep the internal structure the same for both parts of the courses the same then maybe this could potentially work.

So the theory would be you would have a break point in the .story file where Part 1 is the same with all the content and then blank slides for part 2.

Then for Part 2 you would have Part 1 with blank slides and then content for Part 2.

It is a little difficult to explain but I think that this could work, should you want to report on variables on both parts.

We are experimenting with this at the moment.

Please get back to me when you can, this would be much appreciated.

Many Thanks

Neil Chandarana

Phil Mayor

The javascript saving to a database would work.

I can see what you are hoping to happen, but keeping the same course ID even with the same structure is likely going to cause data to be overwritten, you will only ever have data for one half of the course, each time you close the course it will overwrite the previous data, I cannot see this working.

the most reliable solution would be to save to a database and then retrieve from the database when you need it

Neil Chandarana

Hi Phil, 

OK interesting thoughts. Even if we were to implement JavaScript I am under the impression that the Articulate Mobile Player App does not currently support JavaScript is this still the case as per the thread below:

I appreciate a later release of the app has now come out for ios7 are you aware if it supports JavaScript. 

My point is even if we were to go down this route we need to be able to support the IPAD app as well including passing variables from one course to another.

Additionally are you aware were we would need to implement the JavaScript. Would we implement it in the course itself, or edit the published files once we publish the course. Are you aware of how we could do this?  

Please get back to me when you can, this would be much appreciated.

Many Thanks

Neil Chandarana

Phil Mayor

I would add the javascript as a trigger in Storyline, but this will not support the iPad App, the new release does not support javascript.

You could only use the html5 content on the iPad, I cannot think of a solution that would work and include the iPad app. 

It would be interesting to hear if your homegrown solution bears any fruit 

Joseph Baiocco

Not a perfect solution, but you can use the learner's browser cache (via JS localStorage) to store variables (with the learner's knowledge/permission) that can be accessed by another published SL file. 

This allows you to talk between files. However, in the interests of security, I would not allow user-inputted text variables to be passed between files. Only variables the learner can't manipulate.

It's also important to let the learner know that clearing their cache will delete their stored info.