Custom Course Timer in SL 360

Dec 21, 2017

Though the latest release of Articulate Storyline 360 or 3 came with a bunch of new features, there are still a few that are not available natively. One of them is a Course timer, which allows learners to view the time they have spent in a particular course. This feature can still be achieved using some smart work-around.

Thought this would be cool to share, so that other with similar requirement can be benefited  as well.

Here's a quick video on how to create a Custom Course timer:

If you need to take a deeper look on how it's done. 

Feel free to check out my blog from the below link where you can also download the sample source that I have created.

How to add a Course Timer in Articulate Storyline 3 or 360

26 Replies
Sajna Thomas

Hello Godwin,

Thank you for the custom timer video. I tried it and it worked fine but I noticed in the slides that have layers, the timer stops in the layers but continues in the slides again. Similarly, in the feedback layers of the quiz, it stops. Would be great if you could help me out.



Adam Gavarkovs

Hi Godwin,

Great tip, thanks for sharing. I've added the functionality to pause the timer if the learner remains on any given slide for longer than x minutes (depends on the nature of the course)...if time data is being used for analytics then it is important it is an accurate representation of how long learners are actually engaged. If a learner gets up to make a cup of coffee then their data (and aggregated data) will be skewed unless it is paused after an extended period of inactivity.

Here are the steps I took in case anyone else wants to implement this solution:

1. On the Slide Master, create two new slide layers, one called 'Timeout' and another called 'Timeout Notification'. The 'Timeout' layer should be blank (same as the 'Timer' layer) and the 'Timeout Notification' layer should have some text letting the learner know the timer has been paused (e.g., "You've been inactive for X minutes, please click the button to continue").

2. Create a trigger on the base layer that shows 'Timeout' when the timeline starts. To make sure that more than one layer can be active at once, all three slide layers ('Timer', 'Timeout', and 'Timeout Notification') must be set to not hide other slide layers.

3. Set the timeline length of 'Timeout' as the desired time before the timer is paused. 

4. Create a trigger on 'Timeout' that pauses the timeline on 'Timer' when the timeline completes.

5. Create a trigger on 'Timeout' that shows the layer 'Timeout Notification' when the timeline completes.

6. Add a button on 'Timeout Notification' that allows the learner to acknowledge that they are engaged in the course (e.g., ...please click the button to continue).

7. Create a trigger on 'Timeout Notification' that resumes the timeline on 'Timer' when the learner clicks the button.

8. Create a trigger on 'Timeout Notification' that hides layer 'Timeout' when the learner clicks the button.

9. Create a trigger on 'Timeout Notification' that hides layer 'Timeout Notification' when the learner clicks the button.

Sabrina M

Hi everyone,

First of all, thanks to everybody who shared experience on this topic, it really helped me!

I've created my story file with this custom timer but  now, I've got this problem: when the learner leaves the course tab on browser, the timer stop counting.

Is there any way to keep counting the time, even if the learner leaves the tab, switches it or open a new window?

Creating new triggers, editing the scormdrive file or executing JavaScript?

David Foster

I found a workaround by using a simple javascript timer that starts on a button click and ends at another trigger several slides later.  Since it's javascript, it runs in the background and doesn't seem to be affected by layers.  There are a few browsers that may not report it correctly and it's not 100% accurate, but it's better than the complete lack of built in support for this.  My original thread is here and there's a link to where I got my info in that thread as well.