Standards
Built for the import, not the demo
Most of the work in a SCORM course is invisible until an LMS refuses it — or accepts it and records nothing. These are the parts that decide which.
What every package guarantees
Not aspirations. Each of these is checked by the build before the download button appears.
One SCO, so completion records
Multi-SCO packages hand completion to the LMS rollup rules, which is the commonest reason a course imports cleanly and then reports nothing. Navigation happens inside the package instead, and there is exactly one thing for the LMS to track.
Every file listed in the manifest
A file an LMS does not know about is one it may decline to extract, and the symptom is a broken image three slides in. The manifest is written last, after the media, precisely so nothing is missing from it.
Every slide driven before you download it
Each slide is opened in a real browser with a simulated run-time behind it, and what it reports is asserted. The failure this catches is the one that looks like success: a package that imports and records nothing.
Answers reported question by question
Scored slides send each answer to the LMS — what was asked, what the learner chose, and whether it was right — in the format each edition expects, so your question analysis is not empty.
It cannot phone home
Slides may not load anything from the internet, and the check refuses any that try. Nothing you publish can call our servers, or anyone else’s, from inside your LMS.
Your pass mark is the mastery score
The threshold you set is written into the manifest and enforced by the course, so the LMS and the course agree about who passed.
Both editions, one course
Choose the target when you create the course, or switch later.
| What | SCORM 1.2 | SCORM 2004 3rd Ed. |
|---|---|---|
| Manifest | ADL SCORM 1.2 | ADL SCORM 2004 3rd Edition |
| Run-time API | API (LMSInitialize…) | API_1484_11 (Initialize…) |
| Completion | cmi.core.lesson_status | cmi.completion_status |
| Score | cmi.core.score.raw | cmi.score.scaled |
| Pass mark | Mastery score | Scaled passing score |
| Per-question answers | cmi.interactions | cmi.interactions |
| Resume | Supported | Supported |
What is actually in the zip
A package, not one enormous HTML file.
imsmanifest.xml the manifest an LMS reads first
index.html the single SCO — the course frame lives here
shared/scorm-rte.js the run-time wrapper for your chosen edition
shared/shell.js navigation, progress, resume and every LMS call
shared/brand.css this course’s own colours and fonts
shared/slide-bridge.js how a slide reports to the course
slides/…/index.html one document per slide
assets/media/… the pictures the course uses
*.xsd the ADL schema files the manifest points at
README.md what this is and how to import itOne document per slide rather than a single file, so an LMS serves them independently, a learner’s browser caches what it has already seen, and changing one slide leaves the rest untouched.
Questions people ask before committing
Which one should I choose?
SCORM 1.2 unless you know your LMS needs 2004. It is the more widely supported of the two and every mainstream LMS imports it. Choose 2004 if your team already standardised on it, or you need the finer-grained scoring model.
Can I change my mind after building?
Yes. The target is chosen at packaging time and changes only the manifest and the runtime wrapper — the slides, the frame and the navigation are identical between the two. Switching does not mean rebuilding the course.
Will it work in my LMS?
If your LMS imports conformant SCORM, yes. It is tested against a simulated run-time that implements the standard, and the structural checks catch every import failure we have seen. Try a shared link or a single course first if you would rather not take that on faith.
What about the ADL schema files?
They are inside the package. The manifest points at them by relative path, so a strict offline validator finds them where it expects to.
Do you support xAPI or cmi5?
Not today. SCORM is what an LMS imports as a file and keeps working without us; xAPI and cmi5 point at a live endpoint, which is a different commitment. LTI is on the roadmap for the same reason rather than as a replacement.
What do learners need installed?
A browser. There is no plugin, no Flash, no runtime to deploy — the package is HTML, CSS and JavaScript that the LMS serves.