Skip to main content
New Participant
August 10, 2015
Question

Prevent Captivate from Sending Score

  • August 10, 2015
  • 1 reply
  • 512 views

We have several SCORM packages that are not scored - strictly informational.  However, when our learners complete the SCO they are upset to see a score of 0.  We're using Captivate 8 to publish as a SCORM 2004 package, and have the Completion criteria set to 100% slide views, and the Success criteria is not selected.  After playing with all of the possible options, we have decided that the only way to prevent Captivate from sending the score is to hack the code in the .js files.  We've tried this with the SCORM_utilities.js file and the scormdriver.js file, but Captivate still sends a score shortly after initializing the SCORM API.  From the debug logs:  SetValue('cmi.score.raw', '0') returned 'true' in 0 seconds

We have tested SCORM packages using SmartBuilder and can prevent the LMS from showing a score, but Captivate doesn't have the reporting flexibility that SmartBuilder offers.  Is there a way to prevent Captivate from sending a score? 

    This topic has been closed for replies.

    1 reply

    TLCMediaDesign
    Inspiring
    August 10, 2015

    You could try adding the bolded statement in the scormdriver.js to the noted function:

    function SCORM2004_SetScore(intScore, intMaxScore, intMinScore)

    {

        return true;

    var blnResult;

        var fltNormalizedScore;

        WriteToDebug("In SCORM2004_SetScore intScore=" + intScore + ", intMaxScore=" + intMaxScore + ", intMinScore=" + intMinScore);

        SCORM2004_ClearErrorInfo();

        fltNormalizedScore = intScore / 100;

        RoundToPrecision(fltNormalizedScore, 7);

        blnResult = SCORM2004_CallSetValue("cmi.score.raw", intScore);

        blnResult = SCORM2004_CallSetValue("cmi.score.max", intMaxScore) && blnResult;

        blnResult = SCORM2004_CallSetValue("cmi.score.min", intMinScore) && blnResult;

        blnResult = SCORM2004_CallSetValue("cmi.score.scaled", fltNormalizedScore) && blnResult;

        WriteToDebug("Returning " + blnResult);

        return blnResult;

    }

    New Participant
    August 10, 2015

    Thanks TLCMedia, but that didn't work.  It's still sending a score of 0 to the LMS.

    TLCMediaDesign
    Inspiring
    August 10, 2015

    There are 2 functions that can set a score. If you set the score to 100 would that be OK?

    function SCORM2004_SetScore(intScore, intMaxScore, intMinScore)

    {

       intScore = 100;

    var blnResult;

        var fltNormalizedScore;

        WriteToDebug("In SCORM2004_SetScore intScore=" + intScore + ", intMaxScore=" + intMaxScore + ", intMinScore=" + intMinScore);

        SCORM2004_ClearErrorInfo();

        fltNormalizedScore = intScore / 100;

        RoundToPrecision(fltNormalizedScore, 7);

        blnResult = SCORM2004_CallSetValue("cmi.score.raw", intScore);

        blnResult = SCORM2004_CallSetValue("cmi.score.max", intMaxScore) && blnResult;

        blnResult = SCORM2004_CallSetValue("cmi.score.min", intMinScore) && blnResult;

        blnResult = SCORM2004_CallSetValue("cmi.score.scaled", fltNormalizedScore) && blnResult;

        WriteToDebug("Returning " + blnResult);

        return blnResult;

    }

    and

    function SCORM2004_SetPointBasedScore(intScore, intMaxScore, intMinScore)

    {

    intScore = 100;  

    var blnResult;

        var fltCalculatedScore;

        WriteToDebug("In SCORM2004_SetPointBasedScore intScore=" + intScore + ", intMaxScore=" + intMaxScore + ", intMinScore=" + intMinScore);

        SCORM2004_ClearErrorInfo();

        if (intScore >= intMinScore)

        {

            fltCalculatedScore = intScore / intMaxScore;

        }

        else

        {

            WriteToDebug("intScore is lower than intMinScore. Overriding score with minscore for cmi.score.scaled");

            fltCalculatedScore = intMinScore / intMaxScore;

        }

        fltCalculatedScore = RoundToPrecision(fltCalculatedScore, 7);

        blnResult = SCORM2004_CallSetValue("cmi.score.raw", intScore);

        blnResult = SCORM2004_CallSetValue("cmi.score.max", intMaxScore) && blnResult;

        blnResult = SCORM2004_CallSetValue("cmi.score.min", intMinScore) && blnResult;

        blnResult = SCORM2004_CallSetValue("cmi.score.scaled", fltCalculatedScore) && blnResult;

        WriteToDebug("Returning " + blnResult);

        return blnResult;

    }