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.

Two meanings of "module"

On this page a module is an xAPI package — the ZIP you publish from Storyline, Rise, Captivate or iSpring. Learners see these under Learning Modules. That is separate from the course modules you build a course from in the course builder (which learners call parts). An xAPI package lives inside a course module's learning materials. See Course Modules.

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.

That decides whether the package itself is complete. Whether an incomplete package holds the learner up is a separate setting: in the course builder each package has a Required To Continue switch, and a package with it off never blocks the learner. See Course Modules and the xAPI reference.

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.