SCORM export
What Compose puts in a SCORM package, what it reports to your LMS, how completion and score are calculated, and how to troubleshoot an import.
SCORM is the packaging and tracking standard most Learning Management Systems accept. Compose
exports SCORM 2004 (3rd Edition) and SCORM 1.2, both as a single .zip.
Which version to choose
| Choose | When |
|---|---|
| SCORM 2004 | Your LMS supports it. Roomier progress storage, and the default. |
| SCORM 1.2 | Your LMS is older, or rejects a 2004 package on import. |
If you are not sure, try 2004 first. An LMS that cannot handle it usually says so plainly at import.
Exporting
- 1Set the format
Course ▸ Export format, or pick it in the export dialog. The current format is shown in the status strip.
- 2Export
Course ▸ Export… (
CtrlE), choose SCORM 2004 or SCORM 1.2, and pick where to save. - 3Check the warnings
Compose reports any media it could not find. Those files are missing from the package.
- 4Upload the .zip to your LMS
Upload the zip itself — do not unzip it first, and do not re-zip its contents from one level up. The manifest must sit at the root of the archive.
What is in the package
One single-SCO package: one organisation, one item, one resource. Every course, however many lessons it has, is one trackable unit as far as the LMS is concerned — lesson navigation happens inside the course rather than through the LMS’s menu.
imsmanifest.xml the manifest
index.html the course
style.css
app.js the course runtime
scorm.js the LMS communication layer
assets/ images, video, audio, models, fonts, resources
What gets reported to your LMS
Completion
The course reports itself complete when both are true:
- The learner has visited every lesson, and
- Every block marked Required has been completed.
Only six block types can be required in a way that counts: Multiple choice, Fill in the blank, Drag & drop, Matching, Hotspots and Branching. Marking anything else as required has no effect.
Score
If the course contains any Multiple choice, Fill in the blank, Drag & drop or Matching blocks, a score is reported as a percentage: the proportion of them the learner got right on their first attempt.
This is worth being explicit with learners about. All four block types let you retry until you are right — retrying completes the block, but does not recover the mark. A course with no scoreable blocks reports no score at all.
Progress and resume
Progress is stored in the LMS’s suspend data: which lesson the learner is on, which lessons they have visited, which activities they have completed, and which were right first time. Closing the course and reopening it later resumes where they left off.
Outside an LMS
The same course opened without an LMS — from an HTML5 export, from disk, or from a web server — falls back to the browser’s local storage. Progress still persists across reloads for that browser, but nothing is reported anywhere.
This is also what makes an HTML5 export a genuinely usable deliverable rather than a preview.
Troubleshooting
The LMS rejects the package on import
Almost always one of:
- The zip was unzipped and re-zipped, putting
imsmanifest.xmlone folder deep instead of at the root. - The LMS does not accept SCORM 2004 — export SCORM 1.2 instead.
- The package exceeds the LMS’s upload size limit. Compose embeds all media, so a video-heavy course produces a big file; host long video externally and link to it.
The course loads but nothing is tracked
The course could not find the LMS’s API. This usually means the course is being served in a way that breaks the frame relationship the standard relies on — opened in a new tab detached from the player, for example. Launch it the way the LMS intends.
Add ?debug=1 to the course URL to log every call the course makes to the LMS in the browser
console.
Completion never fires
The learner has not visited every lesson, or a required activity is unfinished. Note that visiting a lesson means arriving on it — required activities are the only thing that gates the Next button.
The score is lower than the learner expects
Score is first-attempt only. A learner who worked through every question by retrying will show a low score and full completion. That is intended, but tell them beforehand.
Images or video are missing in the LMS but fine in the editor
Check the warnings shown at the end of the export. A file that had moved on disk since you added it is dropped from the package and reported there.