System variables in Adobe Captivate 4 – a complete list

26

Adobe Captivate 4 allows designers to access and modify a variety of System Variables to add extra functionality to their projects.

I haven’t seen a full list of all the Adobe Captivate 4 variables anywhere so I decided to post one here.

The System Variables are divided into different groups:

MovieControl lists variables for events that control the movie like pause, resume, previous, next slide, and so on.

MovieInformation lists variables related to the movie such as variables for the current slide, current frame, and so on.

MovieMetaData lists variables that provide information about the project such as project name, author, and company.

SystemInformation lists variables that can be picked up from your computer such as current date and current time.

Quizzing lists variables related to quizzing, such as the variables that capture the number of attempts and the percentage of questions answered correctly.

I tried to put the variables into their respective categories below, but there are some of them, which seem out of place. For example – all quizzing variables start with cpQuizInfo… but there is also a variable called cpInfoPercentage, which shows the scoring in percent. Why this variable isn’t named cpQuizInfoPercentage is beyond me.

MovieControl Variables:

Variable nameDefault valueDescription
cpCmndCC0Enable/disable closed captioning (CC). Set value to 1 to display closed captions.
cpCmndGotoSlide-1Assign the slide number that the movie should move to before pausing. Index begins with zero
cpCmndMute0Mute the audio. set 1 to mute and 0 to unmute
cpCmndPlaybarMoved0Set to 1 if the playbar has moved
cpCmndShowPlaybar1Provides info about the visibility of the playbar. Returns 1 if the playbar is visible, and O if not visible
cpCmndVolume50Control the movie’s volume. Value can range from 0 to 100
rdcmndExit0Exit the movie. set 1 to exit
rdcmndGotoFrame Assign the frame number the frame should jump to before pausing. Index begins with zero.
rdcmndGotoFrameAndResume Assign to this variable the frame number to jump to and play. Index begins with zero
rdcmndInfo0Display information about Adobe Captivate
rdcmndNextSlide0Go to the next slide. Set 1 to jump to next slide
rdcmndPause0Pause the movie. Set 1 to pause
rdcmndPrevious0Go to the previous slide. Set 1 to jump to previous slide
rdcmndResume0Resume playing the movie. Set 1 to resume.
cpLockTOC0Enables/disables user interaction on TOC

MovieInformation variables:

Variable nameDefault valueDescription
cpInfoCurrentSlide Current slide number. Index begins with 1
cpInfoCurrentSlideLabel Name of the Current Slide
cpInfoCurrentSlideType Type of slide playing currently. (Slide type can be Normal Slide, Question Slide, or Random Question Slide)
cpInfoHasPlaybar Information about presence of playbar. Returns 1 if visible and 0 if not
cpInfoIsStandalone ? No idea what this is.
cpInfoLastVisitedSlide0Last visited slide. Index begins with zero
RdinfoCurrentFrame Current frame number. Index begins with zero
rdinfoCurrentSlide Current slide number. Index begins with zero
RdinfoFPS30Frame rate of the movie in fps
rdinfoFrameCount Total number of frames in the project
rdinfoSlideCount Total number of slides in the project
cpInfoElapsedTimeMS0Time elapsed, in milliseconds, since the movie started playing
cpInfoEpochMS Time elapsed, in milliseconds, since Januar 01, 1970
cpInfoPrevSlide Slide Previously playing before current slide
CaptivateVersionv4.0.0Shows the Captivate version
 

MovieMetaData variables:

Variable nameDefault valueDescription
cpInfoAuthor Name of the author
cpInfoCompanycompanyName of the company
cpInfoCopyrightcopyrightCopyright Info
cpInfoDescriptionproject descriptionDescription of the project
cpInfoEmailauthor@company.come-mail address
cpInfoProjectName Name of the Adobe Captivate project
cpInfoWebsitewww.company.comURL of the company website in the format www.companyaddress.com

SystemInformation variables:

Variable nameDefault valueDescription
cpInfoCurrentDateddCurrent Date: The date as set on the user’s computer
cpInfoCurrentDateStringmm/dd/yyyyCurrent Date as set on the user’s computer in the mm/dd/yyyy format
cpInfoCurrentDay Day of the week as set on the user’s computer. Values range from 1-7 starting with Sunday. Sunday=1, Monday=2, and so on)
cpInfoCurrentHourhhCurrent hour: The hour set as on the user’s computer
cpInfoCurrentMinutesmmCurrent minutes: The hour set as on the user’s computer
cpInfoCurrentMonthmmCurrent month: The month as set on the user’s computer
cpInfoCurrentTimehh:mm:ssCurrent time as set on the user’s computer in the hh:mm:ss format
cpInfoCurrentYearyyyyCurrent year as set on the user’s computer

Quizzing variables:

Variable nameDefault valueDescription
cpQuizInfoAnswerChoice Chosen Answer
cpQuizInfoAttempts Number of times the quiz has been attempted
cpQuizInfoLastSlidePointScored Score for last quiz slide
CpQuizInfoMaxAttemptsOnCurrentQuestion Maximum attempts on the current question
cpQuizInfoNoQuestionsPerQuiz Number of questions in quiz
cpQuizInfoPointsPerQuestionSlide Points for the question slide
cpQuizInfoPointsscored Points scored in the project
cpQuizInfoQuestionSlideTiming Time limit in seconds for current question
cpQuizInfoQuestionSlideType Question slide type(Multiple-Choice/True-False/..etc)
cpQuizInfoQuizPassPercent Passing percentage for the quiz
cpQuizInfoQuizPassPoints Passing points for the quiz
cpQuizInfoTotalCorrectAnswers Number of correct answers
cpQuizInfoTotalProjectPoints Total project points
cpQuizInfoTotalQuestionsPerProject Number of questions per project
cpQuizInfoTotalQuizPoints Final quiz score
cpQuizInfoTotalUnansweredQuestions Total number of unanswered questions
cpInfoPercentage scoring in percentage
Share.

26 Comments

  1. This is great! I’ve been looking for an update to the rdcmnd controls from previous versions. The problem is, I’m not able to get these to work. I’m using a MovieClipLoader and a listener to wait for the movie to initialize, then I’m trying to jump to slide 2 (the third slide, counting slide 0. Any idea what I’m doing wrong?

    var oClipLoader:MovieClipLoader = new MovieClipLoader();
    oClipLoader.loadClip(oMovie, oContainer);
    var mcListener:Object = new Object();
    oClipLoader.addListener(mcListener);

    mcListener.onLoadInit = function(mc:MovieClip) {

    trace(mc);
    mc.cpCmndGotoSlide=2;
    };

  2. David Childers on

    Thank you for the useful information.

    Do you know of a way to find the variables that can be changed in the Captivate standard.htm file (e.g. “@MOVIETITLE”). Someone referred me to your info here, but these system variables don’t match the variables I see in the Captivate 3 or Captivate 4 standard.htm files.

    Thanks!

  3. Hi David,

    I’m pretty sure that the @MOVIETITLE variable is equal to the ‘cpInfoProjectName’ variable. At least it is the same information.

    There is some weird issue with that @MOVIETITLE variable though – if you make a project – save it – publish it – and then rename it that variable will always be the original name that you first saved it with. Not really sure why this is happening, but perhaps these special @ variables in the standard.htm file is something that is filled once the project is saved/published for the first time.

    /Michael

  4. David Childers on

    Thanks, Michael. I’ve heard about the issues with the @MOVIETITLE in Captivate 4 – I’ve not had problems with it in Captivate 3 (I think it is a new defect for 4).

    What I’m hoping to find somewhere is the complete list of “@variablename” options available for use in the standard.htm file – as you see, even if the info from @MOVIETITLE equals the information from cpInfoProjectName, you’d have to find out different names for the variables in the HTM file…

    Here are the variables I’ve seen (pulled from the standard.htm file from Captivate 3 and Captivate 4 – not all of which are backwards compatible):

    @FLASHPLAYER_CLASSID
    @FLASHPLAYER_CODEBASE
    @FlashPlayerVersion (which doesn’t work for Captivate 3)
    @MOVIETITLE
    @MOVIENAME
    @MOVIEWIDTH
    @MOVIEHEIGHT
    @MOVIELOOP
    @SKINCOLOR
    @WMODEVALUE

    I’ve had no luck finding these anywhere through manuals, online searches, forums, etc… At least you were kind enough to publish the system variables for others with a similar need.

    Thanks,

    David

  5. Pingback: pipwerks.com » Journal » Captivate 4 variables gone wild

    • Hi Kelly,

      As long as you link to this post as the source then you are free to do what you want with the information ;o)

      /Michael

  6. I am using the Table of Contents (TOC) to allow the user to navigate through the demo that I have written. To maximize on realestate I have for the slides in the demo I placed a transparent TOC over the slides. What I want to know is there a variable that can be set to hide the TOC. This would be great in that after the user jumps to a slide they want the TOC could be automatically be hidden.

  7. Hi,

    thanks for this useful info.

    I need to display “tomorrow’s date” in my project. For this, I have tried creating a user variable and calling it from within a standard TextBox, however I am not that experienced.

    The user variable is supposed to yield “current date + 1”. What is the right way to do this?

    Your help is much appreciated ^^

    – Eda

  8. Hi Eda,

    You can use the variable $$cpInfoCurrentDate$$ for that purpose.

    First you need to create a new user defined variable called constructedDate. This variable will hold the output once the date has been calculated.

    Now you create an advanced action and create the following statement:

    constructedDate = cpInfoCurrentDate + 1

    You then need to assign your advanced action to play somewhere in your project in order for that to populate the constructedDate variable. I put mine on the first slide and as “On Slide Enter” – Execute Advanced Action – Name of your action.

    After this you can get the value of your variable by using $$constructedDate$$ in a text box and this will give you the current day + 1.

    /Michael

  9. Hi Michael,

    wow, so fast!

    Thanks for the timely & precise reply. (honestly, I’ve struggled a little more myself today, and in the meantime kept coming here & checking =))

    This actually worked! Now I just have to copy the same TextBox to every place where the “wrong” date is shown.

    I knew it had stg to do with an action, though these “advanced actions” are tricky. Now with your “how to”, it’s easy for me =)

    Thank you so much!

    I’ll be back 😉

    Loves,
    Eda

  10. ps. incrementing the parameter “cpInfoCurrentDate” will not work, because this is returned as a string. What I did was, take day, month, and year seperately, increment the day, and combine all 3 together with “.” between.

    It looks like this in my TextBox:

    $$user_tomorrows_date$$.$$cpInfoCurrentMonth$$.$$cpInfoCurrentYear$$

    Just wanted to highlight, in case s.o else faces the same situation.

    Thanks again! =)

  11. Hi Eda,

    Exactly – I should have mentioned that as well but you figured it out ;o)

    I always put the date together like you mentioned because the date format in Europe is different from the one used in USA.

    /Michael

  12. I am creating a database tutorial in captivate 4 and have created separate interactive .swf files for each button located on the database interface. I have placed a transparent button over each database interface button and when the button is pushed, an interactive .swf animation plays that the learner uses to complete the form or report. My problem is, when I insert the .swf animation and it is say 1 minute and 6 seconds long, the file stops playing at 1 minute and 6 seconds regardless of whether the user has completed the interactive animation and returns to the database interface slide. Since the .swf file is designed to be self paced, the user may not have completed the interactive .swf animation. What can I do to allow the user to complete the .swf animation without the .swf animation completing at 1 minute and 6 seconds and returning to the database interface slide? I have flash CS4, as well.

    I’m not certain this makes sense, but any ideas would be greatly appreciated.
    Thank you.

  13. Eda Coskuner on

    Hi Michael,

    it’s Eda again. I had asked about displaying “Tomorrow’s Date” before, remember?

    I’ve noticed the approach we discussed above has a flaw:
    (day + 1) yields invalid results when today is the last day of the month (like what if today is 31st of March, for ex? day+1 = 32. Or what if it’s February 27th?).

    So we need another solution here.
    Suggestions?

    Thanks for your guidance,
    Eda

  14. Hi Eda,

    Good point ;o) Didn’t actually think of that at all.
    I don’t think that you will be able to solve that in Captivate since you would actually need to know the number of days in each month and probably also take the leap year into account.

    The only way I think you can solve it is to have a widget/component developed in Flash that will do these calculations for you and then pass the value to a user defined variable in your Captivate project.

    /Michael

  15. Eda Coskuner on

    Hi Michael,

    thank you for the timely reply.

    Yes I was (almost) using the same method somewhere else when it occurred to me – luckily! *whew*

    Oh my. So there’s no way out..I’m sure our team will not / can not go that far (develop stg in Flash) for this – we are going to have to leave it out.

    Thanks anyway and good luck Captivate-ing! Keep up the good work – I’ll be visiting you often 😉
    Eda

  16. HELP!!!!!

    Is there any way(var) that tracks the number of missed clicks thruout the project? Im building a lockStep type procedure tutorial… cant seem find a way to force a restart after 3 missed clicks. Anyone?

  17. @Usafegressdude – no way to track that as far as I know. There is no system vars that tracks missed clicks throughout a project unfortunately. Seems like this type of interaction can only be buildt in Flash.

    /Michael

  18. Michael- Thanks for your reply. Im thinking of using 2 buttons, a right button and a large wrong button underneath. Now if I can figure out how to “code” the wrong button to count missed clicks, or increment a var… somthing like

    ++errorCount
    if (errorCount >=2)
    {
    gotBackToBeggining()
    }
    …or somthing =P

  19. I am attempting to access user-defined variables within Flash that were set and defined within Captivate and am having issues. I have a variable called “goal1” that is set with a text entry box on a previous slide (I have confirmed the variable is stored using a caption with $$goal1$$). However, when I attempt to access it through Flash (an object I place in the Captivate module), I am using txtOuput.text = _root.goal1;. Is there something else I should be calling in Flash to have access to the variable?

  20. I created a software simulation (training)
    On the third attempt, the learner gets the error message, but I would like them to be able to be told what to do (ie where to click) and then have the opportunity to follow through on the action. So, its almost as if, there should be four attempsts, but on the third one they should get the information on where to click. Then they follow though. Any ideas on how to deal with this one?

    Barb

  21. Barb, You could set up a variable and action that shows the objectafter 3 tries, if you are incrementing. Also, be sure to reset your variable to 0 when leaving the slide, so on return it reacts the same way.

    Michael – second day with captivate, trying to gain control over some slides with flash, what is the path to get to the Captivate variable? I am trying,

    enter_btn.onPress = function() {
    //try to access the captivate file
    _root.cpCmndShowPlaybar = 1;
    }
    So far..Thanks in advance

  22. Hi Zach,

    Looks okay to me how you are doing it. Try and access another variable and see if that works out. If not try and exchange the _root with _parent._parent._parent._parent and see if you get lucky. I always test with the goto next slide variable since that is easy to see if it works ;o)

    /Michael