Timer widget... to stress your learners


Perhaps a coincidence, but I answered this week twice a question about having a timer for a learner while taking a Quiz. It is possible to have a time limit and appropriate action set up in a LMS, but with the Timer widget that you get out of the box you can also provide this (stressful) information. Once I wrote about using the system variable cpInfoElapsedTimeMS (Quiz showing elapsed time) to display info about time spent on a slide. In this post I will try to explain the possible uses of the Timer widget. It is a small but useful widget that is associated with a user variable which allows to create advanced actions.

Use cases for Timer widget 

As is the case for most of the widgets coming with Captivate, the Timer is a static widget. As I explained in the post about the Button widget (Using the button widget) this is great news, because you can use the widget on master slides and on question slides. In the example movie you will that I used the widget twice:

  1. In its digital appearance (left at the bottom) it is counting down from the maximum allowed time for the total time on the question slides
  2. In its analog appearance (right at the bottom) it is counting up to the maximum time allowed per question slide
I will explain the workflow for both timers. Watch the movie first, I provided 10 sec for each question slide, but without any consequence if this limit is passed. For the total time the limit is 30sec and once you pass that limit you will not be able to continue with the next question but will be navigated immediately to the score slide. I re-used the questions described in the blog post (link).

Timer for total time - workflow

  • Create a user variable, I labeled it v_time;  it is not possible to create this from the dialog box with the widget properties.

  • Insert the widget on the first question slide and configure it as in the first picture of the Gallery: digital version, count down, with a message when count gets to zero and I formatted the characters;I labeled this widget 'TimerWidget'

  • Set the timing of this widget to diplay for the rest of the project (Properties panel, Timing accordion)

Because I do not want this Timer widget to stay visible on the last slide, the score slide, I created an advanced action EnterScore (screenshot in Gallery) that is executed on entering this slide with 3 statements.
Hide TimerWidget        (digital countdown timer for total Quiz time)
Hide TextTime             (text caption before the digital timer)
Assign v_time with 0    (to reset the variable and allow the user to review the quiz)
Limitation: it is impossible to restart the timer widget  Since I did hide this TimerWidget (total quiz time) the widget will be invisible during review.

Timer for individual Question time - workflow

Since  I did not want to have an action based on this second timer in this example, it is not necessary to create a user variable, nor to point to such a variable in the Properties dialog box.

  • Insert a second instance of the widget on the master slide that is used for the question slides
  • I configured this widget to be analog, to count up (to the maximum of 10sec) and changed the colors (see third screenshot)
I did not hide this timer during review. You cannot hide an object that is on the applied master slide. If you want to hide it, you will have to insert this widget on each question slide and use a condtional action to test and hide the widget on second visit. Remember: you can execute an advanced action on entering a default question slide, but not on exiting that slide. Moreover you cannot trigger advanced actions by the buttons on the default question slides. If you create custom question slides you do not have those limitations, but in this post I only want to demonstrate the use of the Timer widget.

Advanced action TimeCheck

Each advanced action has to be triggered by an event. Here I chose to have this action triggered on entering each question slide. This is not really necessary for the first question slide, because the timer sits on that slide and the user variable will always be set to 0 (False). This is a real simple conditional action: if the user variable contains the value 0, the user will be navigated immediately to the scored slide (see fourth screenshot in the gallery), if not (Else action - no screenshot) the statement Continue is executed.
This means that the learner gets a little bonus: his time is not exactly limited to 30secs, if he has entered a question slide before the counter got to 0, he will be able to answer that question, but the message will pop up. 
Mystery of the user variable: Want to warn you that the associated user variable doesn't store the time left, but only boolean values 0 or 1. And it took me a while to discover this. If you show the value of the user variable in a text caption (my way of debugging) it will show 'false' as long as the timer did not reach its limit and the value 'true' when time is up. So I tried out the condition 'If v_time is equal to true' but this did not work. You have to use the numerical values 1 (true) or 0 (false). This explains the decision:
if v_time is equal to 1

Captivate 6 users - warning

If you use the described work flow in version 6, there are possibly some problems:

  • when trying to associate a variable to the widget, not all characters will be accepted (like underscore) and some characters will be turned automatically into capitals; be sure to check that the defined variable has exactly the same name as the one you enter in the widget properties: Vtime will be accepted, but v_time not;
  • the values to check for the user variable Vtime are not 0 and 1 but true and false
  • having an action that on exceeding time will jump to another slide will not be functional if you use the new feature 'Submit all'

And for 6.1 users:  try using the new Countdown widget, it allows you to have an action immediately after the countdown reaches 0, contrary to the Timer widget that needs an extra event (like On Enter slide) to trigger an action. Will blog soon about the new widgets in 6.1.

More ideas?

Try this out with customized question slides, gives you a lot more control.
You can also create a more complex condition: if a user exceeds the time allowed for one question slide, jump immediately to the score slide or skip one or more question slides.


17 responses
Thanks a lot for this post ! I actually use the Timer Widget and I would like to display the Start Time when I replay the animation. Unfortunately, "Assign v_time with 0" doesn't display the Start Time. Is there another way to restart the timer when the project is replayed ?
Understand your question very well, and that is one of my wishes for future widgets: to be able to reset a widget, by changing the associated variable or in another way for widgets that do not have variables. For this reason, Jim Leichliter kindly extended some of them as I describe in later blog posts (checkboxes, radio buttons, TextArea). As for the Timer widget, if I find a workaround I'll be back and offer it, but out of the box it is not possible as you experienced.
Ok thank you very much ! I'll stop trying to do that :)
Hello, i'm very new to advanced actions and variables in captivate and I have tried to follow your instructions but just can't get the timer advanced action to work.

I basically want one timer clock set to 1 hour and when time elapses the message will pop up and the user will be diverted to the score slide after submitting the question they are on.

I've created the first v_time variable and inserted the timer on the first question slide and applied it to the whole project and hid the timer on the score slide.

Please can you advise me on the next steps to create the trigger actions required bearing in mind my basic variables and advanced actions knowledge.

Many Thanks


Hi !
I would like to use the timer to calculate how long the student takes to do the quiz and give his time. In the result page, the student should see something like
good answers: 4
out of: 10 questions
in: 17 seconds

Is it something possible with the widget?

Think in that case it would be better to use the system variable cpInfoElapsedTimeMS and an advanced action. I blogged about the way to use that variable as well in http://lilybiri.posterous.com/display-time-information You'll have to store perhaps the starting time in a user variable (on entering the first question slide) and the end time in another user variable triggered by the Success/Failure actions of the last question slide. On entering the score slide you can trigger another action that calculates the total time spent and translates it in a 'readable' format with minutes, seconds.
I have seen your post "display time information", but, the timer doesn't show the time in real time like the widget timer ... Is it possible to do so?
thanks :)
I have seen your "Display Time information" post. The problem is that we don't see the second passing in real time. Is it possible to do so? And is it possible to see the hundredths of seconds?
Timer widget shows the time really, but to store a value at a certain time, in this case when the user submits the last question, you need a variable in which you put the value at that moment of the system variable cpInfoElapsedTimeMS. I believe you should combine both methods: to show time use the timer widget, to store the time to be shown on the score slide, use the system variable and the advanced action I described in the other blog post
humm I'm not really happy with the result (widget shows 00:00:00 and the advanced action 0,0000). I think I will try to find an other way to stress the students ;)
Did you configure the widget correctly so that it counts up and not down from the limit? And you have to store the values of the system variable in a user variable at the wanted moment because it continues to run indefinitely.
Yes, everything works properly, but that's not really what I want. The widget show hh:mm:ss and the advanced action shows ss.ccccc. I would like to have the same visual all the way. And I would like to show decimals. But, that's okay, I'll try something else. :)
You'll have to do some maths, as I tried to explain in the post about showing Time, but it is possible to show in another format than milliseconds. Of course if you do not love maths :-)
What did you attach the "checkTime" action to?
hehehe, love the article title. :-P
Since you can only use the countdown timer widget one time in your project (if you have selected Display -- Rest of Project) can you reset it later on in the project? It appears no.
1 visitor upvoted this post.