Admin GuidesSCORM Content

SCORM Content

Who this guide is for: Tenant administrators who upload and manage eLearning content packages in EmbayLMS.


Overview

SCORM is the most widely used format for eLearning content. It packages an interactive course — videos, slides, quizzes, and more — into a single .zip file that any SCORM-compatible LMS can run. EmbayLMS supports SCORM 1.2, SCORM 2004 (all editions), xAPI (Tin Can), and cmi5. You do not need to understand the technical details to upload and manage content — this guide walks you through every step.


Prerequisites

  • Tenant Admin or Instructor role
  • A valid SCORM package in .zip format (exported from an authoring tool such as Articulate Storyline, Rise, Adobe Captivate, or iSpring)

1 — What Is SCORM? (Plain Language)

When a subject matter expert creates an eLearning course using an authoring tool, they export it as a SCORM package — a .zip file containing all the course files and a manifest that tells the LMS how to launch the course and record what the learner does (completion, score, time spent).

EmbayLMS acts as the SCORM runtime. When a learner opens a SCORM course:

  1. EmbayLMS launches the course in a sandboxed frame.
  2. The course communicates completion, score, and progress back to EmbayLMS in real time.
  3. EmbayLMS stores this data and marks the course complete when the right conditions are met.

SCORM 1.2 and SCORM 2004 are the two common versions. Both are supported. Your authoring tool will specify which version it exported.


2 — Uploading a SCORM Package

  1. Navigate to Admin Panel → Courses → [course name] → Modules.
  2. Open the module where you want to add SCORM content, or click Add module.
  3. Click Add content → SCORM / xAPI package.
  4. Click Upload package and select your .zip file (maximum size: 500 MB).
  5. EmbayLMS validates the package (see §3 for what is checked and common errors).
  6. Once validation passes, the package is uploaded and a preview thumbnail is generated.
  7. Configure the completion settings (see §4).
  8. Click Save.

The package is stored on AWS S3 and delivered via CloudFront. Learners stream the content — they do not download the .zip.

Supported versions: SCORM 1.2, SCORM 2004 (1st–4th edition), xAPI (Tin Can), cmi5.


3 — Upload Validation

EmbayLMS checks every package before saving it. Validation typically takes 10–30 seconds for packages under 100 MB and up to 2 minutes for larger packages.

What is checked

CheckWhat it verifies
ZIP integrityThe file is a valid, uncorrupted ZIP archive
Manifest presenceimsmanifest.xml (SCORM) or tincan.xml / cmi5.xml (xAPI/cmi5) is present at the root
Launch fileThe entry point HTML file referenced in the manifest exists in the package
File sizeTotal uncompressed size is within the 500 MB limit
File typesNo executable files (.exe, .bat, .sh) — blocked for security

Common validation errors and fixes

Error messageCauseFix
”Manifest not found”imsmanifest.xml is not at the ZIP root — it may be inside a subfolderRe-export from your authoring tool, ensuring the manifest is at the root level
”Launch file not found”The HTML entry point listed in the manifest does not exist in the packageRe-export; confirm the export settings in your authoring tool point to the correct launch file
”File too large”Uncompressed package exceeds 500 MBReduce embedded video quality in your authoring tool, or split into multiple modules
”Invalid ZIP file”The .zip was corrupted during download or uploadRe-download from your authoring tool and re-upload
”Executable file blocked”Package contains .exe, .bat, or .sh filesRemove the offending files from the package and re-zip
”Unsupported SCORM version”Manifest declares an unsupported versionRe-export as SCORM 1.2 or SCORM 2004

4 — SCORM Completion Settings

Once a package is uploaded, configure how EmbayLMS determines when the learner has completed the module.

4.1 SCORM 1.2 completion

SCORM 1.2 uses the cmi.core.lesson_status data element. EmbayLMS considers the module complete when this value is set by the course to one of the following (configurable):

Trigger optionlesson_status value(s)
Passed or completed (recommended)passed or completed
Completed onlycompleted
Passed onlypassed
Any non-incomplete statuspassed, completed, failed

To configure:

  1. Open Admin Panel → Courses → [course] → Modules → [module] → Settings.
  2. Under Completion trigger, select the desired option.
  3. Click Save.

4.2 SCORM 2004 completion

SCORM 2004 uses two separate elements:

  • cmi.completion_status — tracks whether the learner has finished the content (completed / incomplete).
  • cmi.success_status — tracks whether the learner passed (passed / failed / unknown).

EmbayLMS lets you configure the combination that counts as complete:

Trigger optionCondition
Completed and passedBoth completion_status = completed AND success_status = passed
Completed onlycompletion_status = completed (regardless of pass/fail)
Passed onlysuccess_status = passed

4.3 Score threshold (optional)

If your course reports a score, you can set a minimum passing score. Learners who score below the threshold will not be marked complete even if the SCORM lesson_status says passed.

  1. Open Module Settings → Completion.
  2. Enable Minimum score and enter the threshold (e.g., 80 for 80%).
  3. Click Save.

5 — Suspend Data and Resumption

No configuration is required. EmbayLMS automatically saves a learner’s position in a SCORM course after every SCORM commit event.

  • When a learner closes the course and returns later, EmbayLMS restores their exact position, quiz progress, and any saved state using cmi.suspend_data.
  • This applies to SCORM 1.2 and SCORM 2004.
  • Resume works across devices — a learner can start on their desktop and continue on a mobile device.

Note for admins: If a learner reports losing their progress, check whether their browser blocked cookies or whether the session timed out before the course could commit. See §8 for troubleshooting.


6 — xAPI and cmi5 Content

xAPI (also called Tin Can) and cmi5 content packages are uploaded using the same workflow as SCORM.

  1. Navigate to Admin Panel → Courses → [course] → Modules → Add content → SCORM / xAPI package.
  2. Upload the .zip file. EmbayLMS detects whether the package is xAPI (tincan.xml) or cmi5 (cmi5.xml) automatically.
  3. xAPI statements are sent to EmbayLMS’s built-in LRS (Learning Record Store).
  4. Completion is determined by the cmi5.defined.completed and cmi5.defined.passed xAPI verbs (cmi5) or by a custom completion verb configuration (xAPI).

For complex xAPI reporting needs or integration with an external LRS, contact EmbayLMS support.


7 — Content Versioning

When a course needs to be updated (regulatory content refreshed, branding changed, bugs fixed), you can upload a new version of the SCORM package without losing existing learner records.

7.1 Upload a new version

  1. Navigate to Admin Panel → Courses → [course] → Modules → [module].
  2. Click Content → Replace package.
  3. Upload the new .zip file.
  4. EmbayLMS validates the new package (same checks as initial upload).
  5. Choose a version strategy:
StrategyDescription
New version — preserve in-progress (recommended)Learners who are mid-course continue on the old version until they complete or are manually moved. New starters get the new version.
New version — migrate allAll in-progress learners are moved to the new version. Their existing completion and score data is preserved, but their position (suspend data) is reset.
Replace (no versioning)Replaces the content silently. Learners who have already completed the module are unaffected. Learners mid-course may experience issues if the course structure changed significantly. Not recommended for major updates.
  1. Click Save.

7.2 What happens to in-progress learners

ScenarioResult with “Preserve in-progress” strategy
Learner is mid-courseContinues on old version; can complete normally
Learner has not startedGets the new version
Learner completed the old versionRecord is retained on old version; no re-enrollment unless triggered

7.3 View version history

Navigate to Admin Panel → Courses → [course] → Modules → [module] → Version history to see all versions, the upload date, who uploaded each version, and how many learners are on each version.


8 — Troubleshooting

Content does not launch (blank screen or loading spinner)

  1. Check that the learner’s browser is not blocking pop-ups — SCORM content launches in a new window or tab. The learner should allow pop-ups for your EmbayLMS domain.
  2. Confirm the package is valid by re-running validation (Module → Content → Re-validate package).
  3. Try the Test launch button in the module editor to launch the content as an admin and check for console errors.
  4. If the package uses Flash (very old SCORM 1.2 content) — Flash is no longer supported in modern browsers. The content must be re-exported from the authoring tool in HTML5.

Content launches but completion is not recording

  1. Confirm the Completion trigger is set correctly (see §4). A mismatch between what the course reports and what EmbayLMS is listening for is the most common cause.
  2. Confirm the learner is completing the full course — some authoring tools only set lesson_status = completed on the final slide.
  3. Check the SCORM debug log: Admin Panel → Courses → [course] → [learner’s name] → SCORM session log. This shows every value the course sent, including lesson_status and completion_status, and the timestamp of each commit.
  4. If the course reports failed and your completion trigger requires passed, the learner must pass a quiz embedded in the content before the module will mark complete.

Learner lost their progress after returning to the course

  1. Check the SCORM session log for a suspend_data entry. If none exists, the course did not save state on exit (some older courses only commit on LMSFinish).
  2. Confirm the learner’s browser allows cookies for the EmbayLMS domain. Blocked cookies prevent session state from being stored.
  3. If the course author did not implement cmi.suspend_data, position cannot be restored — this is a limitation of the source content, not EmbayLMS.

Upload validation fails — “Manifest not found”

The .zip file likely has an extra top-level folder wrapping all content. When you unzip the file, the imsmanifest.xml should be immediately visible — not inside a subfolder. Re-export from your authoring tool or manually re-zip selecting the contents of the folder (not the folder itself).


Configuration Reference

SettingLocationDescriptionDefault
Completion triggerModule → Settings → CompletionWhen to mark the module completePassed or completed
Minimum scoreModule → Settings → CompletionMinimum score thresholdNone
Max file sizePlatform-wideMaximum uncompressed package size500 MB
Version strategyModule → Content → Replace packageHow new versions affect in-progress learnersPreserve in-progress
Allowed SCORM versionsPlatform-wide1.2, 2004 (all editions), xAPI, cmi5All supported