SL2 & SL360 "Restricted" Menu Navigation and Next Button - Solution / Workaround

Nov 13, 2014

Many developers are having an issue with the new "restricted" menu navigation logic in SL2.  I have come up with, what I think is a very quick, simple and viable solution.  To re-cap the issue:

  •  In SL1 the Menu Navigation options include “restricted” which allows learners to view the current slide and any slide they've previously viewed, but not use the menu to jump ahead or skip over slides.  This only restricts the learners' ability to click on menu items to navigate. If the slides included a Previous or Next button, users can still be click those to freely move forward and backward in the course at will.  Content developers could add triggers/variables to control the previous/next buttons, as they saw fit.
  • In SL2 the Menu Navigation “Restricted” logic was changed.  The restricted option still allows learners to view the current slide and any slide they've previously viewed, but not use the menu to jump ahead or skip over slides.  However, this now also disables the Next button and does not allow users to advance forward until the timeline ends.  Triggers/variables do not work to over-ride this logic change.

Here’s what I have come up with:

  1. Create your .story project and set the navigation menu options to “Free”.  This will ensure that the next and previous buttons are not restricted.  (Don't worry, we will adjust the menu navigation itself in a bit).  If needed, go ahead and create triggers/variables to control the previous/next button navigation as desired.
  2. Publish your .story project.  Go ahead and “zip” if the course will be uploaded to an LMS.
  3. In the “publish successful” pop-up window, click “OPEN” to open the Storyline output directory.
  4. Double-click and open the story_content folder.
  5. Open the frame.xml file (this can be opened with Notepad)
  6. Find and replace the following:
    <option name="flow" value="free" />
    <option name="flow" value="restricted" />
  7. Save and close the frame.xml file.
  8. Launch and play your course.  The navigation menu is now restricted, but the previous/next buttons can be used at will.  (Any triggers/variables that were added to control the previous/next button navigation should work as developed.)

If uploading to an LMS, you have a couple more steps.

  1. In the file directory, right-click and "copy" the modified frame.xml file.
  2. Navigate to the story_content folder in the ZIPPED file.
  3. Right-click and "paste" (replace) the modified file here.  You can now upload to your LMS.

This seems kind of tricky, but it is actually very easy!  And once you’ve done it a couple of times, you will see that it literally only takes a few seconds to do!

Hope this helps,


Addendum for HTML 5 (added 10/11/2016)

If publishing to HTML 5, the frame.js file must also be changed.  This can be done by following the below steps.  (NOTE: These steps must be done prior to uploading to LMS, if launching through an LMS.)

  1. Open the frame.js file (recommend opening with Notepad)
  2. Find and replace the following:
  3. Save and close the frame.js file.
192 Replies
Eric Allen

Hi Christie, Jon's suggestion DID in fact work for me in HTML5 :)

So combining the very first suggestion of changing frame.xml and Jon's suggestion of changing frame.js, I had both flash and HTML5 output covered in restricting navigation via the Outline (without effecting the player controls) by changing the values from "free" to "restricted" in both files.   It's worth noting that there are no common terms around where it says "free" in the frame.js file, so what I did was a "replace in files" in a text editor on "|free|" and changed it to "|restricted|" and that worked.  Then the frame.xml change worked exactly as described in the first suggestion in this thread.

Very happy to have found this.

Jazzmine O

Thank you so much. Sad that I'm still not done with this blasted course (just when you think all is well, you spend an hour trying to figure out why your bloomin' "next" buttons don't work). But hopefully after this, we'll be well on our way. You're a life saver, Bobbi. Or a hair saver at the very least. Perhaps a nail saver too.

Andrew Renner

I can confirm that on the HTML5 side - republishing the site with the menu set to "free"enabled the Next button triggers but a side effect was that the whole menu was now "free".  Changing the frame.xml file did not seem to produce the desired effect.  Once the change was made in the frame.js file the menu behaves in a restricted manner.  Thanks ERIC!!

changed frame.js

"menuoptions|135|free|flow" to "menuoptions|135|restricted|flow"

Michael Hardin

Thanks Bobbi, this workaround is great and pretty simple.  The HTML hack works perfectly, but I ran into an issue with the HTML5 hack on the frame.js file.  Maybe it's due to an update to SL2, but I can't find "menuoptions|135|free" all together.  Instead I found each word separated by other code.  However, there was only one "free" and when I changed it to "restricted" and tested it, that worked.  Thanks again.


Eric Allen

Hi Bobbi, first of all, wonderful post, as I think I may have commented earlier on.  One thing I want to note:  I would replace the following instruction:

Find and replace the following:

with this:

Find and replace the following:


as the frame.js file does not seem to consistently put "|free|" next to any other options (i.e. "menuoptions|135").

Dave Cox

When the menu is locked, each menu item unlocks as the slide is visited. So if you have your options set to resume the course, the menu items that were previously unlocked will remain unlocked. 

When resume is allowed, the student is given the option to resume or restart the course. If the student chooses restart, then the menu options will again be locked.

Bobbi Bailey


In SL2 the Menu Navigation “Restricted” logic was changed. The restricted option allows learners to view the current slide and any slide they've previously viewed, but cannot use the menu to jump or skip over slides (which is good).  However, this also disables the Next button and does not allow users to advance forward until the timeline ends (which often, we don't want to require the user to be forced to wait for the timeline end).  Triggers/variables do not work to over-ride this logic change.

This fix keeps the menu locked, but enables the next button (prior to timeline end).

Dave Cox

Hi Ryan,

There are several ways that you can do this. The way I do it, is I have a counter that tracks the last slide that the user visited. If my variable is greater than the slide number I'm currently on, then I don't disable the next button.

For my variable, I update it on every slide with the condition, if the variable is less than the my current slide number, I update the variable to match my current slide number.

This discussion is closed. You can start a new discussion or contact Articulate Support.