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).
| Standard | Moodle support | How |
|---|---|---|
| SCORM 1.2 and 2004 | Native | SCORM activity (docs) |
| LTI 1.3 / Advantage | Native, in both directions | External tool, and Publish as LTI tool (docs) |
| LTI 1.1 and 2.0 | Native but deprecated | Legacy configurations only |
| AICC | Native, off by default | SCORM activity, AICC URL or HACP |
| cmi5 | No core support, no maintained plugin we could find | Proxy through a hosted service if you need it |
| xAPI | Partial, and widely misdescribed | See 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.3 | SCORM package | xAPI to an LRS | |
|---|---|---|---|
| Content updates | Instant, no re-import | Re-export and re-upload every change | Instant |
| Grades into the Moodle gradebook | Yes, via AGS | Yes, via the SCORM activity | No, not without extra work |
| Needs extra infrastructure | No | No | Yes, an LRS |
| Works offline or handed to a third party | No | Yes | No |
| Depth of data | Tool-side, as rich as the platform offers | Score, status, time | Statement-level, richest |
| Admin effort | One-off tool registration | Per-package upload | LRS 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
| Platform | SCORM | LTI 1.3 | xAPI |
|---|---|---|---|
| Moodle 5.x | Native | Native, both directions | Subsystem only, export via plugin |
| Canvas | No native player, typically added as an LTI tool | Native, Advantage | No native LRS |
| Blackboard Learn Ultra | Native, built on an embedded commercial engine | Native, Advantage | No native LRS |
| Microsoft Teams | Not a VLE, no SCORM | Consumes LTI 1.3 with partner VLEs | No |
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.