Story Formats#
Each story format provides a different visual layout, set of macros, and internal JavaScript functionality.
Harlowe#
Harlowe is the default story format in Twine 2. It is designed for ease-of-use and for those using Twine 2 for the first time.
Harlowe Example:
(if: $hasKey)[It looks like the key will open the door.]
(else:)[No way forward!]
SugarCube#
SugarCube continues the traditions of Twine 1 while also expanding the available macros. It has more functionality than Harlowe, but can sometimes require greater knowledge of programming techniques and development patterns for more advanced usage.
SugarCube Example:
<<if $hasKey>>
It looks like the key will open the door.
<<else>>
No way forward!
<</if>>
Snowman#
Snowman is designed to be written with custom JavaScript and CSS. It has no built-in macros, but includes the Underscore.js, Marked, and jQuery JavaScript libraries.
Snowman Example:
<% if (s.hasKey) { %>
It looks like the key will open the door.
<% } else { %>
No way forward!
<% } %>
Chapbook#
Chapbook is a "second-generation" Twine 2 story format that separates its functionality into "inserts", which cause text to appear, and "modifiers", functionality that affect text in some way.
Chapbook Example:
[if hasKey]
It looks like the key will open the door.
[else]
No way forward!