Skip to content

SCORM 1.2 — what it is, what it cannot do, and the tools that support it

The oldest version of SCORM still in daily use, and still the safest export format when you do not control the target LMS.

Written and maintained by the scorm-tools.com editor. 65 listed tools state support.

What SCORM 1.2 is

SCORM 1.2 is the version of the Sharable Content Object Reference Model that most e-learning content still ships as. ADL published it in October 2001, and it fixed a simple contract: a course is a ZIP file containing an imsmanifest.xml that describes its resources, and once inside the LMS the course looks up a JavaScript object called API on a parent or opener window. It calls LMSInitialize, reads and writes a small flat data model through LMSGetValue and LMSSetValue, and calls LMSFinish when the learner leaves.

That data model is both why SCORM 1.2 persists and why people outgrow it. It carries a lesson status, a raw score with optional minimum and maximum, session time, interaction records and a 4,096-character suspend area — and nothing else. There is no separate pass mark, no scaled score, no standard place for anything the model did not anticipate, and no sequencing beyond whatever menu the LMS chooses to draw.

SCORM 2004 replaced it in 2004 with a larger data model and real sequencing rules. SCORM 1.2 was never withdrawn, support for it is close to universal, and a package that only needs to report completion and a score will travel further as 1.2 than as anything newer.

Versions and what changed

Release history of SCORM 1.2
Version Released What changed
SCORM 1.0January 2000First public release; a working draft rather than something to build on.
SCORM 1.1January 2001Short-lived revision; superseded within the year.
SCORM 1.2October 2001The version that stuck: the CMI data model, the API object and content packaging as they are still implemented today.
SupersededJanuary 2004SCORM 2004 took over new development. SCORM 1.2 was not withdrawn and remains widely supported.

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, so no active registry lists conformant SCORM 1.2 products — and adlnet.gov itself has been unreachable since around May 2026, with the specifications and test suites surviving on its GitHub org. Claims on this site are therefore vendor-stated or editor-checked; none can be registry-verified.

Tools that support SCORM 1.2

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

Authoring tools & course frameworks that support SCORM 1.2
Tool Evidence Licence Pricing
Adapt Authoring ToolSelf-hosted web UI for the Adapt framework, publishing responsive HTML5 courseseditor-checked— source, opens in a new tab Checked GPL-3.0Open source
Adapt FrameworkResponsive HTML5 course framework whose SCORM output is a bundled plugineditor-checked— source, opens in a new tab Checked GPL-3.0Open source
CourseCodeCode-first course framework and CLI that packages to SCORM, cmi5 and LTI 1.3editor-checked— source, opens in a new tab Checked MITOpen source
eXeLearningFree authoring tool from the Spanish education ministry, exporting SCORM, IMS CP and EPUBeditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
LernkitCode-first authoring from MDX with SCORM 1.2 export and runnable code as a lesson primitiveeditor-checked— source, opens in a new tab Checked MITOpen source
LessonKitAuthor courses as React components, then export SCORM, xAPI or cmi5 from the same codebaseeditor-checked— source, opens in a new tab Checked Apache-2.0Open source
LiaScript ExporterTurns a Markdown course into a SCORM 1.2, SCORM 2004, IMS or xAPI package from the command lineeditor-checked— source, opens in a new tab Checked BSD-3-ClauseOpen source
LumiA desktop H5P editor that exports a working SCORM 1.2 package offlineeditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
Xerte Online ToolkitsServer-hosted, template-driven authoring for institutions, with SCORM and xAPI exporteditor-checked— source, opens in a new tab Checked Apache-2.0Open source

Converters & migration

Converters & migration that support SCORM 1.2
Tool Evidence Licence Pricing
markdown2scormA Perl script that runs Markdown through pandoc and wraps the result as SCORM 1.2editor-checked— source, opens in a new tab Checked noneOpen source
pptx_to_scormRuby scripts that turn PowerPoint slides into an HTML slideshow in a SCORM foldereditor-checked— source, opens in a new tab Checked noneOpen source
scorm-h5p-wrapperWeb app that packs an H5P file into a self-contained SCORM 1.2 packageeditor-checked— source, opens in a new tab Checked MITOpen source
SCORM-to-xAPI WrapperADL's drop-in APIWrapper.js that re-emits SCORM calls as xAPI statementseditor-checked— source, opens in a new tab Checked noneOpen source
ppt-to-scorm.comPowerPoint decks turned into packages that actually record completionvendor-stated— source, opens in a new tabproprietaryFreemium

Players, runtimes & debuggers

Players, runtimes & debuggers that support SCORM 1.2
Tool Evidence Licence Pricing
lms-lrsA NestJS and Vue reference build of an LMS with a SCORM runtime and an xAPI storeeditor-checked— source, opens in a new tab Checked MITOpen source
Moodle SCORM activity (mod_scorm)The SCORM player inside Moodle — the most exercised open-source runtime there iseditor-checked— source, opens in a new tab Checked GPL-3.0-or-laterOpen source
SCORM-LearningManagementSystemA small .NET SCORM LMS and player you can read end to endeditor-checked— source, opens in a new tab Checked MITOpen source
scorm-playerBrowser-only SCORM 1.2 player and run-time inspector, with no server and no uploadeditor-checked— source, opens in a new tab Checked MITOpen source
SCORM LabDrop a package in the browser and watch every API call it makesvendor-stated— source, opens in a new tabproprietaryFree

Testing, validation & conformance

Testing, validation & conformance that support SCORM 1.2
Tool Evidence Licence Pricing
PrismUnzips a SCORM, AICC, cmi5 or xAPI package and runs axe-core over every page in iteditor-checked— source, opens in a new tab Checked MITOpen source
SCORM ValidatorA small Streamlit app that opens a package zip and reports structural faultseditor-checked— source, opens in a new tab Checked MITOpen source
scorm_debugDrop SCORM zips in a folder and launch each one against a 1.2 or 2004 harness locallyeditor-checked— source, opens in a new tab Checked NOASSERTIONOpen source
scorm-localA SCORM 1.2 API shim that keeps CMI data in localStorage while you build contenteditor-checked— source, opens in a new tab Checked MITOpen source
simple-scorm-apiOne HTML file that impersonates an LMS so a SCORM 1.2 SCO can be run locallyeditor-checked— source, opens in a new tab Checked noneOpen source
SCORM LabDrop a package in the browser and watch every API call it makesvendor-stated— source, opens in a new tabproprietaryFree

Packagers, SDKs & libraries

Packagers, SDKs & libraries that support SCORM 1.2
Tool Evidence Licence Pricing
@gamestdio/scormA TypeScript port of the pipwerks wrapper, published once in 2019 and untouched sinceeditor-checked— source, opens in a new tab Checked MITOpen source
@studiolxd/scormHeadless SCORM 1.2 and 2004 runtime with React, Vue, Angular, Svelte and Web Component adapterseditor-checked— source, opens in a new tab Checked MITOpen source
@szenadam/scorm-api-wrapperA TypeScript reimplementation of the pipwerks SCORM wrapper, published to npmeditor-checked— source, opens in a new tab Checked MITOpen source
dart_scormSCORM 1.2 and 2004 bindings for Flutter and Dart web applicationseditor-checked— source, opens in a new tab Checked Apache-2.0Open source
grunt-scorm-manifestGrunt task that writes an imsmanifest.xml for a single-SCO packageeditor-checked— source, opens in a new tab Checked MITOpen source
ngx-scorm-wrapperAn injectable Angular service wrapping the SCORM 1.2 and 2004 runtime APIseditor-checked— source, opens in a new tab Checked MITOpen source
node-scorm-packagerNode library that writes an imsmanifest and lays out a SCORM course directoryeditor-checked— source, opens in a new tab Checked MITOpen source
pipwerks SCORM API WrapperThe JavaScript wrapper most SCORM courses have been built on since 2008editor-checked— source, opens in a new tab Checked MITOpen source
React SCORM ProviderA React context and higher-order component over the pipwerks SCORM wrappereditor-checked— source, opens in a new tab Checked MITOpen source
SCOBotSCORM 1.2 and 2004 content wrapper with a mock LMS for working offlineeditor-checked— source, opens in a new tab Checked CC-BY-SA-4.0Open source
SCOL-RA thin SCORM shell that proxies the API to content hosted on another domaineditor-checked— source, opens in a new tab Checked MITOpen source
scorm (Ruby gem)Reads, checks and builds SCORM packages from Ruby, with a small CLI alongsideeditor-checked— source, opens in a new tab Checked MITOpen source
SCORM Cloud API v2 clientsRustici's generated client libraries for the SCORM Cloud REST API, in six languageseditor-checked— source, opens in a new tab Checked Apache-2.0Open source
scorm-againA tested JavaScript SCORM 1.2 and 2004 runtime for anything that has to host a courseeditor-checked— source, opens in a new tab Checked MITOpen source
scorm-godot-pluginGodot editor plugin that wires a web export to the SCORM 1.2 runtime and zips iteditor-checked— source, opens in a new tab Checked MITOpen source
scorm-kitA nine-command CLI that lints, diffs and audits SCORM packages before uploadeditor-checked— source, opens in a new tab Checked MITOpen source
SCORM-ManifestsBoilerplate imsmanifest.xml files for single-SCO SCORM 1.2 and 2004 packageseditor-checked— source, opens in a new tab Checked noneOpen source
scorm-mcp-serverAn MCP tool that wraps a finished HTML module into an offline SCORM packageeditor-checked— source, opens in a new tab Checked MITOpen source
SCORMifySixty lines of JavaScript that turn a folder of HTML into a SCORM 1.2 packageeditor-checked— source, opens in a new tab Checked MITOpen source
simple-scorm-packagerNode package that turns a build directory into a conformant SCORM zipeditor-checked— source, opens in a new tab Checked MITOpen source
simplify-scormSCORM 1.2 and 2004 runtime APIs in plain JavaScript, for the LMS side of the fenceeditor-checked— source, opens in a new tab Checked MITOpen source
TesseraAuthor a course as Svelte pages, then export the same source as SCORM, cmi5 or xAPIeditor-checked— source, opens in a new tab Checked MITOpen source
usescormReact hook that wraps the SCORM run-time API and keeps state in suspend dataeditor-checked— source, opens in a new tab Checked MITOpen source
eLearning Module ParserJava library that detects and parses SCORM, AICC, cmi5 and xAPI packages into typed metadatavendor-stated— source, opens in a new tab Checked Apache-2.0Open source
RESCORMReact boilerplate that ships SCORM tracking alongside the application codevendor-stated— source, opens in a new tab Checked MITOpen source

LMS & LMS plugins

LMS & LMS plugins that support SCORM 1.2
Tool Evidence Licence Pricing
Chamilo LMSFull open-source LMS with SCORM 1.2 and AICC learning paths and a bundled LTI plugineditor-checked— source, opens in a new tab Checked GPL-3.0Open source
Claroline ConnectSymfony and React learning platform with a SCORM 1.2 and 2004 player plugineditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
EscolaLMS ScormLaravel package that stores, plays and tracks SCORM packages over a REST APIeditor-checked— source, opens in a new tab Checked MITOpen source
Forma LMSCorporate-focused PHP learning platform with its own SCORM 1.2 and 2004 playereditor-checked— source, opens in a new tab Checked GPL-2.0-onlyOpen source
Frappe LearningOpen-source LMS from the Frappe stack, with a deliberately minimal SCORM chapter typeeditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
ILIASGerman open-source LMS carrying SCORM 1.2, SCORM 2004 and cmi5 objects in coreeditor-checked— source, opens in a new tab Checked GPL-3.0Open source
laravel-scormLaravel package that unpacks SCORM zips and stores CMI tracking in your databaseeditor-checked— source, opens in a new tab Checked MITOpen source
mod_scormremoteServe a SCORM package from your Moodle into someone else's LMS via a thin wrapper SCOeditor-checked— source, opens in a new tab Checked GPL-3.0-or-laterOpen source
MoodleThe most widely deployed open-source LMS, and the SCORM behaviour most content gets tested againsteditor-checked— source, opens in a new tab Checked GPL-3.0-or-laterOpen source
Open edXThe large self-hosted learning platform, with SCORM and xAPI arriving via pluginseditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
Open edX SCORM XBlockUpload a SCORM package into an Open edX course and grade it like any other blockeditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
OpenOLATLong-running Swiss open-source LMS with SCORM 1.2, QTI 2.1 and LTI 1.3 built ineditor-checked— source, opens in a new tab Checked Apache-2.0Open source
SakaiHigher-education LMS with an in-tree SCORM player built on the ADL reference codeeditor-checked— source, opens in a new tab Checked ECL-2.0Open source
Opigno LMSDrupal distribution turned LMS, with SCORM and xAPI handled by its own modulesvendor-stated— source, opens in a new tab Checked GPL-2.0-or-laterOpen source
Totara LearnMoodle-derived enterprise LMS, GPL-licensed but distributed only through a paid subscriptionvendor-stated— source, opens in a new tab Checked GPL-3.0On application

Distribution, licensing & hosting

Distribution, licensing & hosting that support SCORM 1.2
Tool Evidence Licence Pricing
SCORMBridgeLicense your SCORM course into a client's LMS without handing over the filevendor-stated— source, opens in a new tabproprietaryFreemium

Choosing between them

SCORM 1.2 or SCORM 2004?

Choose 1.2 when the course reports completion, a score and little else, and when you do not know which LMS it will land in. Choose 2004 when you need completion and success tracked separately, a scaled score, more than 4,096 characters of suspend data, or sequencing rules enforced by the LMS.

SCORM 1.2 or xAPI?

SCORM 1.2 describes content running inside an LMS. xAPI describes an event happening anywhere, stored in a Learning Record Store. If the learning is not a course inside an LMS, SCORM has nowhere to put it.

Questions people ask about SCORM 1.2

Is SCORM 1.2 obsolete?

It is superseded but not withdrawn, and it is the most widely supported version there is. Content authored today is still routinely published as SCORM 1.2 because it imports cleanly almost everywhere.

What is the SCORM 1.2 suspend data limit?

cmi.suspend_data is specified as up to 4,096 characters. Some LMSs allow more and some enforce the limit strictly, which is a common cause of a course resuming in the wrong place on one system and not another.

How does a SCORM 1.2 course report a pass or a fail?

Through cmi.core.lesson_status, whose vocabulary includes passed, failed, completed, incomplete, browsed and not attempted. Because one element carries both completion and success, a course cannot say "finished but failed" as cleanly as SCORM 2004 can.

Can a SCORM 1.2 package be hosted on a different domain from the LMS?

Not reliably. The course finds the API object by walking up the window hierarchy, which the browser blocks across origins. Dispatch and proxy products exist specifically to work around this.

Can I convert SCORM 1.2 to SCORM 2004 or xAPI?

Converters exist and are listed in the converters category. What they cannot do is invent data the original package never collected — a 1.2 course that only reported lesson status will not produce a rich xAPI statement stream after conversion.

The other standards

SCORM 2004
The second generation of SCORM: a larger data model, and sequencing rules the LMS is required to enforce.
xAPI
A way to record that somebody did something, anywhere, and keep it in a store you control.
cmi5
The xAPI profile that supplies what xAPI deliberately left out: how an LMS launches a course and how the two agree it is finished.
AICC
The pre-SCORM interoperability rules, still worth knowing because HACP crosses domains where SCORM cannot.
LTI
A launch protocol, not a packaging format: the LMS sends the learner to a tool that stays where it is.