SCORM learning packages
Import, review and deliver interactive SCORM 1.2 activities while preserving assigned versions and learner progress.
Supported scope
This release introduces single-SCO SCORM 1.2 import and playback. A SCO is one launchable activity that controls its own internal pages. The package must be a self-contained ZIP with imsmanifest.xml at its root. SCORM 2004, multi-SCO sequencing, manifest prerequisites/mastery/time-limit/launch-data extensions, XML base paths, xAPI, cmi5, external assets and pop-up windows are not supported in this flow.
Your operator must configure the package scanner and isolated HTTPS content hosts. Package compatibility is qualified per export, not by authoring-tool brand. Test the exact export you intend to use before assigning it to learners.
- Maximum ZIP: 50 MiB; expanded files: 256 MiB total, 64 MiB each; company storage budget: 1 GiB.
- Corrupt files, traversal paths, duplicate names, nested archives and ambiguous launch paths are rejected. Malware scanning must explicitly pass.
- The responsive surrounding player cannot make a fixed-width third-party course responsive. Preview keyboard use and your supported device sizes.
Import and review
- Open Author studio → Learning packages → Import package. Choose or drop your ZIP.
- Wait for upload, archive validation and malware scanning. Failed imports do not become playable packages.
- Open the preview. Review every screen, audio controls, completion rules, keyboard navigation, mobile layout and your rights to distribute the content.
- Confirm your review and choose Make available to authors. Preview sessions never create learner credit.
- In Course Studio, add a Learning package section or choose SCORM learning package as the activity type. Select the reviewed package version, add learner instructions, then save and publish the course.
- Assign the published course using the existing company assignment flow.
Resume, save and complete
Learners choose Open activity from their assigned course. Reopen / resume restores the latest attempt's supported bookmark, suspend data, scores, objectives, interactions and accumulated session time. The package decides how to use that state.
Use Save progress during a session and Save & exit before leaving. A failed save remains visible; stay on the page and retry. Browser termination, network loss and a package that never writes its state cannot be recovered automatically. No offline-save claim is made.
The LMS marks the activity complete only after an acknowledged Finish with status passed or completed. Incomplete, failed, browsed and not attempted do not complete it. Ordinary Next buttons cannot bypass package completion.
New attempt starts fresh but retains previous attempts and any earned completion. Reopening revokes earlier launches of the same activity. Signing out, suspension, changed access or session expiry prevents further saves.
Update without resetting progress
Upload new version on an existing package to create an immutable replacement. Existing course versions and assignments retain their original package. Select the new version in the draft, review and publish it for future assignments. This does not migrate suspend data between incompatible exports or reset existing enrolments.
The library shows up to 200 recent versions and counts published activity references, not distinct learners. Removing old versions and automated retention are not exposed yet.
Understand export options
- Original ZIP: authorised authors can download exactly the uploaded package. Licensing rights remain your responsibility.
- Portable course export: converting a native ZubLMS course into a self-contained SCORM ZIP is a later delivery phase; it is not provided by Original ZIP.
- Hosted distribution: a small launcher that stays connected to ZubLMS is separate from portable export and requires a destination integration. It is not enabled in this release.
Troubleshooting
- Validation failed: export as SCORM 1.2 single SCO; put the manifest at ZIP root; remove nested ZIPs and external launch URLs. A ZIP containing a folder containing the manifest is not equivalent.
- Scanner unavailable or rejected: contact your operator. Never bypass the scanner; inspect scanner health, signatures, limits and the original export.
- Blank or blocked content: check the exact launch file and relative paths. Network-hosted scripts, remote media, popups and embedded third-party sites are intentionally blocked.
- Not saved: check connectivity and retry before leaving. If the session expired or another tab replaced it, reopen from the LMS. Only previously acknowledged data can be restored.
- Course not complete: the package must send passed or completed and successfully finish. A high score alone is insufficient.
API integration
The API reference documents packages-list, packages-import, packages-approve, packages-original and packages-launch. These are browser-session endpoints with company and role checks; protected writes require the session CSRF token and matching Origin. They are not public unauthenticated upload endpoints or general partner API keys.
Content launch URLs are temporary capabilities. Do not copy them into analytics, support tickets, logs or documentation. Reopen through the app instead.