Converting private script format for Scrivener

While I was recently working on a Script Frenzy script, I discovered that when the Muse really hit me hard, typing the words in “Script mode” was just too slow. I wanted something even faster. So I invented my own format:

(Juliet stands on the balcony. Romeo is in the garden below.)
J:(calling out) Romeo! Romeo! Wherefore art thou, Romeo?
R:I am here. (waving arms frantically) I said, (shouting) I’M DOWN HERE! (aside) Cute kid, but blind as a bat…
J: Ah, my beloved, my joy, my happiness, my (beat) hamburger helper!
R: Hamburger help…? (shaking his head) Whatever.

Since this format is leaner, it helped me to focus on just the action. After I was finished with the scene in a simple text editor, I would paste it into a Scrivener text entity and then “edit it up” to full Script mode.

Is there some way to turn a text file into a Scrivener-friendly “Script mode” text entity automatically? I also want to be able to create all the associated metadata, that is, Character Name, Dialog, Stage Direction, Scene Action, etc.

I’m a programmer, so I’m perfectly capable of writing a standalone program to do this (probably in Python). I would gladly donate the code. I just want to be able to do such a thing. Does anyone have any pointers?

Unless I’m wrong, for now, since there doesn’t seem to be an accessible API or a way to write plugins (that I know of), I guess I’m asking “is there a way to create some kind of file that Scrivener can import cleanly into a Script mode text entity including creating metadata?”


Hmm, yes and no.

At present, Windows Scrivener’s script abilities are on the slim side, but Lee will be building that up. Ultimately you should be able then to have custom formats and to convert scripts to some extent. The trick though is that Scrivener recognizes the elements by the paragraph formatting, so in order to do this you basically define the formatting for each element in the script settings and then use that to convert all paragraphs matching that formatting so they become recognized elements. If you then change the settings for that element again, all the text now recognized as that element will be converted, etc. The way your script is set up at present, there’s no distinction between elements in the formatting, so even once Scrivener has this capability, it won’t be able to distinguish among what you intend as Character, Dialogue, etc.

If however you can quickly adjust each of your elements to have slightly different paragraph formatting–just different levels of indentation, for example–you could then fairly quickly set up Scrivener’s script settings to use that formatting as the indicator for each element, and then once the different elements are recognized, you can adjust the specific formatting as you want it. Again though, that feature isn’t implemented in the Windows version yet. Lee’s hoping to get more with the script settings done for the next beta, but no promises.

Hm. Did that partially answer the question, anyway? There’s no way to write plugins yet, although again that’s something Lee’s interested in for the future (but we’re speaking more distant future here, certainly not until after the official release and possibly not for a while after that). But if you convert your script as above, so that the paragraph formatting per element is distinct, bringing that into Scrivener and getting it recognized once the script mode is beefed up won’t be too difficult.