Export SCORM 1.2 unless you can name the reason you need 2004. There are three reasons that hold up, and if none of them applies to your course, 1.2 is the version the widest range of systems accepts without argument. The harder problem sits underneath the choice: the version you pick isn’t always the version your LMS runs your package under, and nothing on the import screen tells you when it has swapped. This guide gives you the six differences that are real, the one line of text that decides which runtime you get, and the checks to run before you commission a single module.
If you control where the course runs, you may not need a package at all: share links and embeds deliver the same course without one.
Key Takeaways
– SCORM 1.2 has one status field. SCORM 2004 has two, set independently, so completion and pass can both be recorded for the same person. That’s the only difference that isn’t a preference.
– Resume state is capped at 4,096 characters under 1.2 and 64,000 under 2004. It’s a length-of-course question.
– A platform decides which runtime your package gets by matching a text string in the manifest. In Moodle, anything outside its short list of recognized strings gets the SCORM 1.2 runtime, with no error at import.
What Actually Changes Between SCORM 1.2 and 2004
Six things change in a way you can act on.
| What it does | SCORM 1.2 | SCORM 2004 |
|---|---|---|
| Status | One field, one value at a time: passed, completed, failed, incomplete or browsed | Two independent fields, one for completion and one for success |
| Resume state ceiling | 4,096 characters | 64,000 characters |
| Score | Raw score, declared range 0 to 100 | Raw, minimum and maximum, plus a scaled score from -1 to 1 |
| Sequencing and navigation rules | Not part of the standard | Part of the standard, and the part platforms implement least consistently |
| Schema files inside the package | Four | Twenty-nine |
| Parts of the standard the manifest declares | Three | Six |
Five of those six are preferences. The first is the only difference that can make a compliance report wrong, and it’s where the decision gets made.
Every figure here is what a real platform enforces, and Moodle is the worked example throughout because its import and runtime behavior is documented in the open. Other systems word the same things differently, which is what the checks below are for.
One Status Field, or Two
SCORM 1.2 gives a lesson a single status field, cmi.core.lesson_status, and it holds exactly one of five values at any moment: passed, completed, failed, incomplete or browsed. SCORM 2004 splits that into two fields the package sets independently: cmi.completion_status, carrying completed, incomplete, not attempted or unknown, and cmi.success_status, carrying passed, failed or unknown.
Read that as an audit consequence, not a feature. Under 1.2, “finished the training” and “passed the assessment” share one slot, so whoever builds the module chooses which of the two facts your records will show. Under 2004 you get both, for the same person.
For most training that doesn’t matter. For compliance training records it can matter completely, because an auditor usually wants both facts together: they sat the course, and they met the standard. No amount of reporting on the LMS side recovers a fact the package never sent.
So ask the person who owns the audit which sentence they have to be able to prove. If the answer contains the word “and”, you need 2004.
How Much the Course Can Remember
Resume state is what lets someone close a module on Tuesday and open it on Thursday in the right place. The package writes what it needs to remember into one field, and that field has a ceiling: 4,096 characters under SCORM 1.2, 64,000 under SCORM 2004.
A ten-screen linear module never approaches the smaller ceiling. A long branching course that stores every choice a learner made can pass it, and when it does the state truncates and the learner comes back to the wrong place. No error is raised on either side.
So it’s a question about the shape of the course. If your module is linear and under an hour, the limit is irrelevant. If it branches or runs long, test resume specifically: get halfway, close the browser, come back, and see where you land.
Scores: Out of 100, or Scaled
SCORM 1.2 reports a raw score with a declared range of 0 to 100. SCORM 2004 keeps raw, adds a minimum and a maximum, and adds a scaled score expressed as a decimal from -1 to 1.
The effect lands in the gradebook. A 40-question assessment scored out of 40 has to be converted to a percentage before it goes into a 1.2 score field, or the number that arrives is either rejected or meaningless to whoever reads the report.
So ask whoever builds the module what number goes into the score field, and out of what.
Why “Supports SCORM 2004” Is a Bigger Claim Than It Sounds
Size is a fair proxy for how much of the standard a system has to implement. A working SCORM 1.2 package carries four schema files. A SCORM 2004 package of comparable scope carries twenty-nine. The manifest declares three parts of the standard in 1.2 and six in 2004, and the three extras are sequencing and navigation: the rules that decide what a learner is allowed to open next.
That’s the part platforms implement least consistently. Moodle, one of the most widely installed systems there is, passes the SCORM 1.2 conformance suite, has stopped developing native SCORM 2004 support, and closes 2004 bugs as won’t fix; for certified 2004 conformance it points users at a commercial add-on.
So “we support SCORM 2004” and “we run your SCORM 2004 sequencing rules” are different claims, and a feature list can’t tell them apart. Put the second one to your LMS admin and ask for a demonstration with a package that has sequencing in it. Ask the tool that publishes your content the same question in reverse: which versions and which editions does it export?
The Version You Pick Is Not Always the Version You Get
Here’s the mechanism nobody mentions at the export dialog. The version your package claims is a line of plain text inside the manifest, and on import the platform matches that text against a short list of exact strings it recognizes. Moodle’s list is 1.2, 1.3, CAM 1.3, 2004 3rd Edition and 2004 4th Edition, and anything that isn’t one of those falls through to the SCORM 1.2 runtime.
There’s no error. The import succeeds and the learner sees a course that works.
What’s happened is that a package built for 2004 is being served the 1.2 runtime. Every 2004 call it makes then fails: completion status, success status, scaled score. The course plays perfectly and reports nothing, or half of what you expected. The first sign of trouble is a completion report that doesn’t match the room you watched take the training.
A manifest that says “SCORM 2004” in words, or “2004 2nd Edition”, is exactly this case, as is any version string an exporter wrote in its own house style. The text has to match, character for character, something the destination recognizes.
So “we exported 2004” and “we are running 2004” are separate statements, and the only version test that means anything is one you run yourself: a real package, the real destination system, a test learner, taken to completion, with someone looking at what lands in the gradebook.
How to Tell Which Version a Package Actually Is
You can answer this in two minutes without uploading anything.
- Take a copy of the zip and unzip it locally.
- Open
imsmanifest.xmlin any text editor. It sits in the root of the package. - Find the
schemaversionelement.1.2means SCORM 1.2.1.3,CAM 1.3,2004 3rd Editionor2004 4th Editionmeans SCORM 2004. Anything else is the fall-through case above, and it’s the answer to why your tracking looks wrong. - For a second opinion, read the namespace declarations in the first few lines. A 2004 package declares six, three of which are the sequencing and navigation ones. A 1.2 package declares three, and none of them are.
If you want the rest of the anatomy, what else is in the zip covers the files around the manifest and the one attribute that decides whether anything is tracked at all.
3rd Edition or 4th Edition
SCORM 2004 has editions running through the 4th, and support is uneven at the edition level rather than the version level. A system can accept SCORM 2004 and still not accept the edition your content was built for.
Moodle recognizes “2004 3rd Edition” and “2004 4th Edition” as edition names and no others, so a manifest that says “2004 2nd Edition” is not one it knows. On the authoring side, Lectora publishes to SCORM 2004 3rd edition and stops there. Neither is a fault. They’re the kind of detail that decides a project and never appears in a comparison table.
Check three things, in this order: which edition strings the destination system accepts, by name; which editions your authoring tool publishes; then one package taken end to end. If a client specification names 4th edition, settle it before you buy the tool, not after the content exists.
There won’t be a SCORM 3. The organization that wrote the standard has been shut down and its work archived, and the official conformance test suite for SCORM 2004 4th Edition has gone eleven years without a change. Future-proofing isn’t a reason to choose 2004, and “SCORM 2004 certified” isn’t a claim anyone is currently auditing.
None of that means SCORM is going away. SCORM 1.2 is still the version learning platforms accept most widely. If your question is which standard rather than which version, xAPI and cmi5 answer a different problem.
Pick 1.2 Unless You Can Finish the Sentence
Default to SCORM 1.2. Move to 2004 only when you can finish this sentence out loud: we need 2004 because ___.
Three endings hold up, and anyone who can’t name one of them doesn’t need 2004.
| If this is true of your course | Export |
|---|---|
| An auditor needs completion and pass recorded as separate facts for the same person | SCORM 2004 |
| It branches or runs long enough to outgrow 4,096 characters of resume state | SCORM 2004 |
| You will use sequencing rules, and someone has confirmed the destination runs them | SCORM 2004 |
| None of the above | SCORM 1.2 |
Then do the two checks that cost nothing. Open the manifest and read the version string, so you know which runtime the package will be given. Import one real package into the destination with a test learner, take it to completion, and look at what arrives in the gradebook, before any content is commissioned.
Ask any platform which SCORM version it exports and which it accepts, by name and in writing. That includes us. Mini Course Generator is our product: it exports SCORM packages, and a course built in it can also hold a SCORM activity produced somewhere else as a block, with tracking on how learners interact with it. It publishes no version for either direction, which is the whole reason the question above is worth putting to every vendor, ours included. If the module doesn’t exist yet, you can build it from material you already have and settle the export version once you know what the destination runs.
Frequently Asked Questions
What is SCORM 1.2?
SCORM 1.2 is the older of the two versions in common use, and the one the widest range of learning platforms accepts. It gives a lesson one status field, a raw score out of 100 and 4,096 characters of resume state, and it has no sequencing rules.
Which SCORM version is better, 1.2 or 2004?
Neither. SCORM 2004 does more; SCORM 1.2 is accepted more widely. The better version for you is the one your destination system runs properly, which is a fact about their platform rather than about the standard.
Which SCORM version should I use?
SCORM 1.2, unless an auditor needs completion and pass as two separate facts, the course is long or branching enough to outgrow the resume limit, or you’re going to use sequencing rules. Outside those three cases 1.2 is the safer export.
Is SCORM 2004 newer than 1.2?
Yes, and there’ll be no third version because the standard’s authors are gone. Newer is the wrong axis: what matters is whether the system receiving your package implements the newer parts, and many implement them only partly.
Our LMS only accepts SCORM 1.2. Is that a problem?
Usually not. It becomes a problem only in the three cases above. If you already have 2004 content, re-exporting from the source project at 1.2 is normally cheaper than making the platform stretch, as long as you check what the status field will report once completion and pass share a slot.
Sources
- Moodle’s published SCORM documentation and its SCORM module, for the data-model fields and their values, the resume-state and score limits, the version strings recognized at import and the fall-through to SCORM 1.2
- Moodle’s statement of its own SCORM conformance position, including the 1.2 suite it passes and the status of native SCORM 2004 support
- The ADL Initiative’s archived repositories, and the SCORM 2004 4th Edition conformance test suite with the eleven years since its last change
- ELB Learning’s product documentation for Lectora, for the editions it publishes
- Published SCORM 1.2 and SCORM 2004 3rd Edition sample packages, for the schema file and namespace counts



