Disaster! Can you rebuild project from a .ZIP file

Hi all, 

The team a work with has a question - using Storyline 3.

A learning module needs updating but the source files for the project have been lost in some computer disaster - we've all heard of these situations. 

However, we might be able to get the .ZIP from the LMS. If we can, then is it possible to un-zip the folder and import it onto Storyline? So that we don't have to rebuild it all from scratch? Any thoughts?



9 Replies
Wendy Farmer

No sorry Marcus - the published folder doesn't contain a copy of the source.

Any chance someone in the team has a copy in their temp folder?

Check file path  “AppData\Roaming\Articulate\Storyline” on your drive where you have installed you Articulate Storyline and there may be a copy with a .tmp file extension...if so copy it and change to .story ...you may be able to recover something

Tom Kuhlmann

This may help. If you have a published version of the course. 

  • Capture the screens. 
  • Open the published folder and grab any media you need.
  • Once you have the screens inside of Storyline, you can find places to redo them or just add interactive elements where you need them.

I wrote a post on this a while back. It's not perfect, but it's an easy way to get the course rebuilt (assuming it's not too complex).

Marcus Haddon

Thank Tom, Where we can we are taking this approach. The most frustrating thing is that once the storyline is published the whole slide becomes an image - insofar as you cannot copy the text. Does anyone know why it publishes like that? I am guessing there is a technical or logical reason for it.

Ashley Terwilliger-Pollard

Hi Marcus, 

The text (and other slide elements) are contained with an SVG upon publishing, and the text isn't selectable in that output.

If you've published with Storyline 3 or Storyline 360 you could use the following method to access the slide text:

  1. Within Chrome, go to the Dev console
  2. In the Console, run the following code: 
    document.querySelectorAll('text').forEach(node => {
     node.style.pointerEvents = 'all';
     node.style.userSelect = 'all'
  3. The text on the slide will be selectable after that, and you'll need to do this for each slide.

Hope that helps!