WHEN will Storyline be able to save a CUSTOM quiz score to an LMS?

This issue has been discussed for years on this forum and still Storyline stops us from saving a custom score variable to an LMS. Various tricks and workarounds have been suggested but they all dodge the fundamental need to be able to simply set 'results.scorepoints' = a custom variable.

My requirement is this: the user completes an exercise in which they make decisions on actions to take, equipment to use, etc. The outcome of this assessment of 'judgement' is a score (e.g: 73), based on the decisions an expert would make. I now want to send this numeric value from Storyline to the LMS as their quiz score. And Storyline won't do it. 

If there were only a few possible scores then after completing my test I could trick SL by running automatically through a sequence of hidden 'Numeric Entry' quiz questions, each awarding a successively greater score. (e.g: If Entry = 0, score = 0, If Entry = 1, Score =1, etc.). I could get away with 20 checks if I awarded scores at 5% intervals but then the test results would be rounded, which loses their accuracy. 

I've also tricked it by running automatically through a set of 'hidden' Multi-Choice questions, setting each answer to award a different score value ('Score by Choice') and then forcing each answer State to be set as 'Selected' according to the value of my custom quiz score. 

But what an absolute pain in the backside these silly 'workarounds' are, both to set up and to edit!

Please, please Articulate - listen to what your customers want and just do it. It can't be difficult.

 

 

12 Replies
Dave Cox

Hi Tim,

I have to agree with you. I've developed a work around that works fine, but there really should be a way as content developers that we can have better control of this from the software so we can set up courses to meet our needs. In addition to your example, we often have to create multi-language courses with multi-language quizzes. It would be nice to be able to select the results from the selected quiz, and ignore the unused quiz based on a language selection when the course is started. We need to do this so course participation can be tracked for all users within an organization. There isn't a good way to do this in many LMS systems, so we need to provide this from the course. It is also an issue of not needed to maintain multiple course files. 

To my thinking, it doesn't really matter how difficult this is to do. We pay a lot of money for this software to meet our goals. I don't think it is too much to expect for you to provide the options that we need.

Dave Cox

Hi Tim,

Here is an example of some code that I use:

var p = GetPlayer();
var cs = p.GetVar("CurrentScore");
var ns = 10; // Number of Question Slides
var currentScorePercent = Math.round(cs / ns * 10);
p.SetVar("CurrentScorePercent", currentScorePercent );
lmsAPI.SCORM_SetScore(currentScorePercent,100,0);

CurrentScore, CurrentScorePercent and PassScorePercent are variables that I create in the project.

Phil Mayor

Sorry Tim Dave beat me to it, i am not on my development machine at the moment so don't have access to my code snippets, there is one line I normally add to the master to ensure storyline does not overwrite the score, you can achieve this without javascript  by tracking by slides and have a slide the user cannot access.

You may also want to set status

For completed: SetStatus("completed");

Ashley Schwartau

I can get the score to pass through but I can't get the right status to pass through. With a game, I want the user to "fail" if they get less than 80% but it always shows them as "PASSED" or "COMPLETE" even with a failing score. What am I doing wrong? (I'm new to JS and have cobbled this together from other people's suggestions.)

 

var player = GetPlayer();

var lmsAPI = parent;

lmsAPI.SetScore(player.GetVar("15898GameScore"), 100, 80);

if (player.GetVar("15898GameScore")>=80)

SetStatus("passed");

else

SetStatus("failed");