StorySplice imports Twine stories directly, and this guide is precise about what that means — because an honest import guide is worth more than an optimistic one. The importer accepts two formats: Twine 2 HTML (the file Twine produces via Publish to File or archive — anything containing tw-storydata) and Twee text files (.tw or .twee, the plain-text notation used by tweego and Twine’s Twee export). Import is free on every plan.
The short version of what happens: passages become scenes, links become choices, and story-format scripting does not survive. Twine story formats — Harlowe, SugarCube, Snowman, Chapbook — are programming environments, and StorySplice deliberately is not one. The importer detects the format, converts the narrative skeleton faithfully, strips the code, and tells you exactly how much it stripped so you know what you are cleaning up.
Get your story as a file. In Twine 2, open the story and use Publish to File to save the HTML, or archive your library. A .twee/.tw file from tweego or any Twee-based workflow works equally well. Both carry everything the importer can use.
Import it into your library. Sign in, open the Library, and on the My Stories tab click Import and pick the file — or simply drag the file onto the library screen. The importer detects Twine HTML versus Twee automatically.
Know what carries over. Every ordinary passage becomes a scene, keeping its passage name as the scene label. All four Twine link forms convert to choices: [[Target]], [[text|Target]], [[text->Target]], and [[Target<-text]]. The story title carries over (from the story data in HTML, or the StoryTitle passage in Twee), and the start scene is set from Twine’s start passage — in Twee, a passage named Start, or failing that the first passage in the file.
Know what gets stripped. Harlowe macros like (set:) and (if:), and SugarCube macros in double angle brackets, are removed and counted; Harlowe hooks are unwrapped to their plain text. Special passages — StoryData, stylesheets, scripts, StoryInit and their kin — and passages tagged stylesheet, script, widget, or annotation are skipped entirely. Passage tags and map positions are not kept. Links pointing at passages that do not exist are dropped and reported as broken. Variables, conditional text, CSS, and JavaScript do not survive: what arrives is prose and choices.
Read the import report. After import you get a summary — passages converted, choices created, endings found, macros stripped, and any broken links by name. A story that reports zero stripped macros converted losslessly. A story that reports forty is telling you where the manual work lives.
Clean up where the code used to be. Open the story map and read any scene that leaned on logic: conditional text now reads as a gap, and a (set:) that gated a later branch is now an unenforced assumption. The fix is editorial, not technical — rewrite those scenes so the consequence lives in the prose of each path, per the structure guide. Run validation to catch anything the report flagged.
Play-test the whole thing. Play every major path in the built-in tester before republishing. Choice-driven Twine stories usually arrive playable as-is; heavily scripted SugarCube games need real adaptation, and a play-through tells you in twenty minutes which kind you have.
Which stories convert well
Import quality tracks how choice-driven the original is. A Harlowe story that is mostly prose and links converts nearly perfectly. A mid-weight story with some conditional text arrives structurally intact with visible gaps to rewrite. A SugarCube game built on inventory, stats, and DOM scripting arrives as its narrative skeleton only — sometimes exactly what you want (the structure, freed from the code), sometimes not worth it. The import report’s stripped-macro count is a good instant estimate of which case you are in. And because StorySplice also exports Twee and Twine HTML, trying the import costs you nothing — the door swings both ways.
Frequently asked questions
Which Twine versions and formats are supported?
Any Twine 2 HTML file containing standard story data, in any story format — Harlowe, SugarCube, Snowman, or Chapbook are detected and reported. Twee text files (.tw/.twee) in the common Twee notation import the same way. Twine 1 files are not supported directly; open and republish them via Twine 2 first.
Do my variables and conditional logic carry over?
No. All macros are stripped (and counted, so you know the scale). StorySplice has no variable system — consequence is expressed through branch structure and prose instead. The import report tells you exactly how much logic the story contained.
What happens to my passage layout from Twine?
Positions are not imported — StorySplice lays out the map in its own view, and you can drag scenes freely once imported. Passage names are preserved as scene labels, so nothing loses its identity.
What about broken links in the original?
Links to passages that do not exist are dropped rather than imported broken, and the report lists every one by target name so you can decide whether to rebuild or retire them.
Is Twine import a paid feature?
No — import is free for everyone, in both formats. It is export to Twine/Twee that is a Pro feature; JSON export stays free on every plan.