How Scormbusters' SCORM exports are verified
Each result below is dated and comes with the run that produced it.
Last reviewed
Every conformance claim on this page is dated and comes with the run that produced it. Exports are verified two ways: a conformance probe that interrogates the LMS runtime check by check, and full-course runs where a real multi-lesson export with a graded quiz is imported into a live LMS and walked like a learner until the LMS records completion, pass/fail and score.
Latest results: full-course exports verified on SCORM Cloud under SCORM 1.2 and SCORM 2004 3rd Edition (24 September 2026, re-verified 3 October 2026, automated), and the probe at zero failures on SCORM Cloud and a from-scratch Moodle 4.5 (17 September 2026).
- A full multi-lesson course export with a graded quiz was verified on SCORM Cloud on 2026-09-24 under both SCORM 1.2 and SCORM 2004 3rd Edition: registration recorded completed, passed, score 100; deliberate wrong answers recorded failed with the remediation path shown. Re-verified 2026-10-03 with the current exporter: both standards again recorded completed, passed, 100.
- The conformance probe passed 22 checks under SCORM 1.2 on SCORM Cloud (2026-09-17) and 22 under 1.2 plus 46 under 2004 on a from-scratch Moodle 4.5 (2026-09-17), zero failures, including suspend_data at each spec's full floor (4,096 and 64,000 characters) and resume across a relaunch.
- Both SCORM Cloud and Moodle open the SCORM session before the content does, so the content's own Initialize call returns false on a healthy session; content that treats that as fatal breaks on the reference implementation.
- Both SCORM Cloud and Moodle leave cmi.core.entry empty on resume rather than 'resume'; a player that trusts entry restarts every returning learner. Scormbusters reads lesson_location and suspend_data directly.
- Moodle's own documentation says its SCORM 2004 support is incomplete (no sequencing), so a passing Moodle 2004 run is a data-model smoke test, not a conformance claim; the 2004 claim rests on SCORM Cloud.
- The probe is a SCORM package that interrogates any LMS it runs in — it talks to window.API directly, not through Scormbusters' driver — and anyone can build it from source and run it against their own LMS.
Full-course runs on SCORM Cloud (24 September 2026, re-verified 3 October 2026)
SCORM Cloud is Rustici’s own engine, written by the authors of the spec — a failure there is ours, not the platform’s, which is why it is the first platform tested. The automated runner imports the exported zip, launches it, clicks through every lesson, answers the quiz, and reads back what the LMS recorded:
| Check | SCORM 1.2 | SCORM 2004 3rd Ed. |
|---|---|---|
| Import accepted, launches and plays | pass | pass |
| Completion recorded | COMPLETED | COMPLETED |
| Success recorded | PASSED | PASSED |
| Score recorded | 100 | 100 |
| Deliberately failed attempt | FAILED recorded; remediation path shown | FAILED recorded; remediation path shown |
A unit suite alone does not earn these rows. The policy exists because a green unit suite once coexisted with exports that had never worked in a real LMS — the full-course run is the check that would have caught it, so it now runs automatically.
The conformance probe (17 September 2026)
The probe is a SCORM package that interrogates whatever LMS it runs in. It talks to the LMS API (window.API / API_1484_11) directly — not through Scormbusters’s player — so it measures the LMS runtime itself, then relaunches to test resume.
| Platform | SCORM 1.2 | SCORM 2004 3rd Ed. |
|---|---|---|
| SCORM Cloud | 22 checks, 0 failures | covered by the full-course run above |
| Moodle 4.5 (installed from scratch in Docker, driven headlessly) | 22 checks, 0 failures | 46 checks, 0 failures — data-model smoke test, see below |
The checks that matter most to a course actually resuming and reporting:
suspend_dataround-trips at the full spec floor — 4,096 characters under 1.2, 64,000 under 2004 — not just at token sizes.- Resume across a complete relaunch:
suspend_dataandlesson_locationboth survive. - Completion, success and score recorded at the LMS, including
cmi.score.scaledunder 2004. - Invalid data-model elements are rejected with the correct error (201 under 1.2, 401 under 2004) — the runtime is validating, not swallowing.
The honest Moodle 2004 caveat:Moodle’s own documentation says its SCORM 2004 support is incomplete — the runtime data model, but not sequencing and navigation. A passing probe in Moodle therefore shows the export launches, the data model round-trips and resume works in Moodle; it is a smoke test, not a conformance claim. The 2004 conformance claim rests on SCORM Cloud.
Two platform behaviors your content must survive
SCORM Cloud and Moodle are independent implementations — one of them the reference — and both do these two things, which makes them properties of the category rather than one vendor’s bug:
- The session is opened before the content runs.The content’s own
Initializecall returnsfalseon a healthy session: Moodle reports error 101 under 1.2 and 103 under 2004, SCORM Cloud returns false with no error at all. Content that treats that return as fatal breaks on the reference implementation. Scormbusters’s player checks whether the session actually works instead of trusting the return value. cmi.core.entryis empty on resume, not"resume"— on both platforms. A player that decides whether to restore progress by readingentryrestarts every returning learner on the two most common SCORM hosts in the world. Scormbusters’s player readslesson_locationandsuspend_datadirectly and never consultsentry.
Both behaviors are pinned by regression tests in our SCORM driver, so they cannot quietly regress.
Per-LMS verification matrix
“SCORM-conformant” and “works in my LMS” are different claims. This matrix records real imports into real LMS instances; an empty cell means not yet verified, not broken.
| LMS | SCORM 1.2 | SCORM 2004 |
|---|---|---|
| SCORM Cloud | verified — probe 2026-09-17 + 2026-10-03, full course 2026-09-24 + 2026-10-03 | verified — probe 2026-10-03, full course 2026-09-24 + 2026-10-03 |
| Moodle 4.5 | verified 2026-09-17 (automated, repeatable) | probe passed 2026-09-17 — smoke test only |
| Canvas | not yet verified | not yet verified |
| Blackboard | not yet verified | not yet verified |
| Cornerstone | not yet verified | not yet verified |
| TalentLMS | not yet verified | not yet verified |
| Docebo | not yet verified | not yet verified |
The Moodle run is fully automated — a from-scratch Moodle in Docker, driven end to end in headless Chromium — so a regression there is caught by the project, not reported by a customer.
Reproduce this yourself
The probe is a SCORM package we share on request; it runs against any LMS you have. Import the zip, launch it, copy the report; relaunch to test resume. Contributed results — pass or fail — are added to the matrix above, with workarounds for failures when they exist.
Exports themselves can be tested the same way: export any course as SCORM 1.2 or 2004, import it into your LMS, and confirm launch, completion, score and resume. If your LMS is not in the matrix, that is exactly the report worth sending.
Editing a SCORM package without the source file covers the other direction: what Scormbusters reads from existing packages.
Frequently asked questions
Is Scormbusters SCORM certified?
There is no active official SCORM certification program; ADL's test suite certified SCORM 2004 implementations years ago and 'SCORM certified' claims today usually mean a vendor ran Rustici's SCORM Cloud. Scormbusters publishes exactly what was run and when: automated full-course verification on SCORM Cloud under SCORM 1.2 and SCORM 2004 3rd Edition, and a 68-check conformance probe on SCORM Cloud and Moodle 4.5, all dated, and the probe package is available on request so anyone can reproduce them.
What does 'works in my LMS' depend on, beyond SCORM conformance?
Each LMS has quirks a conformant package must survive. Two appear on both SCORM Cloud and Moodle: the session is opened before the content runs (so the content's own Initialize call returns false on a healthy session), and cmi.core.entry is empty on resume instead of 'resume'. Scormbusters' player handles both; a player that doesn't will restart returning learners or refuse to start at all on the two most common SCORM hosts.
Does the SCORM 2004 export work in Moodle?
Yes, with an honest caveat. The probe passes all 46 checks in Moodle 4.5 — launch, full data model, 64,000-character suspend_data, resume — but Moodle documents its own SCORM 2004 support as incomplete (no sequencing), so a passing Moodle run is a data-model smoke test. The SCORM 2004 conformance claim rests on SCORM Cloud, where full-course runs passed on 2026-09-24 and again on 2026-10-03.
How do I verify this myself?
Build the probe from the repository (npm run build:probe), import the zip into your LMS and launch it. It interrogates the LMS runtime directly — it does not use Scormbusters' player — and shows a copyable report, including a relaunch test for resume. Pass or fail, results for new platforms are added to the matrix.
Which LMSs have not been verified yet?
Canvas, Blackboard, Cornerstone, TalentLMS and Docebo have no verified entry yet. An empty cell in the matrix means not yet verified, not broken — and contributed probe reports are added to the page, including failures, with workarounds when they exist.
What about cmi5 and xAPI?
Both are supported export targets alongside SCORM 1.2 and SCORM 2004, and xAPI statements can be forwarded to any LRS configured per organization. The automated LMS verification described on this page currently covers the two SCORM standards; cmi5 runs are not yet part of it.
See what your course looks like to a screen reader first
The free scan reads a published course zip or URL and reports accessibility problems, with a transcript of what a screen reader announces. No account; your course is uploaded for scanning only and deleted immediately, never kept.