Save and Load Data Widget for Adobe Captivate


[This widget has been discontinued.]

The Save and Load Data Widget allows you to transfer data between individual and separate Adobe Captivate projects.

This is extremely useful when building courses and will allow you to make your Adobe Captivate project much more interactive for the user.

You can transfer any type of data from one Captivate project to another Captivate project as long as it is contained in a variable in Captivate. You can transfer data from Adobe Captivate System Variables or you can transfer data from Adobe Captivate User Defined variables.

This gives you more or less endless possibilities to extend your project with some new features.

A couple of example uses are:

Create a menu project in Adobe Captivate that launches your individual chapters. By using this widget you are able to carry over data from the individual chapters and display them on your main menu. You could for example transfer the status of each chapter and display “Completed” , “In progress”,  “Not attempted” on your main menu. If you have quizzes you could display the Quiz Status (passed / failed) on your menu or even copy display the score percentage for each of the quizzes in your menu.

Another example could be to have an indication of how many modules are completed in each of your chapters. Using these widgets you can save and load the status of each chapter and display that in a user friendly way.

A third example: You can have the user enter a statement or answer in a Text Entry Box in chapter 01. Then in Chapter 03 you can bring up that same statement again by using these widgets.

How does the widget work:

There are two separate widgets needed. One widget will save the data you define and one widget will load the data again. Each set of widgets will allow you to save / load 10 variables. You can use multiple instances of these widgets to allow the transfer of more variables.

The widget stores the data on the users computer in a Local Shared Object (a Flash cookie). This data is then retrieved again by the Load Data widget and is copied to a user defined Captivate variable so you can use it in your project again.

The Save and Load Data Widget requires a minimum of two parameters:


The first parameter is the name of the object that you want to save on the users computer. The second parameter is the name of the variable that you want to save. If you need to save more than one variable you simply fill out another slot in the Widget Properties.


Extending the widgets functionality:

The two Save and Load Data widgets will work perfectly well as stand-alone components. However, in some cases there might be a need to tie the data together with a specific user. This will be the case if your users are accessing your content on a shared computer with a shared login. In order to make sure that your project will work in these cases you need to tie the data together with the users name or user id.

You can use the Save and Load Username widgets for that purpose. If you use these widgets in the same project the the Save and Load Data widgets will detect this and use that information to store the data for each individual user. This happens automatically so there will be no need for you to do anything further other than setting up the Save and Load Username widgets in your project.

The Save and Load Username Widget for Adobe Captivate is provided for free if you purchase the Save and Load Data Widget.


Adobe Captivate 5 – Adobe Captivate 8.


Not really suited for projects using the standard Captivate TOC or “LMS” bookmark feature as you cannot be sure that the slide with the load data widget will be executed if a user continues from a previous session. If you have purchased the Bookmark Widget from here then you will be able to use it by creating a blank slide in Captivate as your first slide and inserting the Load Data Widget on that. You should then insert the Bookmark Widget on slide two instead of slide one.

The Widget will not work in Adobe Captivate projects exported to HTML5.

Package contents:

The download package contains the Save and Load Data Widgets for Adobe Captivate and a Delete Data Widget. It also contains the two Save and Load Username Widgets for Adobe Captivate found here. It also includes the Adobe Captivate 5 source files used to create the demonstration of the widget so you can see how that is built. Finally it contains help documentation for the widgets.


Demonstration of the Save and Load Data Widget for Adobe Captivate

This demonstration shows a simple menu with 5 chapters and demonstrates how the status of each chapter is updated on the Main Menu. The demonstration also makes use of the Save and Load Username Widgets in order to tie the data to individual users.



  1. Pingback: Adobe Captivate 5.5 and Widgets | CP Guru - Adobe Captivate E-learning Blog

  2. Pingback: Adobe Captivate Widgets (part 2) | The Highlander Blog

  3. Pingback: Save and Load Data Widgets for Adobe Captivate updated | CP Guru - Adobe Captivate Widgets

  4. Hi there,

    Would this widget be useful for situations where a Quiz is re-taken when using a question pool and the user us required to refresh the browser in order to have a rendomised set of questions?

    I’m looking for a way to retain username,id,department variables from the initial login screen and if the user fails the quiz send them back to the second slide on a page refresh or even back to the first slide with the variables retained in the entry boxes… would the Save and Load data widget help here at all?

  5. Andrew,

    Well.. yes and no… The widget is really intended to share data between individual project files, but it can be used to achieve what you are describing as well. It is rather complicated to set up though because of the way that Captivate variables behaves if there is no data available (which would be the first run of your project). Some times this causes the Captivate variable to “break” so it’s not the best solution currently.

    I do think I have a solution for this problem and I have a long overdue update of the widget on the table. If everything goes according to plan then I will be releasing a new version of this widget in 2 – 4 weeks.


  6. Ah thanks for the info Michael… it’s an issue we’re encountering with the Random Question Pool and the retaking of he quiz when they fail the pass rate… We don’t want them to have to re-insert their creds everytime they fail so looking for a way to refresh browser (so question pool gets flushed) then retain input field vars for that sessions user and allow them to continue with a fresh set of questions each re-take.

  7. Jonathan Lord on

    Hi. Do you have a version of this that can store more than 10 variables. We need to pass around 25…

    Thanks Jon

    • Hi Joh,

      You can use more than one widget in your project so just insert the appropriate amount of widgets to meet your needs.

      Give the widgets around 0.5 seconds spacing on the timeline so all of the widgets aren’t executed at the same time.


  8. Jonathan Lord on

    …on can we use the widget more than once on a slide? I could break our variables into 4 groups…. with 4 separate cookies…???



  9. Becky Heineman on

    Hi Michael! I wanted to check and see if this widget would work for my situation as well. I’ve got a small ~50 slide simple module with some slides including advanced actions to make text captions visible. Everything goes fine the first time through the module, but if the user revisits the module a second time, the hidden text stays hidden – doesn’t stay visible from the first time nor does it flip from invisible to visible due to the advanced actions. I’ve attempted coding the AA to cover for this but to no successful end. Is this something I could use a flash cookie for? Thanks!!

  10. I’ve run across an issue that I hope you can help me resolve. I have an LMS hosted course that uses web page widgets to display captivate swf files. The swf files save their progress using the save variables widget and the LMS course uses the load data widget to determine if the user view all of the slides in the swf file. Problem is that the flash cookie is stored in two different locations, one for the network stored content and another for the LMS course and they never talk to each other. Is there a way to specify the location of the flash cookie so I can have them point to the same cookie?

    If it helps, I know the exact paths that the cookies are stored to.

    Ben Boozer

    • Hi Ben,

      The widget stores the SharedObject cookie in the root () for the domain from where they are loaded / hosted. So if you take my site as an example the SharedObject would be stored in C:UsersxxxxxxxAppDataRoamingMacromediaFlash (this is a Win7 machine).
      What I think is happening in your case is that your LMS is hosted on one domain and the content you are loading through web page widget are hosted on a different domain. Therefore they will end up in separate “folders” in the #SharedObjects directory and it will not work.
      Unfortunately there isn’t anything to do about this since it is controlled by Flash Player Security and you cannot store a SharedObject in a folder for a different domain.
      So the only option you have in this case is to keep all your content on the same domain – then it should work fine.

      • Thats exactly what is happening. Now my issue is how to pass data from the swf file to the LMS content. At least whether or not the user had completely view the swf content.

        • Yeah that is a rather big challenge then. You definitely won’t be able to use the widgets for this purpose because of security restrictions.
          It might be possible to do some form of JavaScript ninja stuff and set and get variables between the projects using JavaScript functions, but it will probably be a rather complicated approach unfortunately.

  11. Chris Humphrey on


    I have tried to use the ‘usernameSaveWidget(v1_1)’ and ‘usernameLoadWidget(v1_1)’ with Captivate 7 but cannot get it them work. Basically I cannot pass the username variable across from one Captivate project to another Captivate project. When I try to do this the variable in the second project’s text caption is blank.

    Any help would be much appreciated!

    Thanks Chris

    • Hi Chris,
      Version 1.1 will not work with Captivate 7. You’ll need version 2.3 for that. When I update my widgets an automatic email is sent out to the purchasing email address with a link to download the latest version. If you haven’t downloaded these when you received the email you’ll need to get in touch with me through my contact page so I can send you a new link.

  12. I have a series of .swf files that my course moves to while in play. Each time a new .swf loads the CC (closed captioning) obviously turns off and the user needs to turn it on again. Could this Widget be set to know if CC is on in one .swf and send the command to turn it on in the next .swf if it is?



  13. Hi Michael,
    I’m pretty sure I know this answer, but just wanted to double check. If I save a var using this widget and then launch a second lesson needing this var, the second lesson needs to be launched from the same computer, correct? So using this to save data and allowing our learners to take part of the course from home computer and part from work computer would be a no-no, correct?


    • Hi Lori,

      Yes you are (unfortunately) correct. The widget saves the data locally on the users machine so this approach does require them to use the same computer again.


  14. I have a parent swf and multiple child swfs. Once a child swf is complete, I want the “next button” to appear in the parent swf. Will I be able to do that over LMS using this widget? Thanks.

Leave A Reply