Skip to main content
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

If you are not sure, try 2004 first. An LMS that cannot handle it usually says so plainly at import.

Exporting

1

Set the format

Course ▸ Export format, or pick it in the export dialog. The current format is shown in the status strip.
2

Export

Course ▸ Export… (Ctrl E), choose SCORM 2004 or SCORM 1.2, and pick where to save.
3

Check the warnings

Compose reports any media it could not find. Those files are missing from the package.
4

Upload 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.
The ADL XSD control files are deliberately not included. SCORM Cloud, Moodle and Blackboard all accept manifests without them. If a stricter LMS ever complains, the fix is to add those files beside index.html.

What gets reported to your LMS

Completion

The course reports itself complete when both are true:
  1. The learner has visited every lesson, and
  2. 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.
A course with no required blocks completes as soon as the learner has visited every lesson. If your LMS needs to see genuine engagement, mark at least one activity per lesson as required.

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.
SCORM 1.2 limits suspend data to 4096 characters. A very large course can exceed that. Rather than corrupting the saved state, Compose progressively drops the least important part — first the first-try record used for scoring, then the completion list — so resume keeps working. SCORM 2004 has a much larger limit and does not hit this.

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

Almost always one of:
  • The zip was unzipped and re-zipped, putting imsmanifest.xml one 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 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.
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.
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.
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.