Search documentation

Search documentation pages and headings.

Skip to content

Learning content · How-to guide

SCORM 1.2 and 2004

Upload, validate, preview, and track SCORM course packages.

Kokobi launches SCORM packages and saves their runtime data as learner attempts. It supports SCORM 1.2 and the implemented SCORM 2004 runtime subset. SCORM 2004 packages must identify themselves as CAM 1.3 or 2004 3rd Edition in the manifest.

Package Requirements#

A module upload must be:

  • A ZIP archive with the application/zip file type.
  • No larger than 1 GB.
  • A valid SCORM package with imsmanifest.xml at the root of the archive.
  • Exported as SCORM 1.2 or SCORM 2004 by your authoring tool.

Kokobi reads the manifest, validates archive paths, extracts the package resources, and detects the SCORM version. Hidden operating-system files such as macOS metadata are ignored.

Only upload content you trust. SCORM packages contain HTML and JavaScript that run in the learner experience.

Upload a Module#

  1. Open Admin > Courses and select a course.
  2. Open the Modules tab.
  3. Select Add new > Module.
  4. Optionally enter a module name.
  5. Select the SCORM ZIP file and start the upload.
  6. Wait for validation, extraction, and upload to finish.
  7. Preview the module.

The current admin language determines the module locale. Upload and test a package for each locale the course supports.

Choose Completion Behavior#

Each course has a completion rule:

Course ruleSuccessful SCORM result
Passedpassed
Completedcompleted
Eitherpassed or completed

SCORM 1.2 usually reports completion through cmi.core.lesson_status. SCORM 2004 separates cmi.completion_status and cmi.success_status; when a success status is available, Kokobi uses it to distinguish passed and failed attempts.

Choose the rule that matches the package's published behavior. For example, use Passed for an assessment that must be passed and Completed for content that has no pass/fail result.

Learner Attempts#

When a learner launches a course, Kokobi creates an attempt and exposes the matching SCORM runtime API to the package. As the package communicates with that API, Kokobi stores values such as:

  • Completion and success status.
  • Score, including raw, minimum, and maximum values when supplied.
  • Lesson location or bookmark.
  • Suspend data used by the package to resume a session.
  • Other runtime values sent by the module.

Attempts appear as not-started, in-progress, completed, passed, or failed. Administrators can review the latest attempt from the course learner table and the course overview.

Kokobi saves changes after the package calls SetValue; an explicit SCORM Commit call does not trigger a separate save. The statuses completed, passed, and failed make an attempt terminal. Kokobi cannot determine an outcome if the package never reports one of those statuses.

Test Before Inviting Learners#

Use the module preview to verify:

  • The first screen loads without missing assets.
  • Navigation and interactions work.
  • Audio, video, fonts, and external resources load.
  • The package can call the expected SCORM API without visible errors.

A normal preview starts with fresh runtime data and does not save changes or display the reported status. It cannot verify persisted completion or resume behavior. To inspect a real learner's saved state without changing it, use the learner progress preview available from the course learner table when your role permits it.

Troubleshooting#

The ZIP is rejected#

  • Confirm the file is a ZIP archive rather than another compressed format.
  • Confirm imsmanifest.xml is at the root of the exported SCORM package.
  • Re-export from the authoring tool as SCORM 1.2 or SCORM 2004 3rd Edition.
  • Confirm the archive is under 1 GB.

The module opens but does not complete#

  • Check what status the package reports in its SCORM debug or publish settings.
  • Compare that status with the course completion rule.
  • Confirm the package sends its final runtime values through SetValue before it exits.
  • Test a fresh learner attempt after changing publish settings.

Progress does not resume#

  • Confirm the package writes bookmark and suspend data.
  • Confirm it sends resume data before the browser window closes.
  • Check whether the authoring tool disables resume behavior in its publish settings.