SCORM Engine Launch Parameters
When launching the SCORM Engine, there a several parameters that can be passed to it via the querystring. These parameters tell the SCORM Engine which course to load, how to track the learner's progress and how the course should behave.
Parameter Name | Possible Values (should be URL encoded) |
"configuration" | A serialized external configuration object |
"registration" | A serialized external registration id |
"package" | A serialized external package id |
"manifestDirPath" | A valid file path or HTTP path |
"webPath" | A value HTTP path to a directory |
"tracking" | "true" or "false" |
"forceReview" | "true" or "false" |
"regForCredit" | "true" or "false" |
"cc" | CultureCode to choose a delivery language. (e.g., 'en', 'fr'. Note, this functionality is not turned on by default.) |
"startSco" | An Item Identifier that identifies a SCO in the manifest. |
Configuration
The "configuration" parameter contains a serialized version of the specific integration's external configuration object. This parameter is always required to be present, but usually does not have to contain a value. The external configuration object is used to vary the behavior of the SCORM Engine in the integration layer. Passing in a string representation of this object at launch, will cause an instance of the specific integration's external configuration object to be instantiated and passed into the integration layer whenever an integration function is called.
Registration
The "registration" parameter contains a identifier that should be associated with the SCORM tracking information for this course launch. This is the "external registration id". The format of the registration parameter should be a serialized version of the specific integration's external registration id object. If the external registration id specified in this parameter does not already exist in the SCORM Engine, then by default a new registration will be created (although this behavior can vary based on the integration layer and the "CreateRegistrationIfNeeded" SCORM Engine setting). If the specified external registration id does exist, then that registration will be resumed and the tracking data from any previous attempts will be restored.
Package
The "package" parameter contains an external package id identifying a package that has already been imported into the SCORM Engine. If no "registration" parameter is passed in, then the package identified in this parameter will be launched in a preview mode with no tracking. If a "registration" parameter is passed in and a new registration needs to be created because the external registration id does not exist, then the package identified by this parameter will be associated with the newly created registration. If the "registration" parameter is passed in and there is an existing registration, then the "package" parameter is ignored.
Registration Parameter | Package Parameter | Action |
Not Included | Included | Package is launched in preview mode |
Included, no matching registration exists | Included | New registration is created with specified package |
Included, matching registration does exist | Included | Existing registation is launched, package parameter is ignored. If the registration id does exist, the package parameter is not required. |
ManifestDirPath and WebPath
The "manifestDirpath" and "webPath" parameters are used in conjunction with one another. They enable the SCORM Engine to launch a course that has not yet been imported. The course's manifest is parsed on the fly and the course is launched in a preview mode with no tracking. The "manifestDirPath" parameter should contain either a file path (accessible to the server on which SCORM Engine is deployed) or an HTTP location of the course's descriptor file (usually the imsmanifest.xml file). When launching a course that has not yet been imported, you also need to pass in the "webPath" parameter to tell the SCORM Engine where the course resides. The "webPath" parameter is an HTTP path to the root of the course (usually the directory where the manifest resides).
Tracking
The "tracking" parameter provides a way to launch a registration without saving any of the tracking data associated with the course. When the "tracking" parameter is provided set to "false", the SCORM Engine will still accept all of the SCORM data sent to it by the content, but it will only persist it for the duration of the session. When the learner exits the course, all of the new data is discarded and the original state is preserved. This mode is useful for allowing learner's to review content that has already been completed to ensure that the record of their completion is not overwritten. If not included, the default value for this paramter is "true".
ForceReview
When set to "true", the "forceReview" parameter ensures that the data model element for mode ("cmi.mode" or "cmi.core.lesson_mode") is always set to "review". This setting is often used in conjunction with the "tracking" setting to provide learners an opportunity to review a course after it has been completed. If not included, the default value for this paramter is "false".
RegForCredit
The "regForCredit" parameter is used when the SCORM Engine creates a new registration upon launch. If the "regForCredit" parameter is passed in and set to "false", the SCORM Engine will create a new regisration with the data model element for credit ("cmi.credit" or "cmi.core.credit") set to "no credit". This setting is useful for lanching courses that should be tracked but that don't "count" for anything. If not included, the default value for this paramter is "true".
CC
The "cc" parameter can be used by a client integration to force the delivery language to a particular culture code, e.g., 'en', 'fr', via the launch string. The following table lists the languages we support.
Language | ISO 639-1 Code |
Arabic | ar |
Chinese (simplified) | zh-cn |
Chinese (traditional) | zh-tw |
Danish | da |
Dutch | nl |
English | en |
Finnish | fi |
French | fr |
German | de |
Hungarian | hu |
Italian | it |
Japanese | ja |
Norwegian | no |
Portuguese | pt |
Russian | ru |
Spanish | es |
Swedish | sv |
StartSCO
If provided, this parameter identifies a SCO that the SCORM Engine should launch first. If not provided, the SCORM Engine will either launch the first SCO (for new registrations) or the SCO from which the learner suspended a previous attempt (for previously attempted registrations). Note that these default SCOs can be altered by SCORM 2004 sequencing rules in the content. The format of this parameter is a string representing the Item identifier associated with the SCO to be launched in the manifest. Note that if the manifest contains SCORM 2004 sequencing rules, it might not always be possible to launch the specified SCO (if for instance it's prerequisites are not met). In this case, the learner will be prompted with a message to make another selection.
Serializing and Encoding
All values must be properly escaped (or "URL Encoded") when they are included in the query string. It is important not to double encode the values. All common programming languages include a library function for properly escaping values to be placed in a querystring. For static values that do not change, it can be helpful to use a tool to perform the one time encoding.
When passing an external package id, external registration id or external configuration id to the SCORM Engine these objects must be represented in their serialized state. The number, type and name of the properties contained in each of these of these objects in unique to each integration. Often, there is just one property, in which case the serialized version of the object is just the value for that property. However, in cases where there is more than one property, the serialized form of the object is a series of name value pairs separated by delimiters. By default, the delimiter that is between the name and value is a pipe character ("|") and the delimiter between a set of names and values is an exclamation mark character ("!"). Note that these defaults will vary based on the version of the SCORM Engine and can be different for each integration.
For example, if an external registration id is composed of two fields, userName and courseId, then a serialized external registration id might look like this:
userName|joeuser!courseId|42That value indicates an external registration id with a value for userName of "joeuser" and a vale for courseId of "42". When passing the serialized value into the SCORM Engine, the entire serialized value needs to be URL Encoded. Note that "!" does not need to be escaped and that the escaped represenation of "|" is "%7c". Once escaped, the above example would look like:
userName%7cjoeuser!courseId%7c42Engine's console can simplify the process of creating serialized and escaped object values. When creating new registrations, Engine's console will display the proper launch URL. Since Engine is configured to use your specific integration, it is easy to simply copy and paste values into your code.
Common Configurations
Launch a registration "normally"
Parameter Name | Value to pass in |
"configuration" | A serialized external configuration object if used by your integration. |
"registration" | A serialized external registration id |
"package" | A serialized external package id |
"manifestDirPath" | Not included |
"webPath" | Not included |
"tracking" | Not included |
"forceReview" | Not included |
"regForCredit" | Not included |
Launch a completed registration in review mode with no changes to the tracking data
Parameter Name | Value to pass in |
"configuration" | A serialized external configuration object if used by your integration. |
"registration" | A serialized external registration id |
"package" | Not included |
"manifestDirPath" | Not included |
"webPath" | Not included |
"tracking" | "false" |
"forceReview" | "true" |
"regForCredit" | Not included |
Launch an imported course in preview mode with no tracking
Parameter Name | Value to pass in |
"configuration" | A serialized external configuration object if used by your integration. |
"registration" | Not included |
"package" | A serialized external package id |
"manifestDirPath" | Not included |
"webPath" | Not included |
"tracking" | Not included (only relevant if a registration is passed in) |
"forceReview" | Not included |
"regForCredit" | Not included |
Launch a course that does not "count" for credit, but should still be tracked
Parameter Name | Value to pass in |
"configuration" | A serialized external configuration object if used by your integration. |
"registration" | A serialized external registration id |
"package" | A serialized external package id |
"manifestDirPath" | Not included |
"webPath" | Not included |
"tracking" | Not included |
"forceReview" | Not included |
"regForCredit" | "false" |
Launch a course directly from a manifest that has not yet been imported
Parameter Name | Value to pass in |
"configuration" | A serialized external configuration object if used by your integration. |
"registration" | Not included |
"package" | Not included |
"manifestDirPath" | File path to manifest |
"webPath" | Web path to course directory |
"tracking" | Not included |
"forceReview" | Not included |
"regForCredit" | Not included |
Mode and Credit
The SCORM runtime data model contains two elements that indicate the context in which a course was launched. This context is affected by the parameters that are passed into the SCORM Engine on launch. The "mode" data model element indicates that the course was launched either in a "normal", "review" or "browse" mode. The "credit" data model element indicates whether or not the course is being taken for credit.
Mode:
By default, when a course is launched with a registration id, the "mode" will be "normal".
By default, when a course is launched without a registration id, the "mode" will be "browse"
If the "forceReview" parameter is included with a value of "true", then the "mode" will always be "review".
Note: per the SCORM specification, "mode" can also change to "review" after a SCO is completed
Credit:
By default, when a course is launched with a registration id, the "credit" value will be set to "credit".
When a course is launched with a registration id and the "regForCredit" parameter is passed with a value of "false", the "credit" value will be set to "no credit".
When a course is launched without a registration id, the "credit" value will always be set to "no credit".