SCORM 1.2 course returns an empty string in Moodle

SCORM 1.2 course can't pass score (cmi.core.score.raw) to Moodle LMS on mobile devices only. It returns an empty string in Moodle.

I have developed a sample test file in Articulate Storyline 2 and published it as SCORM 1.2 which don't seem to trigger the right function call ( LMSSetValue cmi.core.score.raw ) in Moodle LMS.

In order to pass the score value to Moodle, i used the following JS code in a trigger on timeline start at end of course :

/*Get player to reference*/

var player = GetPlayer();

/*get LMS API*/

var lmsAPI = parent;

/*set score; the first number is the score*/

lmsAPI.SetScore(player.GetVar("14543GameScore"), 100, 0);

/*set status; possible values: "completed","incomplete", "failed", "passed"*/

if (player.GetVar("14543GameScore")>= player.GetVar("14543PassingPercentage"))
{
SetStatus("passed");
}
else
{
SetStatus("failed");
}


I published it as SCORM 1.2 course with following settings :

Report Status to LMS : Passed / Failed
Track using number of slides viewed
Include HTML5 output (for mobile devices)

After uploading it to Moodle as SCORM 1.2 package, it can't pass score value and status to Moodle on mobile devices only.
But same course passes score and status to Moodle on desktop.

So, i tested it on SCORM Cloud and Blackboard LMS to identify any issue with my course. To my surprise, it can easily pass score and status to SCORM Cloud and Balckboard on mobile devices as well as desktop.

I have tested with Moodle 2.6.5 and 3.1 with debugging and API Activity Log enabled.
I noticed in the log it can't trigger the right function call, i.e. LMSSetValue (cmi.core.score.raw, min and max) on mobile devices.

I have also attached the Articulate Storyline 2 course file (.story) , published output as SCORM 1.2 and Moodle API Activity Log.

49 Replies
Abhishek Roy

Using this JS code, solves the problem :) Atlast found a solution after a month.

This works both on desktop (flash version) and mobile / tablet devices (html5 version) . It's specially for Moodle on mobile devices. Had to remove var lmsAPI = parent; to fix the issue .

/Get player to reference/

var player = GetPlayer();

/set score; the first number is the score/

lmsAPI.SetScore(player.GetVar("14543GameScore"), 100, 0);

/set status; possible values: "completed","incomplete", "failed", "passed"/

if (player.GetVar("14543GameScore")>= player.GetVar("14543PassingPercentage"))
{ SetStatus("passed"); }

else
{ SetStatus("failed"); }