User Tools

Site Tools


This is an old revision of the document!

Twine 2 Release Notes


See the for details on the changes in this release.

# Features added

  1. The built-in version of SugarCube has been upgraded to 2.30.0.
  2. Added Slovenian and Japanese localizations.

# Bugs fixed

  1. A bug where extra blank lines were added to story JavaScript and CSS when importing a story has been fixed.
  2. A bug where story formats would load incorrectly in the format dialog or story format chooser has been fixed.


See the 2.3.4 project project for details on the changes in this release.

Features added

  1. Added Chapbook 1.0.0, a new story format.
  2. Upgraded Harlowe to 3.1.0.
  3. Upgraded Snowman to 1.4.0 and 2.0.0 respectively.
  4. Upgraded SugarCube to 2.29.0.
  5. Added Ukrainian localization (thanks to uk123ua).


See the 2.3.3 project project for details on the changes in this release.

Bugs fixed

  1. Proofing stories, broken in 2.3.2, is working again.
  2. In previous versions, pressing control- or command-Z immediately after opening a text editor (passage, JavaScript, or stylesheet) would cause all text to be erased. This behavior no longer occurs.
  3. The German localization has been improved (thanks to Kai Brueckers).

Features added

  1. Added a Catalan localization (thanks to Jordi Mallach).
  2. Added a Norwegian localization (thanks to sinwes).


See the 2.3.2 project project for details on the changes in this release.

Bugs fixed

  1. Various issues related to playing and testing stories within Twine have been resolved. Twine now opens playable versions of stories in your default browser instead of inside Twine.
  2. An error where the editor UI became unresponsive after adding a new passage has been fixed.
  3. Story formats with additional build information in their version number (e.g. “1.0.0-beta1”) are now correctly handled.
  4. Extraneous story saving, occurring when a passage was clicked but otherwise not moved or edited, has been removed.
  5. The link to report a bug has been corrected to point to GitHub instead of the previous repository.

Features added

  1. Twine supports dark mode in macOS at a basic level. The window frame will change to match the system appearance, but you must still use the toggle in the story list to change theme. This may happen automatically in a future release.


See the 2.3.1 project for details on the changes in this release.

Bugs fixed

  1. In the desktop app, file saving is done in a safer manner so that if a problem occurs, any file that would have been overwritten should stay intact.
  2. The desktop app now keeps short-term backups of your story library in case a bug occurs that affects the data on disk. It saves a backup copy of your library to a Backups folder in the main Twine folder when you first start it up, and every 20 minutes while Twine is running. It only keeps 10 backups at most, deleting older ones as needed, so this is not a full-fledged backup solution (and is not intended to be). It is intended as a way to restore data in the event of a crash or bug that overwrites data saved on disk.
  3. The Chinese localization that should have appeared in 2.3.0 is in this version.

Features added

  1. Harlowe has been updated to version 3.0.2.


See the 2.3.0 project for details on the changes in this release.

New features

  • The desktop app now uses Electron instead of NW.js. This should resolve many crash issues, and also bring improved performance, as saving changes is now done on a separate processing thread than the main user interface.
  • The files in the story directory are now published as full-fledged stories, where possible.
  • Bahasa Malaysia and Russian have been added as locale choices.
  • Harlowe has been updated to 3.0.1. Visit the web site for details.
  • SugarCube has been updated to 2.28.2. Visit the web site for details.

Bugs fixed

  • Issues with passages being placed in strange places after being dragged while Snap to Grid is turned on have been fixed.
  • If you have a test or play version of a story already open when you choose to test or play it again, the window or tab should update with the current version.
  • The welcome screen now scrolls properly when the Next button is used.



  • Last modified dates on stories in the desktop app are maintained correctly.
  • Publishing stories with colored tags now works correctly.
  • Publishing stories correctly prefers an HTML version of the story, instead of a ZIP archive (used with iOS only).



  • Passages can now be wide, tall, or just plain large.
  • Tags can be assigned colors, which show up as a vertical stripe on a passage in the story map. Every tag doesn't need to have a color.
  • You can now press the plus and minus keys to change the zoom level of the story map.
  • A Turkish localization has been added thanks to H. Utku Maden.
  • A number of extraneous libraries have been removed, so the overall file size of the app has been decreased, and it should load faster.
  • The built-in SugarCube story format has been updated to 2.21.0.
  • The built-in Harlowe story format has been updated to 2.1.0.


  • When you zoom in and out, Twine does a better job of keeping the window centered where you were looking.
  • The zoom level you last set for a story is now remembered by Twine.
  • If for some reason a story format can't be loaded, you can still delete it.
  • The desktop app is more tolerant of story files that it has trouble importing at startup – it keeps going, so you at least can get to the story list.
  • If the desktop app does run into problems on startup, it shows the error message it should; previously, it would show a blank white page.



  • An issue causing passages to disappear, be positioned incorrectly, or otherwise become corrupted has been fixed.
  • Problems causing the search and replace dialog to not work correctly have been fixed.


If you are upgrading and using a non-English localization, this will cause your stories to be saved to a slightly different folder than before. Instead of Twine → Stories, they will now be saved to Twine → [the word “Stories” as translated to your language]. You will probably need to move your existing stories into this new folder.


  • Increased the display density of passages at the medium zoom level.
  • The story list can now be sorted in reverse chronological and alphabetical order (thanks Thomas Michael Edwards).
  • Mac users can now create passages in the story editor with force touch (thanks Michael Savich).
  • You can now widen the passage, JavaScript, and stylesheet editor windows.
  • Revised syntax colors in the JavaScript and stylesheet editors to be more readable.
  • Includes SugarCube 2.16.0.
  • Includes Harlowe 1.2.4 and 2.0.1.


  • When a new story format is added, stories that used an older version are automatically brought up-to-date. This bug would manifest as having no format initially selected in the Story Format dialog.
  • You cannot remove the default story format anymore. (Choose another one as default first.)
  • Issues with non-English localizations where stories would not save correctly, or would not save to the correct folder, have been fixed.
  • External links now do not cause a broken-link arrow to be drawn in the story editor.
  • Special characters (that have meaning in regular expressions) now are handled correctly when searching and replacing.
  • Fixed a bug where publishing a story from the story list wouldn't work.
  • Fixed a bug where clicking the modal dialog background would not save passage title changes.
  • Fixed a bug where clicking the modal dialog background would be treated as a confirmation in deletion modal dialogs.
  • It's now not possible to scroll the main window when a modal dialog is open.



  • Added Czech, German, Italian, and Portuguese localizations.
  • Updated SugarCube to version 2.14.0.
  • Outdated story formats are now removed automatically.


  • Improved numerous issues with touch-based devices and Internet Explorer 11 in the story editor.
  • Fixed issues with the quick search field in the story editor.
  • Fixed a bug where sometimes text would disappear in the desktop application.
  • Fixed a bug where the story directory sometimes would not be unlocked when quitting the desktop application.


Upgrade Notes

This is a significant update from the 2.0 series. If you're upgrading, please read the notes below before beginning.

If you are upgrading, then making a backup copy of your stories folder is recommended. To do this, launch Twine 2.0 and choose Show Library from the Twine menu. Quit Twine, then make a copy of the folder that was revealed. (If you are using Linux and Show Library doesn't work, your stories folder is located in ~/Documents/Twine.

If you had added custom story formats previously, you'll need to re-add them after updating to this version. The process works exactly the same as before. Sorry for the inconvenience – you will only need to do this once.

If you do not see any stories after upgrading, double-check your Twine directory by choosing Show Library from the Twine menu. Go up one level from here. You may see two directories: one called “Stories,” and another named Stories in another language (hopefully your preferred, non-English one). Move the story files from Stories to the folder with the localized name and they should be back once you re-launch Twine.

If you would like to continue using 2.0.11 online, it is still available at


  • Streamlined look and feel.
  • The starting passage now shows a green rocket icon in the passage instead of being slightly bolder.
  • Passages with broken links now show an arrow ending in an X instead of an icon in the passage.
  • Added dark theme for late-night hypertexting.
  • Loading large stories is considerably faster.
  • It's now possible to have multiple versions of story formats installed.
  • Harlowe 2.0.0 is now available. Please visit the documentation for details on changes. By default, newly-created stories will use this format, but this can be changed in the Formats option in the story list. Stories that used Harlowe 1.x will continue to do so after the upgrade.
  • SugarCube 2.1.12 is now available. Please visit the documentation for details on changes. As with Harlowe, stories that previously used SugarCube will continue to do so. If you had installed SugarCube manually under Twine 2.0, this version of Twine will try to update stories that used it to use the built-in version, but you may need to set it manually.
  • You can now use the Chromium web debugger on stories you test inside Twine by right-clicking the window and choosing Inspect from the contextual menu.
  • You can now directly drag a story file onto the story list to import it.
  • The story format version is now recorded in a published story file.
  • You can now drag the story map by holding down the middle button of the mouse instead of the space bar.
  • You can zoom into the story map with the mouse wheel.
  • When dragging passages when snap-to-grid is turned on, the passages will reflect this.
  • If you import a story with the same name as an existing one, then Twine will prompt you if you'd like to replace it.
  • Danish, Italian, and Portuguese localizations have been added.


  • Passages that link to themselves display a clearer arrow in the story map.
  • The gauge showing the remaining local storage space in the online version now works correctly.
  • It's no longer possible for passages to get pushed offscreen.
  • Renaming a story in the desktop app no longer creates duplicate files.
  • A typo in the German localization has been corrected.



  • Includes new localizations for German and Finnish.
  • Updates the included version of Harlowe to 1.2.2.
  • Updates the included version of Snowman to 1.3.0.
  • Updates the included version of SugarCube to 1.3.4.


  • Resolves several problems in 2.0.10 with Linux.
  • Improves link drawing of certain setter links.

Harlowe 1.2.2 changes

  • Updated the syntax highlighter: placing the cursor on a syntactic token (such as a variable, or an entire hook) will underline the full expanse of that token.
  • Fixed a bug where the (textstyle:) options “shudder”, “rumble” and “fade-in-out”, as well as all of (transition:)'s options, didn't work at all.
  • Fixed a long-standing bug where (mouseover:) affected elements didn't have a visual indicator that they could be moused-over (a dotted underline).
  • Fixed the (move:) macro corrupting past turns (breaking the in-game undo functionality) when it deletes array or datamap items.
  • Fixed the ⇐== (left-align) markup token erasing the next syntactic structure to follow it.
  • Fixed a bug where attempting to print datamaps using (print:) produced a Javascript error.
  • Fixed a long-standing bug where spreading … datasets did not, in fact, arrange their values in sort order, but instead in parameter order.
  • Fixed a long-standing bug where a string containing an unmatched `)` inside a macro would abruptly terminate the macro.
  • Giving an empty string to a macro that affects or alters all occurrences of the string in the passage text, such as (replace:) or (click:), will now result in an error (because it otherwise won't affect any part of the passage).


Twine 2.0.10 has the same changelog as 2.0.9, but it includes Harlowe 1.2.1, which fixes a problem with (else:) invocations.



  • Includes new localizations for Brazilian Portuguese, Danish, Dutch, French, and Russian.
  • Updates to CodeMirror 5.4.


  • A bug where dragging multiple passages would cause them to jump around after the drag completed has been fixed.
  • A visual glitch where passage, JavaScript, and stylesheet editors appeared to have two scrollbars has been fixed.
  • The quick search highlight now updates properly after editing a passage.
  • Global variables set by the editor are now cleaned up, so that they won't interfere with story previews.
  • The passage editor now uses tabs consistently to indent, as opposed to a mix of spaces and tabs.
  • A bug where gray areas would be visible after changing the zoom level of a story map has been fixed.
  • When you change the start passage for a story, link connectors will correctly update based on its new width.
  • The OS X desktop app is now usable for all users, not just the one who installs it.
  • The Windows desktop app is better at finding the user's Documents folder.
  • Desktop apps should no longer complain about running out of space.
  • Handles importing story files that have no IFID gracefully.

Story Formats

  • Updates the included version of Harlowe to 1.2.
  • Updates the included version of Snowman to 1.2.
  • Updates the included version of SugarCube to 1.0.32.


Twine 2.0.8 has the same changelog as 2.0.7, but with two small but important changes:

  • A bug where < and > characters would be garbled in stories in the native app version has been fixed.
  • Harlowe 1.1.1 is included.



  • Twine is now internationalized, and includes a Spanish localization. Interested in adding a localization? Please see the relevant section on the repository.
  • Importing files has been sped up, as well as the startup time of the local app.


  • Fixes a bug where clicking links in a story generated from the Test and Play buttons would not work.
  • The local application now works properly on Windows 7 Enterprise.

Story Formats

  • Updates the included version of Harlowe to 1.1.
  • Updates the included version of Snowman to 1.1.



  • Properly includes SugarCube in local app versions.
  • Fixes a bug in 2.0.5 where clicking links in testing/play versions of stories did not work.

Known Bugs

  • When testing or playing a SugarCube story in an app version, sidebar links do not work. (Resolved on development branch)

Story Formats

  • Updates the remote URL of SugarCube to the latest.
  • Updates the included version of SugarCube in local app versions to 1.0.23.
  • Updates the included version of Snowman to 1.0.2.


This is the first release in the 2.x series to offer native apps for desktop OSes.

There is a known bug with the version of SugarCube bundled with this release. As a workaround, use the Formats option on the right side of the story list and choose Add a New Format at the top. Enter this address:

This format should be called just “SugarCube”, and is identical functionally to what is normally bundled.


  • The new Twine 2 guide is now linked from the story list.
  • New visual previews of stories in the list.
  • You can now rename, test, and duplicate a story from the list instead of having to edit it first.
  • When a passage is renamed, the editor makes its best effort to change links accordingly. This doesn't yet work if the passage is mentioned in a macro.
  • Added rudimentary autocomplete when typing links in the passage editor. This only works right now for links, not macro mentions; this may change in the future.
  • Deleting a passage now prompts the user that they're sure; holding the Shift key while clicking the delete icon bypasses this warning.
  • The grid snap has been made coarser.
  • Pressing Control-Shift-Alt-(or Option)-D in a native app build will open a debugger console.


  • Fixed a bug where dragging a group of passages caused them to jump to odd locations after the drag.
  • Fixed a bug where passages would jump around after moving from the editor to the story list.
  • The first passage added to a story is always set as its starting point.
  • Better handling is done to recover gracefully when a story format fails to load.
  • In native app builds, the filenames for stories are stripped of any characters that might cause problems (i.e. slashes or colons).
  • New passages are now properly centered, regardless of zoom level.
  • A story with no starting point set now archives properly.



  • The tooltip for the story menu now shows the most recent date/time the story was saved.
  • The Story Statistics dialog is back, and now includes the IFID for a story.
  • Added experimental native app builds, available for now here only. These builds have not been thoroughly tested; please use at your own risk. These save your stories to your Documents folder, under Twine > Stories.


  • The app no longer mistakenly reports an updated version is available immediately after updating.
  • If an error occurs within the library used to save stories, a notification is now shown to the user. Previously, notifications were only shown when an error happened within the Twine app itself.

Story Formats

  • Updated Snowman to version 1.0.1.



  • If you try to play a story but haven't set a starting point yet, you are now prompted to do so.
  • Window titles have been changed slightly to better distinguish editing a story from playing or testing it.
  • A warning appears if you try to navigate away from editing a passage (i.e. while changes may not have been saved yet).
  • New animations between the story list and editor.


  • Trying to save a passage with a name that another one already has now shows an error message instead of losing work.
  • Newly-created passages now are numbered properly (“Untitled Passage 1”, “Untitled Passage 2”, etc.) This bug would also cause data loss.
  • Fix a bug with displaying search results when searching for text including < and >.
  • Using Enter to add tags works as many times as you like while editing a passage.
  • Publishing stories now works on Safari.
  • Fix problems with the story stylesheet and story JavaScript editor putting typed text far away from where the cursor appeared.
  • At medium zoom level, passage titles now use the entire space of the box instead of a single line.
  • Fix intermittent problems where link arrows or broken-link status of a passage would not update after editing.



  • Passage connector drawing during a drag has been sped up.
  • SugarCube has been added as a built-in format.
  • The browser's window title changes to match what the user is currently working on.


  • The storage quota bar on the story list no longer causes slowdown on Chrome.
  • A progress spinner is shown while importing from a file.
  • After an import, the story list automatically updates.
  • If a story is published to an already-existing window or tab, then a notification appears letting the user know that they should look over there for the updated output.
  • Passages are prevented from being moved offscreen.
  • Story formats now timeout on loading at 10 seconds instead of 2.
  • User-added story formats may now be deleted.
  • [[]] is no longer considered a link (previously, a passage with an empty name would be created).
  • Date sorting in the story list now works properly.
  • If publishing a story fails, then an error notification is shown to the user (previously, this would die silently).
  • Clicking a button automatically hides any tooltips for it, to prevent it from blocking any popups from view.
  • Passage connectors now take border width into account (i.e. links drawn from the start passage show properly).



  • The editor now checks for an updated version against once a day and informs users accordingly.
  • Passage connections are now drawn using SVG for improved performance.


  • Story formats are now preserved during import (thanks Thomas Michael Edwards).
  • $$ and other esoteric-ish characters in passages are no longer inappropropriately transformed during the publishing process (thanks Thomas Michael Edwards).
  • A bug where passage connections would sometimes not update with zoom level changes has been fixed.
  • A cosmetic issue with popup balloons is fixed.
  • The link to the Twine forum on the welcome page is fixed.

Story Formats

  • Snowman now properly uses user-created stylesheets and JavaScript.
twine2/release_notes.1570498874.txt.gz · Last modified: 2019/10/07 21:41 by klembot