Blog DeploymentAnalyticsGuide

Putting immersive training into Moodle: SCORM, LTI or xAPI

Moodle supports SCORM and LTI 1.3 natively, has no LRS of its own and only partial xAPI. Which route to pick for 360 and VR scenarios, and what breaks.

George Bellwood Node XR

 · 6 min read

A quiet IT office desk with two monitors dimmed to standby, a patch panel behind and a single cyan status light on a switch

For most institutions the right answer is LTI 1.3, not SCORM. Moodle supports both natively, but an LTI 1.3 launch leaves the scenario where it is built, so updates appear immediately and grades come back into the gradebook, while a SCORM package is a frozen copy you have to re-export and re-upload every time the content changes. SCORM still wins in one case: when a scenario has to be archived, exported or run somewhere Moodle cannot reach.

Key takeaway: Use LTI 1.3 for live scenarios inside a VLE you control, SCORM when a package has to be handed over or archived, and xAPI only if you already have a learning record store. Moodle does not contain one.

Where Moodle stands today

Current release is Moodle 5.2, released 20 April 2026, with 4.5 LTS carrying security fixes to October 2027 and 5.3 LTS due in October 2026 (moodledev.io).

StandardMoodle supportHow
SCORM 1.2 and 2004NativeSCORM activity (docs)
LTI 1.3 / AdvantageNative, in both directionsExternal tool, and Publish as LTI tool (docs)
LTI 1.1 and 2.0Native but deprecatedLegacy configurations only
AICCNative, off by defaultSCORM activity, AICC URL or HACP
cmi5No core support, no maintained plugin we could findProxy through a hosted service if you need it
xAPIPartial, and widely misdescribedSee below

The xAPI detail that trips people up

Moodle has an xAPI subsystem, used internally by the H5P activity, and it stores state. Moodle’s own developer documentation is explicit that “the final objective of Moodle xAPI library is NOT to implement a full LRS inside Moodle” (moodledev.io). Core does not accept statements from arbitrary external content and does not forward anything to an external LRS.

Sending Moodle activity out to an LRS needs the Logstore xAPI plugin, which emits around ninety Moodle events. Its most recent release is from February 2025 and is declared for Moodle 4.1 to 4.5 only, not for the 5.x line (moodle.org/plugins). If you are on 5.x and your analytics plan depends on that plugin, check it before you design around it. Receiving statements from an external immersive app is a separate problem again, and the old xAPI Launch Link plugin has not shipped a build since 2018.

You still need an LRS

Moodle has none. The options are hosted: SCORM Cloud, Veracity Learning, Watershed and similar. Learning Locker is worth a specific warning, because it is still recommended in older blog posts: the open-source edition’s last GitHub release was v7.1.1 in November 2021, and development moved to the commercial product. We could not find a formal end-of-life notice, so the accurate statement is “no releases since 2021” rather than “discontinued”, but either way it is not a safe default for a new deployment.

If you want the longer version of what immersive content can report, we wrote that up in what you can actually measure from immersive training.

Choosing a route

LTI 1.3SCORM packagexAPI to an LRS
Content updatesInstant, no re-importRe-export and re-upload every changeInstant
Grades into the Moodle gradebookYes, via AGSYes, via the SCORM activityNo, not without extra work
Needs extra infrastructureNoNoYes, an LRS
Works offline or handed to a third partyNoYesNo
Depth of dataTool-side, as rich as the platform offersScore, status, timeStatement-level, richest
Admin effortOne-off tool registrationPer-package uploadLRS plus plumbing

In practice: LTI for live teaching, SCORM for compliance exports and for partners who insist on a file, xAPI when someone has already bought an LRS and wants scenario data in it alongside everything else.

Setting up LTI 1.3, in the order it actually happens

An admin configures this at Site administration > Plugins > Activity modules > External tool > Manage tools, by either pasting a dynamic registration URL or entering the tool URL, public keyset URL, initiate login URL and redirection URIs by hand. Moodle then issues a client ID and deployment ID back to the tool.

Three LTI Advantage services are worth switching on deliberately:

  • Deep Linking gives the tutor a “select content” picker, so they choose the specific scenario when adding the activity rather than pasting a link.
  • Assignment and Grade Services writes the score back to the Moodle gradebook. Note Moodle’s own wording: the grade is always given by the tool, so your marking scheme lives on the platform side.
  • Names and Role Provisioning passes the roster, which is what lets per-learner reporting line up without anyone keying in names.

Set the privacy toggles per tool at the same time. In most institutions that conversation with the data protection lead is longer than the configuration.

What breaks, and how to avoid it

Upload size. There is no SCORM-specific limit. The ceiling is the chain of web server body size, PHP upload_max_filesize and post_max_size, then the site, course and activity limits, and the most restrictive one wins (docs). For immersive content this bites immediately, because 360 media is large.

Packaging media. Do not bundle 360 video into the SCORM zip. Keep media on a CDN and reference it, which keeps the package small and lets you re-encode without re-exporting. The trade is that you now have to get CORS and certificates right, and mixed content over plain HTTP is the most common cause of a scenario that plays everywhere except inside Moodle.

Iframes and headsets. A SCORM package plays inside an iframe, which needs explicit permissions for fullscreen and immersive sessions. If learners will enter a headset session from inside the VLE, test that path early, or use LTI with a new-window launch and save yourself the afternoon.

External package types. Moodle can play a remote imsmanifest.xml or fetch a remote package.zip rather than taking an upload, but these are disabled by default and an admin has to enable them.

The other VLEs, briefly

PlatformSCORMLTI 1.3xAPI
Moodle 5.xNativeNative, both directionsSubsystem only, export via plugin
CanvasNo native player, typically added as an LTI toolNative, AdvantageNo native LRS
Blackboard Learn UltraNative, built on an embedded commercial engineNative, AdvantageNo native LRS
Microsoft TeamsNot a VLE, no SCORMConsumes LTI 1.3 with partner VLEsNo

Check the Canvas and Blackboard rows against your own tenancy before quoting them in a tender. Both change with licensing, and Canvas in particular depends on what your institution has bought.

The short answer

For a Moodle VR integration, launch the scenario over LTI 1.3 so content stays live and grades return through Assignment and Grade Services, and keep SCORM for exports, archives and partners who need a file. Moodle’s xAPI support is a developer subsystem rather than a learning record store, and the main export plugin is only declared up to Moodle 4.5, so plan analytics around an external LRS or around the platform’s own reporting instead.

See the integrations overview and the LMS page for the full list of supported standards, or ask us to run a test launch into your Moodle.

Share this article

See Node XR in action.

Book a 30-minute guided walkthrough with our team. No commitment.