SCORM 2004 — editions, sequencing, and the tools that support it
The second generation of SCORM: a larger data model, and sequencing rules the LMS is required to enforce.
Written and maintained by the scorm-tools.com editor. 56 listed tools state support.
What SCORM 2004 is
SCORM 2004 keeps the packaging idea of SCORM 1.2 — a ZIP with an imsmanifest.xml — and replaces nearly everything else. The runtime object is named API_1484_11 and its methods follow the IEEE 1484.11.2 binding: Initialize, GetValue, SetValue, Commit, Terminate.
Two changes matter in practice. The data model separates completion from success, so a learner can finish an activity and still fail it, and it adds a scaled score, objectives, and a suspend area of up to 64,000 characters. And the manifest can carry Sequencing and Navigation rules, built on IMS Simple Sequencing: an activity tree with rollup, prerequisites, attempt limits and rules that decide what the learner may do next — enforced by the LMS rather than by code inside the course.
Sequencing is also why support varies so much. The 2nd, 3rd and 4th Editions each corrected and tightened it, and an LMS can implement one edition faithfully and behave differently on another. A listing that says "SCORM 2004" without naming an edition is telling you less than it appears to, which is why the editions are recorded separately here.
Versions and what changed
| Version | Released | What changed |
|---|---|---|
| 1st Edition | January 2004 | Withdrawn soon after publication; not a target anyone should support. |
| 2nd Edition | July 2004 | The first usable release: new data model, Simple Sequencing, the API_1484_11 object. |
| 3rd Edition | October 2006 | Substantial sequencing corrections and clarified rollup behaviour; the edition many older LMSs implement. |
| 4th Edition | March 2009 | Current edition. Further sequencing fixes, shared data between SCOs, and clarified conformance requirements. Errata issued since. |
Who says so
We link to the specification and to other people's registries. We do not run a conformance programme and we do not issue badges of our own: a claim here is registry-verified only when an official registry says so, and otherwise it is marked as the vendor's statement or as our own check on a date.
Specification
Registry
- No active registry
ADL retired the SCORM certification programme and the certified-product list with it, and adlnet.gov has been unreachable since around May 2026. The 4th Edition test suite survives on GitHub, so a vendor can run it and show you the output, but no registry independently confirms the result.
Tools that support SCORM 2004
Grouped by what the tool does, and within each group ordered by how well the claim is evidenced: registry entries first, then facts we checked ourselves, then the vendor's own statement.
Authoring tools & course frameworks
| Tool | Evidence | Licence | Pricing |
|---|---|---|---|
| Adapt Authoring ToolSelf-hosted web UI for the Adapt framework, publishing responsive HTML5 coursesEditions 4th | editor-checked— source, opens in a new tab Checked | GPL-3.0 | Open source |
| Adapt FrameworkResponsive HTML5 course framework whose SCORM output is a bundled pluginEditions 4th | editor-checked— source, opens in a new tab Checked | GPL-3.0 | Open source |
| CourseCodeCode-first course framework and CLI that packages to SCORM, cmi5 and LTI 1.3Editions 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| eXeLearningFree authoring tool from the Spanish education ministry, exporting SCORM, IMS CP and EPUBEditions 4th | editor-checked— source, opens in a new tab Checked | AGPL-3.0 | Open source |
| LessonKitAuthor courses as React components, then export SCORM, xAPI or cmi5 from the same codebase | editor-checked— source, opens in a new tab Checked | Apache-2.0 | Open source |
| LiaScript ExporterTurns a Markdown course into a SCORM 1.2, SCORM 2004, IMS or xAPI package from the command lineEditions 4th | editor-checked— source, opens in a new tab Checked | BSD-3-Clause | Open source |
| NumbasBrowser-based maths e-assessment system that compiles exams to SCORM 2004Editions 3rd | editor-checked— source, opens in a new tab Checked | Apache-2.0 | Open source |
| Xerte Online ToolkitsServer-hosted, template-driven authoring for institutions, with SCORM and xAPI exportEditions 3rd | editor-checked— source, opens in a new tab Checked | Apache-2.0 | Open source |
Converters & migration
| Tool | Evidence | Licence | Pricing |
|---|---|---|---|
| Learning Records ConverterPython API that maps SCORM 2004, IMS Caliper and Matomo traces into xAPI | editor-checked— source, opens in a new tab Checked | GPL-3.0 | Open source |
| SCORM-to-xAPI WrapperADL's drop-in APIWrapper.js that re-emits SCORM calls as xAPI statements | editor-checked— source, opens in a new tab Checked | none | Open source |
| scormConverterPython script that relabels SCORM 2004 3rd Edition packages as 4th EditionEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| ppt-to-scorm.comPowerPoint decks turned into packages that actually record completionEditions 2nd, 3rd, 4th | vendor-stated— source, opens in a new tab | proprietary | Freemium |
Players, runtimes & debuggers
| Tool | Evidence | Licence | Pricing |
|---|---|---|---|
| lms-lrsA NestJS and Vue reference build of an LMS with a SCORM runtime and an xAPI store | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| Moodle SCORM activity (mod_scorm)The SCORM player inside Moodle — the most exercised open-source runtime there isEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | GPL-3.0-or-later | Open source |
| SCORM LabDrop a package in the browser and watch every API call it makesEditions 2nd, 3rd, 4th | vendor-stated— source, opens in a new tab | proprietary | Free |
| SCORM-LearningManagementSystemA small .NET SCORM LMS and player you can read end to end | vendor-stated— source, opens in a new tab Checked | MIT | Open source |
Testing, validation & conformance
| Tool | Evidence | Licence | Pricing |
|---|---|---|---|
| ADL SCORM 2004 4th Edition Test SuiteThe official conformance suite for SCORM 2004 4th Edition, frozen in 2015 and built for IE8Editions 4th | editor-checked— source, opens in a new tab Checked | Apache-2.0 | Open source |
| PrismUnzips a SCORM, AICC, cmi5 or xAPI package and runs axe-core over every page in it | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| SCORM ValidatorA small Streamlit app that opens a package zip and reports structural faults | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| scorm_debugDrop SCORM zips in a folder and launch each one against a 1.2 or 2004 harness locally | editor-checked— source, opens in a new tab Checked | NOASSERTION | Open source |
| SCORM LabDrop a package in the browser and watch every API call it makesEditions 2nd, 3rd, 4th | vendor-stated— source, opens in a new tab | proprietary | Free |
Packagers, SDKs & libraries
| Tool | Evidence | Licence | Pricing |
|---|---|---|---|
| @gamestdio/scormA TypeScript port of the pipwerks wrapper, published once in 2019 and untouched since | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| @studiolxd/scormHeadless SCORM 1.2 and 2004 runtime with React, Vue, Angular, Svelte and Web Component adaptersEditions 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| @szenadam/scorm-api-wrapperA TypeScript reimplementation of the pipwerks SCORM wrapper, published to npm | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| dart_scormSCORM 1.2 and 2004 bindings for Flutter and Dart web applications | editor-checked— source, opens in a new tab Checked | Apache-2.0 | Open source |
| grunt-scorm-manifestGrunt task that writes an imsmanifest.xml for a single-SCO packageEditions 3rd | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| ngx-scorm-wrapperAn injectable Angular service wrapping the SCORM 1.2 and 2004 runtime APIs | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| node-scorm-packagerNode library that writes an imsmanifest and lays out a SCORM course directoryEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| pipwerks SCORM API WrapperThe JavaScript wrapper most SCORM courses have been built on since 2008 | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| React SCORM ProviderA React context and higher-order component over the pipwerks SCORM wrapper | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| SCOBotSCORM 1.2 and 2004 content wrapper with a mock LMS for working offlineEditions 2nd, 3rd, 4th | editor-checked— source, opens in a new tab Checked | CC-BY-SA-4.0 | Open source |
| SCOL-RA thin SCORM shell that proxies the API to content hosted on another domain | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| scorm (Ruby gem)Reads, checks and builds SCORM packages from Ruby, with a small CLI alongsideEditions 3rd | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| SCORM Cloud API v2 clientsRustici's generated client libraries for the SCORM Cloud REST API, in six languagesEditions 2nd, 3rd, 4th | editor-checked— source, opens in a new tab Checked | Apache-2.0 | Open source |
| scorm-againA tested JavaScript SCORM 1.2 and 2004 runtime for anything that has to host a courseEditions 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| SCORM-ManifestsBoilerplate imsmanifest.xml files for single-SCO SCORM 1.2 and 2004 packagesEditions 4th | editor-checked— source, opens in a new tab Checked | none | Open source |
| scorm-mcp-serverAn MCP tool that wraps a finished HTML module into an offline SCORM packageEditions 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| simple-scorm-packagerNode package that turns a build directory into a conformant SCORM zipEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| simplify-scormSCORM 1.2 and 2004 runtime APIs in plain JavaScript, for the LMS side of the fenceEditions 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| TesseraAuthor a course as Svelte pages, then export the same source as SCORM, cmi5 or xAPIEditions 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| Unity-SCORM Integration KitExport a Unity WebGL build as a SCORM 2004 package and report progress from C#Editions 4th | editor-checked— source, opens in a new tab Checked | Apache-2.0 | Open source |
| usescormReact hook that wraps the SCORM run-time API and keeps state in suspend data | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| eLearning Module ParserJava library that detects and parses SCORM, AICC, cmi5 and xAPI packages into typed metadataEditions 2nd, 3rd, 4th | vendor-stated— source, opens in a new tab Checked | Apache-2.0 | Open source |
| RESCORMReact boilerplate that ships SCORM tracking alongside the application codeEditions 4th | vendor-stated— source, opens in a new tab Checked | MIT | Open source |
LMS & LMS plugins
| Tool | Evidence | Licence | Pricing |
|---|---|---|---|
| Claroline ConnectSymfony and React learning platform with a SCORM 1.2 and 2004 player pluginEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | AGPL-3.0 | Open source |
| EscolaLMS ScormLaravel package that stores, plays and tracks SCORM packages over a REST APIEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| Forma LMSCorporate-focused PHP learning platform with its own SCORM 1.2 and 2004 playerEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | GPL-2.0-only | Open source |
| Frappe LearningOpen-source LMS from the Frappe stack, with a deliberately minimal SCORM chapter type | editor-checked— source, opens in a new tab Checked | AGPL-3.0 | Open source |
| ILIASGerman open-source LMS carrying SCORM 1.2, SCORM 2004 and cmi5 objects in coreEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | GPL-3.0 | Open source |
| laravel-scormLaravel package that unpacks SCORM zips and stores CMI tracking in your databaseEditions 2nd, 3rd, 4th | editor-checked— source, opens in a new tab Checked | MIT | Open source |
| MoodleThe most widely deployed open-source LMS, and the SCORM behaviour most content gets tested againstEditions 3rd, 4th | editor-checked— source, opens in a new tab Checked | GPL-3.0-or-later | Open source |
| Open edXThe large self-hosted learning platform, with SCORM and xAPI arriving via plugins | editor-checked— source, opens in a new tab Checked | AGPL-3.0 | Open source |
| Open edX SCORM XBlockUpload a SCORM package into an Open edX course and grade it like any other block | editor-checked— source, opens in a new tab Checked | AGPL-3.0 | Open source |
| SakaiHigher-education LMS with an in-tree SCORM player built on the ADL reference codeEditions 3rd | editor-checked— source, opens in a new tab Checked | ECL-2.0 | Open source |
| Opigno LMSDrupal distribution turned LMS, with SCORM and xAPI handled by its own modulesEditions 3rd | vendor-stated— source, opens in a new tab Checked | GPL-2.0-or-later | Open source |
| Totara LearnMoodle-derived enterprise LMS, GPL-licensed but distributed only through a paid subscription | vendor-stated— source, opens in a new tab Checked | GPL-3.0 | On application |
Distribution, licensing & hosting
| Tool | Evidence | Licence | Pricing |
|---|---|---|---|
| SCORMBridgeLicense your SCORM course into a client's LMS without handing over the fileEditions 2nd, 3rd, 4th | vendor-stated— source, opens in a new tab | proprietary | Freemium |
Choosing between them
Which edition should I publish?
3rd Edition is the broadest safe target if you use sequencing; 4th Edition if you know the LMS supports it. If you are not using sequencing at all, the practical difference between 2004 and 1.2 is the data model, and 1.2 will import in more places.
SCORM 2004 or cmi5?
Both give the LMS a launch-and-report contract. SCORM 2004 keeps the content inside the LMS window and gives you sequencing; cmi5 lets the content run anywhere, report through xAPI, and go offline — but it has no sequencing model and thinner support.
Questions people ask about SCORM 2004
What is the difference between SCORM 2004 2nd, 3rd and 4th Edition?
Mostly sequencing. Each edition corrected ambiguities in the Sequencing and Navigation book and tightened conformance requirements; 4th Edition also added shared data between SCOs. The runtime data model changed comparatively little.
Why does my sequenced course behave differently on two LMSs?
Because sequencing is the hardest part of SCORM to implement and the part editions differ on. Two systems can both be conformant against different editions and still make different navigation decisions on the same activity tree.
What is cmi.success_status for?
It records whether the learner passed, separately from cmi.completion_status which records whether they finished. SCORM 1.2 combined the two in one element, which is the single most common reason people move to 2004.
Do I need sequencing to use SCORM 2004?
No. A single-SCO 2004 package with no sequencing rules is common and behaves predictably. You take the larger data model without taking on the interoperability risk.
How much suspend data can SCORM 2004 hold?
Up to 64,000 characters, against 4,096 in SCORM 1.2. That is usually enough to store real course state rather than an encoded shorthand.