Forum Discussion

LeeMillardButlr's avatar
LeeMillardButlr
Community Member
3 days ago

Limited Attempts Issue in Canvas LMS

Hello Community! I'm having issues with our Canvas LMS (SCORM lti tool) acknowledging limited attempts for SCORM packages. It's sending grades back to the gradebook, but allowing learners to launch the modules indefinitely after the set limit of attempts. We typically use SCORM 2004, 4th edition, but I've tested in SCORM 2004 3rd edition and SCORM 1.2 with the same results. I don't have a retake option setup in my Storyline module either.

So, I'm looking for help on the proper setup between Storyline and Canvas to find out what I could be doing wrong.

Additionally, is it still true that the LMS will record the last grade sent, no matter if it's higher or lower? That's been my understanding and just wondering if anything has changed. It seems to be the case when I test, as it records one attempt, but just keeps overriding the last grade with the latest grade.

Thanks in advance!

3 Replies

  • JoeFrancis​, you are a hero! 🦸 I have been testing the attempts setting in Canvas to no avail. It literally does not track attempts. So, yesterday and this morning I've been trying to tweak the scormdriver.js code to keep the highest score, not necessarily the last score. You pointing this single line out to me in your reply above is exactly what I needed and I tested it and it works great! Thank you so much for responding!  

  • JoeFrancis's avatar
    JoeFrancis
    Community Member

    In the 25+ years I've been working with various LMS', I haven't run into a case where the LMS doesn't record the last score sent, regardless if it's higher or lower than the previously-recorded score. That's why, using the authoring tools I've used during the same timeframe, I've had a course retrieve the recorded score at launch, and then at the end, compare it to the current score. If the current score is higher, I've had the course update the LMS with the new score. If not, the course did not update the LMS, preserving the previously-recorded score.

    The relevant JavaScript functions in Storyline are:

    SCORM 1.2

    GetScore();
    SetScore(intScore, intMaxScore, intMinScore);

    SCORM 2004:

    SCORM_GetScore();
    SCORM_SetScore(intScore, intMaxScore, intMinScore);

    The SetScore functions call the SCORM data elements:

    cmi.score.raw (cmi.core.score.raw) -- Learner's score
    cmi.score.max (cmi.core.score.max) -- Maximum possible score, typically 100
    cmi.score.min (cmi.core.score.min) -- Minimum possible score, typically 0

     

    The editable scormdriver.js file, which is inside of the lms folder in your ZIPped course file, includes this variable:

    var SCORE_CAN_ONLY_IMPROVE = false;
    //set this to true to ensure that on subsequent attempts, a learner's score can only go up

    If I'm reading the documentation right, changing that value from false to true should replace the need to code JavaScript in Storyline to retrieve, compare, and then update the learner's score on the LMS if it's higher than the last-recorded score.

  • Hi LeeMillardButlr,

    I understand you're running into an issue with Canvas not respecting the attempt limits for your SCORM packages. I know how important it is to ensure learners follow the correct number of attempts.

    From what you’ve described, this behavior is controlled by the LMS rather than the SCORM file itself. I recommend checking with your Canvas LMS admin to confirm how attempt limits are enforced on SCORM assignments and whether there are settings that may override those limits.

    Regarding the last grade being recorded, this also depends on how Canvas handles SCORM scoring logic. Each LMS may process and store the final attempt differently.

    To assist you further, I’ve opened a support case on your behalf so we can investigate this matter more thoroughly and conduct some tests. We’ll continue the conversation there and explore what’s happening behind the scenes.