Skip to content
  • There are no suggestions because the search field is empty.

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:

Category

What gets sent

Notes

Completion / success

SCORM completion and, if grading is on, pass/fail

SCORM 1.2: cmi.core.lesson_status. SCORM 2004: cmi.completion_status and cmi.success_status.

Score

Numeric score (e.g. 1.2: cmi.core.score.raw; 2004: the score elements for that version)

Written when the learner reaches the reporting point below. On later attempts, the LMS score updates only if the new score is higher.

Session time

Time for the attempt being reported

Many LMS products add this to a running total; behavior varies by platform.

Suspend data

Opaque data the LMS stores and returns on next launch

Holds an active session id for resume after a close; cleared when analysis completes.

When values are written: Completion, score, and session time are committed when the learner finishes analysis and views the results. Leaving before that usually leaves the activity incomplete in the LMS.

Learner identity: The LMS supplies the learner’s id and name via SCORM (e.g. cmi.core.student_id / cmi.learner_id and name fields); Roleplay does not send those back.

Resume: While a session is incomplete, its id stays in suspend data so the next launch can continue the same session. After analysis completes, that clears and the next launch starts fresh.

Status labels: Until reporting runs, the activity is effectively in progress. After analysis, you see completed (and passed/failed if 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:

  • ✅ You have access to Rehearsal with appropriate permissions

  • ✅ You have authored at least one Roleplay Environment

  • ✅ Your organization has Roleplay enabled

  • ✅ Your LMS supports SCORM 1.2 or SCORM 2004

  • ✅ (Optional) SSO is configured if you expect seamless login from the LMS


Creating a SCORM Package

Step 1: Open the Environment

  1. Log into Rehearsal

  2. Go to Roleplay > Environments

  3. Select the environment you want 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
  1. LMS loads the Relay in the course player (prefer inline / iframe—see Deploying).
  2. Learner starts Roleplay from the Relay; the Session opens in a new window.
  3. Learner practices in the Session window.
  4. Session sends results to the Relay; Relay writes SCORM data to the LMS.

Deploying to your LMS

  1. In the course or module, use Import package / Add SCORM (wording varies).
  2. Upload the .zip.
  3. Set LMS options (due dates, attempts, visibility).
  4. 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.

  1. Sign in and use Add Content → choose your .zipImport Course.
  2. Confirm parser logs are clean and the learning standard matches your export (1.2 vs 2004).
  3. 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:

  1. 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