Skip to main content

Scripting Syntax

The idea behind Drafft is that it should be engine- and language-agnostic. You are free to use whatever language you prefer for your scripts. However, certain features, due to their nature, need to identify the purpose of each line. For this, the Drafft syntax (UAF) was created. It is used for very specific purposes and can be ignored if not needed:

Commands

Commands are just functions. The benefit of using drafft syntax is that they will appear in the resulting screenplay.

<Commands(param, param)>

Special Cases

Fade commands <FadeOut(?params)> and <FadeIn(?params)> also get some special treatment in the screenplay output.

Examples

<Wait(5)>
<Focus(actor)>
<FadeOut()>
<WalkTo(x,y,z)>

Commands can also be renamed at export to a syntax more useful for the target engine. See Export Mappings

Actor Line (with speech tag)

::Actor:: Actor Line [expression]
[#speechTag]::Actor:: Actor Line [expression]

This is the most important concept in drafft, this line represent a line of speech an actor says. It has several uses:

  • Identifying actors to make the actor database.
  • Identifying speech lines to auto generate tags for voice-overs.
  • Include this line on the resulting screenplay.
  • Include expressions in screenplay.

Actor lines can also be renamed at export to a syntax more useful for the target engine. See Export Mappings

Examples

::Tyler:: The first rule of Fight Club is: You do not talk about Fight Club.[serious]
[#line001]::Travis:: You talkin' to me?

Comments

// Comment

Comments are lines that are commonly ignored in the target engine. Drafft will include comments in the screenplay.

Example

// INT. SUBURBAN HOME - KITCHEN - NIGHT
// FILBERT (9), wiry, lost in his own imaginary world. Dressed as a Knight. A toy sword in his other hand.