Help with Trigger/Variable on Main Menu slide

Feb 23, 2021

I have a main menu slide that when all items are visited, user should go to End Course slide. I have tried several approaches but am coming up short. I would like the course to take them to the End Course slide when all menu items are selected however, they have to be taken to that last items scene before going to End Course. I thought putting an End Course button on the menu to be set to normal when all are visited but, when you come back to the menu after visiting that last scene the End button is being hidden again.  Attached is the Main Menu slide with the current triggers set, I can't send full course due to confidentiality. An expedited response would be very much appreciated. 

7 Replies
Walt Hamilton

1. Set menu slide property to Reset to initial state on revisit

2. Create a T/F variable for each of the sections: Section01Visited, etc. Set them to default to false

3. On last slide of each section create a trigger: Adjust Variable Section01Visited set to true when [Return to Menu] is clicked. Place this trigger above the trigger to jump to menu slide.

4. On menu slide set End Course button to Initial state of Hidden.

5. On menu create trigger Change state of [End Course Button] Normal when timeline starts on this slide if [all the section variables = true]

"When state of ... is visited" doesn't work well for more than 3 or 4 buttons, and even then only if you don't leave the slide. It's not really an action, so it isn't very effective at initiating triggers.

Any questions, be sure to ask.

Maria Costa-Stienstra

Hi, Kelly!

Thank you for sharing your .story file! 

One way to achieve what you are looking for is hiding your End Course button when the timeline starts. Once I made that change in your file, your other trigger worked, making it visible once the other slides are visited. 

Windows 10 (1) 2021-02-23 at 12.16.04 PM

Here is a quick Peek 360 recording showing you the behavior.

Let me know if this works!

Walt Hamilton

Sorry, I accidentally posted before I finished typing. I've completed the previous post now, but it occurs to me that I forgot one detail.

Resetting to initial state is necessary to start the timeline to initiate the triggers, but it also resets the visited states. You have to set them manually, but if you create a trigger to set an object to Visited state, you risk conflicting with the built-in trigger. To avoid that, you need to create a new state that looks like Visited, but is named  "Completed", or something of a like nature. Then create a trigger for each menu object to set its state to Completed when the timeline starts on this slide if its variable is true.

It may be more complex than Maria's solution, but it will never fail. In the past depending on the state of that many objects has been problematic, and even more so when various other slides are visited. Maybe a recent upgrade has fixed the problem, I'll be interested to see.

Kelly Schrodi

Thank you for that excellent walk through, what is happening now is that when you select the last menu item, then go to those slides and come back to the main menu the button is hidden, I guess because the timeline restarts. Is there a way to set the course up to...if all Menu items have been set to visited, when you click on the next button on the last slide of that scene it will go to the End Course slide?

Walt Hamilton

Revisiting the menu slide resets the object states, but not the variables. If a topic is visited, it sets its own variable, which the menu slide can read to know it the item has been visited. So when the menu is revisited, it uses the variable to know if the End Course button should be made visible.

 There is a sample project that may help you at this discussion: https://community.articulate.com/discussions/articulate-storyline/free-sample-restricted-and-free-random-navigation-using-variables-and-triggers

The restricted navigation only allows the menu items to be visited in order, while the mixed navigation allows them to be visited in any order. Both show an end button after all the items have been visited.