Creating and Testing Roleplay SCORM Packages
Overview
SCORM is often used for packages that bundle course files and media into a ZIP you upload to your LMS. Roleplay’s export is different: it is a valid SCORM package, but a lightweight wrapper—your LMS launches it so learners open Roleplay in context, SCORM carries launch and session data, and completion-related results can be sent back to the LMS. Practice content stays hosted by Rehearsal; the ZIP mainly handles launch, communication, and reporting. You can also use the LMS to control who can open the activity (enrollments and access rules), alongside Roleplay settings.
How reporting and sessions work
The LMS does not receive transcripts or turn-by-turn detail; that stays in Rehearsal. The Roleplay Relay (the part running inside the LMS) writes standard SCORM fields your LMS uses for progress and gradebooks.
One launch, multiple Sessions
A single LMS launch keeps the SCORM session open for as long as the learner has the activity in their browser. Inside that launch, the learner can run multiple Roleplay Sessions—there is no per-launch attempt limit. The LMS receives a rolled-up best-so-far view across all Sessions in the launch:
|
Field |
Roll-up behavior |
|---|---|
|
Completion |
Set to completed on the first Session that reaches analysis; stays completed thereafter. |
|
Success / pass-fail |
Passed is sticky. Once any Session in the launch passes, the LMS is not downgraded to failed by a later worse Session. |
|
Score |
Best score wins. The LMS score updates only when a new Session’s score is higher than the stored score. |
|
Session time |
Written per Session; many LMSes accumulate this into a running total (behavior varies). |
A new LMS launch starts a fresh SCORM attempt. Roll-up applies within a launch, not across launches.
What gets written, and when
After each Roleplay Session that reaches analysis/results, the Relay updates the LMS.
SCORM 2004:
|
Session outcome |
|
|
Score |
|---|---|---|---|
|
Grading on, passed |
|
|
written if higher than stored |
|
Grading on, failed |
|
|
written if higher than stored |
|
Grading off, finished |
|
|
written if higher than stored |
SCORM 1.2:
1.2 has a single cmi.core.lesson_status field combining completion and success, which constrains how multi-Session roll-up can work. The Relay uses a conservative pattern:
|
Session outcome |
|
|---|---|
|
Grading on, passed |
|
|
Grading on, failed |
Not written—activity remains |
|
Grading off, finished |
|
This means in 1.2, a failing Session leaves the activity reading as in progress in the LMS rather than showing an explicit failed status. The learner can run additional Sessions, and if they later pass, the LMS updates to passed. For explicit fail reporting, use SCORM 2004.
Abandon / leave early
Leaving before reaching analysis on any Session leaves the activity incomplete in the LMS. The Session id is held in suspend_data so the next launch resumes the same Session. Once analysis completes on any Session, suspend_data clears and the next LMS launch starts a fresh attempt.
Learner identity
The LMS supplies the learner’s id and name via SCORM (e.g. cmi.core.student_id / cmi.learner_id); Roleplay does not send those back.
Status labels in the LMS
Until at least one Session reaches analysis, the activity is in progress. After analysis, the activity shows as completed—and, in 2004, also passed or failed when grading is enabled.
To verify what your package sends, use LMS reporting, ScormCloud (including the Debug Log), or browser dev tools—see Enabling debug mode.
Prerequisites
Before creating SCORM packages, ensure:
-
Access to Rehearsal with permissions to export environments
-
At least one Roleplay Environment
-
Roleplay enabled for your organization
-
An LMS that supports SCORM 1.2 or SCORM 2004
-
(Optional) SSO configured if you expect seamless login from the LMS
Creating a SCORM Package
Step 1: Open the environment
-
Log into Rehearsal.
-
Go to Roleplay > Environments.
-
Select the environment to export.
Step 2: Start export
Click Export to LMS.
Step 3: Configure settings
Filename — Defaults to the environment name; you can change it. Special characters are scrubbed for LMS compatibility.
Package format:
|
Format |
Typical use |
|---|---|
|
SCORM 1.2 |
Default choice when unsure; widest LMS compatibility. |
|
SCORM 2004 |
When your LMS documentation or features (e.g. sequencing, richer completion) call for 2004. |
Grading — Off by default. When on, set a passing percentage; the LMS can show passed vs failed. Score is still written when grading is off; grading only changes how success is interpreted.
Step 4: Download
Click Export to download the .zip file.
How Roleplay runs in the LMS
Two parts, because the practice session cannot run reliably inside the LMS iframe (browser security around media and embedding).
|
Part |
Where it runs |
Role |
|---|---|---|
|
Relay |
Iframe on the LMS course page |
Talks to the LMS SCORM API, shows launch UI, stays visible while the learner practices elsewhere. |
|
Session |
Separate browser window |
The actual Roleplay practice flow, SSO or login, and communication back to the Relay (e.g. via postMessage). |
LMS page
└── Relay (iframe) ←→ Session (separate window)
↓
SCORM API → LMS
- LMS loads the Relay in the course player (prefer inline / iframe—see Deploying).
- Learner starts Roleplay from the Relay; the Session opens in a new window.
- Learner practices in the Session window.
- Session sends results to the Relay; Relay writes SCORM data to the LMS.
Deploying to your LMS
- In the course or module, use Import package / Add SCORM (wording varies).
- Upload the .zip.
- Set LMS options (due dates, attempts, visibility).
- Prefer launch in the course player / iframe, not as a popup-only player, so the Relay stays in context while the Session uses its own window.
SSO: If configured, learners are signed in when the Session opens. Without SSO, they sign in in the Session window; resume behavior still depends on consistent user identity and LMS-stored suspend data.
Testing with ScormCloud
ScormCloud is a free way to sanity-check a package before production.
- Sign in and use Add Content → choose your .zip → Import Course.
- Confirm parser logs are clean and the learning standard matches your export (1.2 vs 2004).
- Launch; allow popups if prompted, or adjust the sandbox launch mode and try again.
Quick validation checklist:
|
Scenario |
What to check |
|---|---|
|
Abandon early (no full turn / no analysis) |
Completion stays incomplete; score not meaningful. |
|
Complete through analysis / results |
Complete; score and session time recorded. |
|
Second completion, higher score |
LMS score updates up. |
|
Second completion, lower score |
LMS score unchanged (best score kept); time may still accumulate per LMS rules. |
Debug log (ScormCloud)
In the course sandbox, open Debug Log and the latest entry to see SetValue traffic. For SCORM 1.2, common elements include cmi.core.score.raw, cmi.core.lesson_status, and cmi.core.session_time. SCORM 2004 uses different element names for the same ideas.
Best practices
- Names: Use clear ZIP names tied to the course or audience (e.g. Sales-negotiation-Q1-2026.zip), not generic export.zip.
- Grading: Enable when you need pass/fail in the LMS; leave off for completion-only or lower-stakes practice.
- Before go-live: ScormCloud → LMS staging → have someone run through as a learner, including a second attempt and an abandoned session.
- Tracking exports: Note which environment and date/version a ZIP came from if you may re-export later.
Troubleshooting
Enabling debug mode
For deeper console output from the Relay and Session windows:
- Unzip the package, edit data/environment.json, set "debug": true, re-zip, re-upload.
Open developer tools (F12 or Cmd+Option+I) in both the Relay context and the Session window. Errors usually log without debug; debug adds detail.
Common issues
|
Issue |
Likely cause |
What to try |
|---|---|---|
|
Won’t resume |
Prior run actually completed (suspend cleared), LMS data reset, or different user |
Confirm same learner; check suspend data / session id in debug or ScormCloud log. |
|
Score didn’t change |
New score ≤ stored score (see reporting), API failure, or LMS UI lag |
Confirm score increased; inspect SetValue in debug; check gradebook vs player. |
|
Stays incomplete |
Learner left before analysis/results, SCORM write failed, or LMS completion rules |
Ensure results screen is reached; check completion SetValue and LMS activity settings. |
|
Session window blocked |
Popup blocker |
Allow popups for LMS and Rehearsal; use iframe-style launch for the package when possible. |
|
Mic/camera in Session |
Permissions, HTTP vs HTTPS |
Use HTTPS; grant media access for the Rehearsal domain in the Session window. |
Getting help
Include package filename, SCORM version, LMS product/version, browser, steps to reproduce, screenshots, and console or ScormCloud debug output when you contact Customer Solutions.
Additional resources
FAQ
Can learners use Roleplay outside the LMS?
If they have direct Rehearsal access, yes. LMS tracking is separate.
Who controls attempts?
Your LMS activity settings, not the ZIP.
Interrupted session (crash, network)?
Suspend data usually allows resume on next launch for the same user.
Redeploy a new ZIP after go-live?
Possible, but it can affect stored progress; test and consider a new activity for big changes.
Offline?
No—the Session needs to reach Rehearsal.
Customize Relay branding?
Not supported; Relay uses standard Rehearsal presentation.
Changelog
|
Version |
Date |
Changes |
|---|---|---|
|
2.0 |
Apr 2026 |
Simplified structure; merged reporting/session content; trimmed duplicate tables and FAQs. |
|
1.0 |
Jan 2026 |
Initial knowledgebase article created |
Need help? Submit a ticket to Customer Solutions for SCORM export and deployment support