Lost script state in Scrivener script formatting behavior.

I’m very disappointed in Scrivener, for a tool that has such glowing reviews, that it behaved so badly with my recent attempt to revise my script. I am now left with an mess of a formatted document, and no backups to come back to.

Somehow, I was able to get my document into a state where two different files had two different script formats (as I intended it to be). When I went to do revisions on one, I noticed that it had the wrong script categories. As such I went to select the correct script format from the Format > Scriptwriting menu.

When I did this, I was given the normal set of dialogues saying that this was “undoable”. While I wasn’t completely sure if this was the correct thing to do, I assumed that I was fine. Even if I couldn’t directly undo the change, I could always close the document without saving and reopen it again. What I did not know is that this actually overwrite the document state on disk.

Somehow, this attempt to reformat the single script file also reformatted another script file in the same document with that script format. I would have expected each file could have its own script format, and could be worked with accordingly (in the same way you can work with both normal text documents and scriptwriting documents independently).

With further experimentation, I created an explicit snapshot in order to have a state to rollback to, since clearly just assuming the file wouldn’t be overwritten was incorrect. I tried a few more ways of preventing individual files from being reformatted by the scriptwriting format change in a single file, but failed. This led to the second problem: When you rollback a snapshot, it deletes the snapshot. This is unintuitive behavior compared to any other revision control system, as those keep around the snapshots until you explicitly deleted them.

As such, I lost even the state which had the scripts with their own formatting categories. One of my documents is now entirely general text, and so I’ll basically have to mechanically rewrite it to get it back.

There should be some information somewhere that there is only one script format allowed at one time per document, so that I can know this is an inappropriate program to use. An unsaved document should keep backup files to prevent losing data when quitting the program unintentionally, but should not overwrite the core data files. Snapshotting should create a permanent snapshot until such a time as the user explicitly deletes it. Had these been true, I would have simply been able to understand the applicability of Scrivener to my application, and to ensure that a minor mistake didn’t become a serious pain.