Can Storyline keep track of variables across different LMS sessions? I ask because i have a single story with 5 distinct scenes, but if the user leaves the session after completing only 2 scenes, i want to keep track of that and upon relaunch from the LMS, I want to indicate the 2 scenes have been completed. Is this possible?
If you have variables you're trying to pass to your LMS though, you may want to know that by default, Storyline cannot send the value of a variable to an LMS. However, this article describes how you can accomplish this.
Not that I am aware of. This is the only method I am aware of for sending the value of a variable to an LMS, and our suspend data has always been compressed.
Do let us know if you have any other questions, and have a great day!
There is no support for passing variables between two Storyline courses, but that would make a cool Feature Request for sure!
Once you've sent the value of a variable to the LMS, it might theoretically be possible to retrieve that value from the LMS (ideas here, here, and here), although it may require some coordination with your LMS Vendor to make it happen.
Is it possible that the procedure outlined in Peter's article is not required anymore? I have a variable used to keep track of quiz attempts at runtime to limit attempts to a maximum of 3. When I exhausted my 3 attempts, closed, and launched another session from the LMS, my visible variable of quiz attempts was still displaying 3 (good behaviour).
Storyline still does not pass the value of a variable to your LMS, so you'd want to use that method Peter originally shared. It sounds like your LMS is continuing to resume to the point where you left off regardless of what you set up in terms of attempts - did you set that within Storyline or within your LMS? Storyline doesn't track total attempts on a course to stop a user from attempting it more than X number of times, and that is typically something handled by an LMS.
Variables are stored in suspend data on the LMS and restored to the Storyline file when relaunched from the LMS.
Since suspend data not intended as human readable and is a compressed blob of characters, it would be very difficult (pretty much impossible) to report that Sally chose Red Apples and Sam chose Green Grapes. Using questions to commit interactions to the LMS through SCORM 2004 r3 would provide reporting of individual values.
Yes, I'm leveraging the Resume function of Storyline, so it's probably linked to that and/or Steve's mention of suspend data. I'm tracking the quiz attempts with a custom variable being used as a counter (when the counter reaches 3, the Retry button disappears from the results slide in addition to the Start button when attempting the quiz). I went bonkers with another authoring tool and a different LMS once and I think you can only control quiz attempts on an LMS if the quiz is built from the LMS' integrated quiz maker (if available), not if you're using a SCORM package.
Thanks Steve for clarifying that piece - and I should have shared that the variables aren't reported in terms of pulling them on a score/answer report as an example but that are included in the suspend data.
As far as the resume behavior, it will return you to where you left off, but it sounds like that is working in terms of disabling the retry element? As long as there isn't another way for the users to navigate back to the quiz (menu, previous button, etc.) that should work for you and you could use that vs. the LMS. But typically tracking attempts and stopping a user after a certain amount of things are handled by the LMS.
Preserving Variable Values Across Sessions: I need to send the values of variables--Boolean if possible, but text would work--to the LMS. Then, the next time the same SCO launches, I need it to go find those values and assign them to the correct variables. Previously I used to use SmartBuilder, and it had built in functions to do both of these things (1. write all variables to LMS using suspend data and 2. read all variables from LMS using suspend data). In this way, if I can lesson that includes several discrete activities that unfold over time (several days or weeks) and I can preserve the completed status of completed activities across user sessions.
Preservation of status across activities and user sessions is built-in. No need to custom program variables for that in Storyline unless you need something not supported by built-in logic.
Ashley, sorry to seem so dense, but I read the article and did not see anything related to the effect that choice of resume setting might have on the preservation of the values of variables. Is selection of a particular Resume option necessary to realize the preservation Steve indicates is already in place? Or did you include that article just so I'd know more about Resume?
I shared that link as a reminder that the resume must be set up to allow the user to get access to those variables again. If they choose not to resume, the course will be reset and the values reset as well.
Thank you Steve and Ashley! It worked for me with Resume set to 'always'. I'll test to see if it also works with Resume set to 'prompt' when the user selects 'yes'; that is, variable and states would persist is the user selects 'yes' and would not if the user selects 'no'.
Ashley, I this the article you shared would be even more helpful if it you added this business about persistence of variables/states and described how the Resume setting effects that features.
I can certainly pass that feedback along - but its worth noting that the resume is described at the top as bringing the user "back to where they left off" so that would allow them to see what they had previously seen and have things return to where they left it.
What I'm suggesting is that it is possible to divorce how a lesson is re-accessed (last spot or page 1) from whether variables/object states are persistent. Both may be via the cmi.suspend variable, but it ought to be possible to for a user to select to start form page 1 without resetting variables/states. The way AS2 works now, these are both rolled up into the 'Resume' choice.
Independent of this feature suggestion for AS2, I think it is important to describe that (currently) the ‘Resume’ choice also dictates the persistence of variables/states. Adding just a few lines to the article you suggestion would accomplish that.
I can definitely see the value in both statements, and as such have passed it along. You're also welcome to submit feature requests using the form here.
23 Replies
Hi Andrew!
That should be no problem if you've enabled the Resume feature.
If you have variables you're trying to pass to your LMS though, you may want to know that by default, Storyline cannot send the value of a variable to an LMS. However, this article describes how you can accomplish this.
Worked like a charm! Thanks for the prompt response, Peter!
Andrew
Awesome! Good luck with the project, Andrew
am I going crazy, or did Storyline used to save variable values to the cmi.suspend_data field?
Good Afternoon Steve, and welcome to Heroes!
Not that I am aware of. This is the only method I am aware of for sending the value of a variable to an LMS, and our suspend data has always been compressed.
Do let us know if you have any other questions, and have a great day!
what about passing variables from one story to another? Or from LMS to a story? Course is too big to fit in one story.
Good Morning, Bruce.
There is no support for passing variables between two Storyline courses, but that would make a cool Feature Request for sure!
Once you've sent the value of a variable to the LMS, it might theoretically be possible to retrieve that value from the LMS (ideas here, here, and here), although it may require some coordination with your LMS Vendor to make it happen.
Is it possible that the procedure outlined in Peter's article is not required anymore? I have a variable used to keep track of quiz attempts at runtime to limit attempts to a maximum of 3. When I exhausted my 3 attempts, closed, and launched another session from the LMS, my visible variable of quiz attempts was still displaying 3 (good behaviour).
Hi Alexander,
Storyline still does not pass the value of a variable to your LMS, so you'd want to use that method Peter originally shared. It sounds like your LMS is continuing to resume to the point where you left off regardless of what you set up in terms of attempts - did you set that within Storyline or within your LMS? Storyline doesn't track total attempts on a course to stop a user from attempting it more than X number of times, and that is typically something handled by an LMS.
Variables are stored in suspend data on the LMS and restored to the Storyline file when relaunched from the LMS.
Since suspend data not intended as human readable and is a compressed blob of characters, it would be very difficult (pretty much impossible) to report that Sally chose Red Apples and Sam chose Green Grapes. Using questions to commit interactions to the LMS through SCORM 2004 r3 would provide reporting of individual values.
Yes, I'm leveraging the Resume function of Storyline, so it's probably linked to that and/or Steve's mention of suspend data. I'm tracking the quiz attempts with a custom variable being used as a counter (when the counter reaches 3, the Retry button disappears from the results slide in addition to the Start button when attempting the quiz). I went bonkers with another authoring tool and a different LMS once and I think you can only control quiz attempts on an LMS if the quiz is built from the LMS' integrated quiz maker (if available), not if you're using a SCORM package.
Thanks Steve for clarifying that piece - and I should have shared that the variables aren't reported in terms of pulling them on a score/answer report as an example but that are included in the suspend data.
As far as the resume behavior, it will return you to where you left off, but it sounds like that is working in terms of disabling the retry element? As long as there isn't another way for the users to navigate back to the quiz (menu, previous button, etc.) that should work for you and you could use that vs. the LMS. But typically tracking attempts and stopping a user after a certain amount of things are handled by the LMS.
Preserving Variable Values Across Sessions: I need to send the values of variables--Boolean if possible, but text would work--to the LMS. Then, the next time the same SCO launches, I need it to go find those values and assign them to the correct variables. Previously I used to use SmartBuilder, and it had built in functions to do both of these things (1. write all variables to LMS using suspend data and 2. read all variables from LMS using suspend data). In this way, if I can lesson that includes several discrete activities that unfold over time (several days or weeks) and I can preserve the completed status of completed activities across user sessions.
Preservation of status across activities and user sessions is built-in. No need to custom program variables for that in Storyline unless you need something not supported by built-in logic.
Hi Willi,
You'll want to ensure you're using the "resume" prompt as detailed here.
Ashley, sorry to seem so dense, but I read the article and did not see anything related to the effect that choice of resume setting might have on the preservation of the values of variables. Is selection of a particular Resume option necessary to realize the preservation Steve indicates is already in place? Or did you include that article just so I'd know more about Resume?
Variables will always be retained.
Unless the user chooses not to resume.
Hi Willi,
I shared that link as a reminder that the resume must be set up to allow the user to get access to those variables again. If they choose not to resume, the course will be reset and the values reset as well.
Thank you Steve and Ashley! It worked for me with Resume set to 'always'. I'll test to see if it also works with Resume set to 'prompt' when the user selects 'yes'; that is, variable and states would persist is the user selects 'yes' and would not if the user selects 'no'.
Ashley, I this the article you shared would be even more helpful if it you added this business about persistence of variables/states and described how the Resume setting effects that features.
Hi Willi,
I can certainly pass that feedback along - but its worth noting that the resume is described at the top as bringing the user "back to where they left off" so that would allow them to see what they had previously seen and have things return to where they left it.
What I'm suggesting is that it is possible to divorce how a lesson is re-accessed (last spot or page 1) from whether variables/object states are persistent. Both may be via the cmi.suspend variable, but it ought to be possible to for a user to select to start form page 1 without resetting variables/states. The way AS2 works now, these are both rolled up into the 'Resume' choice.
Independent of this feature suggestion for AS2, I think it is important to describe that (currently) the ‘Resume’ choice also dictates the persistence of variables/states. Adding just a few lines to the article you suggestion would accomplish that.
I can definitely see the value in both statements, and as such have passed it along. You're also welcome to submit feature requests using the form here.
This discussion is closed. You can start a new discussion or contact Articulate Support.