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.

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

completion_status

success_status

Score

Grading on, passed

completed

passed

written if higher than stored

Grading on, failed

completed

failed (unless a prior Session in this launch already passed)

written if higher than stored

Grading off, finished

completed

unknown

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

lesson_status

Grading on, passed

passed

Grading on, failed

Not written—activity remains incomplete

Grading off, finished

completed

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

  1. Log into Rehearsal.

  2. Go to Roleplay > Environments.

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