---
title: "Scol R"
description: "SCOL-R — Shareable Cross-Origin Learning Resources — solves a narrow problem well. A SCORM package must be uploaded to the LMS, but content that is really a web application wants to live on its own server and be updated without redistribution. SCOL-R packages a stub SCO whose index.html loads a remote URL in an iframe and relays the SCORM API across the origin boundary by postMessage, so the remote application can call LMSSetValue as if it were inside the package."
canonical_url: "https://scorm-tools.com/tools/scol-r"
last_updated: "2026-10-31T10:22:01.528Z"
---

SCOL-R — Shareable Cross-Origin Learning Resources — solves a narrow problem well. A SCORM package must be uploaded to the LMS, but content that is really a web application wants to live on its own server and be updated without redistribution. SCOL-R packages a stub SCO whose `index.html` loads a remote URL in an iframe and relays the SCORM API across the origin boundary by `postMessage`, so the remote application can call `LMSSetValue` as if it were inside the package.

The SCORM adapter is the substantial part: around 500 lines of TypeScript with unit tests, detecting SCORM 1.2 or 2004 at runtime and translating a single set of method names onto whichever API it found. It handles the awkward cases — already-initialised error codes differing between versions, `cmi.core.student_id` versus `cmi.learner_id`, `cmi.progress_measure` having no 1.2 equivalent — rather than pretending the two versions are the same.

It is Didask's production plumbing published as MIT, and the tell is the scope: bilingual English and French learner-facing error messages, but a README of a dozen lines and no published npm package. You are expected to read the source and build the zip yourself.

Fourteen stars, a handful of open issues, and commits through August 2026. Small, but alive and used in anger — reasonable to depend on if cross-origin hosting is the thing you need, and unnecessary complexity if it is not.
