Activities: xAPI Launch Link

Maintained by Picture of Andrew Downes Andrew Downes
Launch externally xAPI (Tin Can) activities from Moodle and track on any LRS. Compatible with Storyline, Captivate and others!

xAPI Launch Link 1.1 (Build: 2015033100)

Release notes

PLEASE NOTE: I recommend using the latest version of this module with Moodle 3.x. Even if you are using an earlier version of Moodle, it may be preferable to use the latest version and fix any compatibility issues yourself.


A plug in for Moodle that allows the launch of Tin Can content which is then tracked to a separate LRS.

Please see the video here for a demo and overview of the settings:

Reporting issues

Please report any issues with this plugin here: Please provide screenshots of your settings (both at plugin and instance level) and a link to your content.

The majority of issues are caused by incorrect settings. You can see previous closed issues here:

If you're using Storyline please check you've published it for Tin Can tracking, you're using Storyline 2 (not 1).


The Tin Can API specification was released in April 2013 as a replacement for SCORM. Tin Can allows for tracking of any learning experience. Tin Can was designed on the premise of a distributed system communicating via API calls over the internet. This means that whislt it is possible to include a Learner Record Store (LRS) and reporting tools inside an LMS like Moodle, it is equally possible for the LRS and reporting tools to exist as seprate entities outside of the LMS.

This is the first of a series of small bite-sized projects to add Tin Can capability to Moodle. These projects will assume that a seprate LRS and reporting tools will be used. This will allow us to take advantage of open source Tin Can LRS and reporting tool projects outside of the Moodle community. This first project will deal with launching Tin Can e-learning from Moodle.

One of the key issues in Tin Can is launching e-learning activities in such a way that the activity provider knows: * the LRS endpoint * authorisation credentials * user information.

Currently, the main launch method in use is the Rustici Software method. Another method which is likely to gain adopting is the CMI5 method, however this has not yet been finalised. This plugin uses the Rustici method.

What you will need

To use this plugin you will need the following:

  • Moodle 2.5 fully set up and running on a server that you have ftp access to
  • Login details for the admin account
  • A Moodle course setup where you would like to add the activity
  • A piece of Tin Can compliant e-learning that also implements the launch mechanism outlined HERE, for example e-learning produced using Articulate Storyline or Adobe Captivate. This should be put on the internet somewhere, perhaps on your Moodle server.
  • A Tin Can compliant LRS (this plugin has been tested with Wax and SCORM Cloud)
  • A Tin Can compliant reporting tool
  • A copy of this plugin.


This plugin is installed in the same way as any activity plugin. Simply drop the tincanlaunch folder into your mod folder on your Moodle and then install via system administration as normal.

WARNING: Some users have experienced issues with installing my plugins by using Moodle's addon installer in the admin interface. This method of installation is not currently supported.

Course set up

This plugin can be added to a course like any other course activity. Simply add an activity and select Tin Can Launch from the list.

The settings for this module all have help text which can be accessed by clicking the ? icon next to that setting. I don't intend to repeat that information here. If any of the help text is unclear, then please raise an issue here and suggest an improvement.

Using the plugin

When the learner clicks the launch link, they are taken to a page listing all of their saved attempts for the activity with the most recent attempt at the top and a new attempt button above that. Learners can choose to launch a new attempt, or return to a previously saved attempt.

Moodle will pass the e-learning a registration id in the form of a universal unique id representing the previous attempt or a newly generated one for a new attempt. It's up to the e-learning what it does with that data, but hopefully it will store its bookmarking state on a per registration basis.

Note that the list of attempts is stored in the LRS, rather than Moodle and can therefore be read and modified by another LMS or by the learning activity itself. Additionally, if another copy of the launch link is installed elsewhere on the Moodle or even on another Moodle, the data will be shared so long as the user email and activity id are the same.


So far nobody has asked any questions, but here's some I imagine people might ask:

Where does the tracking data go?

Tracking data from the learning activity is stored in your LRS and can be retrieved and viewed using any Tin Can compliant reporting tool.

It may be that a reporting tool plugin for Moodle is developed in future, or you could write your own.

On my Moodle, all/some of my users have the same dummy email address. The plugin is behaving oddly.

The plugin tells the e-learning to store data based on the learner's email address as stored in moodle. It's therefore important that the Moodle email address is unique for each user, not just within the scope of the Moodle, but within the scope of any system where the tracking data is used or will be used in the future. The safest best is to ensure it's universally unique.

With a little work, the plugin can be modified to use the Moodle account id instead.

Why doesn't the plugin do x y and z?

If you'd like the plugin to do something, please raise an issue and perhaps somebody will do it for you for free. If you want to make sure it happens, or get it done quickly, I recommended you hire a developer or add the feature yourself. Email if you'd like to hire me.

I'm developing a piece of e-learning or authoring tool and want to make sure it will work with Moodle

Great! Please get in touch if you have any questions or want to hire a Tin Can expert.

Other projects for reference

Tin Launcher

Tin Launcher is an open source JavaScript tool for launching Tin Can activities using the Rustici launch method. We can use this as a reference when building the launch URL. This was written by me and we can re-use the code for this project if any of it fits.

Demo Github

SCORM Cloud Moodle Module

The SCORM Cloud Moodle module is designed to integrate SCORM Cloud into Moodle so that SCORM Cloud is used in place of Moodle's SCORM player. This also allows the upload of Tin Can packages. In it's current form this module only works with SCORM Cloud LRS.

This module is licensed under a GNU 3 license so in theory we could take and re-purpose it to talk to any LRS. There's a lot of SCORM related code that we don't need though and it deals with content uploaded to Moodle rather than externally hosted content, so I think it makes more sense to start afresh and use this as a reference.


Jamie Smith's work

Jamie Smith has created a couple of Github projects that work together to allow for Tin Can packages to be tracked in Moodle as though they are SCORM packages. The aims of his work are different to this project (he's dealing with content uploaded to Moodle), but we'll need to consider if and how we build on or integrate with his work. Perhaps, for example, this project could be used in conjunction with Jamie's work to allow externally hosted Tin Can activities to be tracked back inside Moodle instead of an external LRS.


Useful Links

The Moodle tracker item relating to Tin Can


2015030200 - Added support for Event logging (Requires Moodle 2.7+)

Moodle 2.7, 2.8, 2.9

Version information

Version build number
Version release name
1.1 (Build: 2015033100)
MD5 Sum
Supported software
Moodle 2.7, Moodle 2.8, Moodle 2.9
  • This is the latest release for Moodle 2.7
  • This is the latest release for Moodle 2.8
  • This is the latest release for Moodle 2.9

Version control information

Version control system (VCS)
VCS repository URL

Default installation instructions for plugins of the type Activities

  1. Make sure you have all the required versions.
  2. Download and unpack the module.
  3. Place the folder (eg "assignment") in the "mod" subdirectory.
  4. Visit to finish the installation