Skip to content

Storyline & xAPI Modules

An uploaded Storyline (or other xAPI/Tin Can) module plays fine, but never gets marked complete in the learner's record. This is almost always a publish-time setting in the authoring tool.

How LecturePanda decides a module is complete

LecturePanda marks an xAPI module complete when it receives either of these statements from the module:

  1. A completed verb statement (http://adlnet.gov/expapi/verbs/completed), or
  2. A quiz submission statement — a passed/answered quiz result.

A quiz is only one way to complete a module. A module with no quiz can still complete — it just needs to be published with a slides-viewed completion method so it fires the completed statement.

Fix: set the completion method at publish time

In Storyline, completion tracking is configured when you publish — not in Story View. In Storyline 360:

  1. Home tab → Publish → choose LMS
  2. Set the output format to Tin Can API (xAPI)
  3. Click Reporting and Tracking → open the Tracking tab
  4. Pick a completion method:
    • Track using number of slides viewed — for modules with no quiz. Set it to the number of slides that should count as complete (usually all of them). This fires the completed verb.
    • Track using quiz result — for quiz-based modules. Completion fires when the learner passes the results slide.
  5. Publish, save the ZIP, and re-upload it to LecturePanda

Then walk through the re-uploaded module as a learner — it should flip to Complete once the tracking condition is met.

Common reasons completion never fires

  1. No completion method was chosen at all in the Tracking tab — the most common cause.
  2. A custom trigger fires the wrong verb (passed or progressed instead of completed).
  3. The completion condition sits on a slide learners never reach — for example an optional final summary slide.

Module sends nothing at all: check the title

There's a rarer failure mode where the module doesn't just miss the completion statement — it never communicates with LecturePanda at all, no matter how the tracking is configured. The usual cause is a special character in the lesson or module title.

At publish time, Storyline writes the title into the module's JavaScript runtime. Certain characters break that file so the whole tracking runtime fails to load:

  • Ampersand (&) — the most common culprit. Use "and" instead.
  • Hidden line breaks — invisible characters picked up when a title was pasted from Word or an email.
  • Angle brackets (<, >), quotes, and backticks.

Fix: open the lesson properties, delete the title, and retype it cleanly (type, don't paste). Avoid & in titles. Republish as Tin Can API and re-upload. If one title had a bad character, scan the rest of your course titles too.

Diagnostic for the technically inclined

Open the published module in a browser with dev tools. If completion is configured but never fires, watch the Network tab for statement POSTs when you finish the module. If no statements fire at all and the Console shows a JavaScript syntax error in scormdriver.js, that's the title-character problem above.

About LRS credentials

You don't need to configure an LRS endpoint or credentials in your authoring tool. LecturePanda injects the connection automatically when the module launches. Just publish for Tin Can API (xAPI) and upload the ZIP.