Matthew Bibby
Matthew Bibby

Avoid Broken Courses by Packaging Your External Files with the Storyline Source File

In this tutorial we will look at how to get Storyline to carry-on any additional files that you need in your published output.

Matthew BibbyMatthew Bibby

While there are a lot of wonderful things to say about Storyline, there are some behaviours that are not only frustrating but can result in broken courses if you aren't careful.

This tutorial will show you how to package up external files with your Storyline source file so that you can be confident that your course will work as intended.

There are a few situations where this approach really comes in handy, including:

  • When your course requires additional files to work properly (e.g. if you've added a printable workbook)
  • If you are linking to files that are stored on your local hard drive
  • If it is likely that other developers will need to update the course in the future from a different computer to the one those files are stored on.

Why Would You Need to Do This?

It may seem a bit weird that we need to pay so much attention to this stuff, but here is what may happen if we aren't careful:

  • You'll publish your course and upload it to an LMS, only to find that it doesn't work as expected because you forgot to copy the required files to the published output
  • You move or rename the files a course links to, then republish it without realising the Jump to File links will no longer function.

Also, this isn't hard to set up. So rather than manually copying files (or double checking that they have been included in the output) each time you republish a course - let's get Storyline to do all the heavy lifting!

Before we get into how this is done, big thanks to Steve Flowers who came up with this approach. Thanks Steve, you're a legend.

Got It. Show Me How This Works.

First up, you need to grab all of the files that you want to carry-on and move them to the same folder.

A folder containing some random files

Then, if there isn't already a file called index.html included, you'll need to create one and add it alongside your other files. If you aren't sure how to create this file, don't worry, I'll include one at the end of this post.
Why a blank index.html file?

An `index.html` file needs to be included so we can convince Storyline that this folder of files is actually a web page, not a folder of files.

Once all of your files are ready, you can add a new web object to your Storyline course. So click on Insert > Web Object and you'll be greeted with a dialog box that looks a little something like this:

Insert Web Object dialog

But rather than entering a URL, we want to navigate to the folder we created earlier:

Web Object address showing link to folder on C drive

Then, after we hit OK, we'll see the web object added to the stage:

Web object showing on slide

We don't want it here. So let's unceremoniously (or ceremoniously if you prefer) shove the web object off the stage, where it won't be visible to the learner:

Now, when we publish this project, our files will be copied to the /story_content/WebObjects/ folder.

We need to view this folder so that we can grab the unique identifier that Storyline is using to identify the web object.

So let's publish the course and then click the Open button:

Then we can naviage to the ~/story_contents/WebObjects/ folder to see what our unique identifier is:

In this case, the identifier is 5aA5JErINwE. Yours will be different.

As long as we don't delete the web object, this identifier will remain consistent. This means that we can link to any of the files in that folder by creating a trigger that opens the file from story_content/WebObjects/5aA5JErINwE/your-file.here as shown below:

Important Note

The files are copied into the Storyline source file when the web object is created. So if we make changes to one of those files, then the updated version will not be copied into Storyline until the web object is recreated.

But it's tricky, because if we delete the web object then we'll lose that identifier. Which means that when we create a new web object, we'll get a new identifier and will have to go back and update all of the links to those files again.

Gah!!

Thankfully, there is a trick.

Simply edit the web object by selecting the web object (which is hiding off the stage) and go to Web Object Tools Options and select Edit:

Web Object ribbon

Then we can change the Address to a website:

Web Object pointing to a website

And after clicking OK to save those changes, point it back to the folder that contains our files again:

Web Object address showing link to folder on C drive

This way, we can update the files we've packaged up without having to change all of the links that contain the unique identifier.

So that's it! Now you know how to package your external files up in your Storyline source file so that you can be confident that your courses will work as intended for your learners.

Here's a Demo

Here is a demo that shows how this works when published:

Files You Might Need:

If you need a blank index.html file, you can grab one from here.

Here is the .story file that was used in this example.

Here is a SCORM package you can use to see how this works in your LMS.

Frequently Asked Questions:

Q. Does this work in HTML5? (i.e. will it work on my phone and tablet?)
A. Yes, it will.

Q. Will this work in Articulate Mobile Player?
A. Yes, it will.

Q. Will this work in an LMS?
A. Yes, it will, I've tested it in SCORM Cloud and it worked perfectly. If you'd like to test it in your LMS, you can grab the SCORM package above and use that for a quick test.

Q. Do Articulate support this method?
A. Yes, I imagine so.

Q. My question isn't listed here, what should I do?
A. Package it up and pop it in a comment below or contact me.

If you found this tutorial helpful and think others in your network will also, please share using the share buttons below. Thanks!

Matthew Bibby
Author

Matthew Bibby

I'm Matt. I'm an eLearning Consultant. I help people like you develop memorable, engaging and profitable training programs. What do you need a hand with?

Comments