What's TWINE? Twine is a program that lets you generate interactive stories that are kind of like Choose Your Own Adventure Books. Why is Twine so wonderful?

Twine was created by Chris Klimas. You can download it here. Some people have told me the Mac version is buggy - some people have told me it isn't!


The first passage in your story is called "Start." Don't change this name! Other passages can be named whatever you like, but the title of the first passage HAS TO BE "Start," capital S, lowercase tart.

A passage is the equivalent of a page in a Choose Your Own Adventure book, but it can be as long or short as you like. Double click on it to write in it.

RADICAL. Now let's create a link to another passage. The player can go to that passage by clicking on the link, like any internet hyperlink. Here's what a link looks like:

The text to the left of the | bar (same key as the backslash, which on my keyboard is between BACKSPACE and ENTER) is what the player sees. The text to the right of the bar is the name of the passage she goes to when she clicks on it. Remember: it has to be double brackets! The bracketed text should turn red if you've got it right.

Now your passage has an exclamation point in the corner. This means you're linking it to a passage that doesn't exist, because you haven't made it yet! Click on the button that looks like a piece of paper with a little twinkle in the corner! You made a new passage! Double-click it, open it up, give it a name, and write in it!

If you gave it the same passage name you wrote in the link, there'll be an arrow pointing from the first passage to the second passage. That helps you keep track of the shape of the story. You can click on them, drag them around, arrange them into a picture, whatever makes the most sense to you.

If you go back to the first passage and add ANOTHER link to ANOTHER passage, now you've got a branching story! Now the player has a choice!

Or at least, she will when you publish the story. Click on "Story" and then "Build Story..." You can save the story somewhere as an HTML file, viewable in any web browser.

It says "Untitled Story." You can change that. Create a passage named "StoryTitle." What you write in that box will be the game's title. Create a passage named "StoryAuthor" and you can write your name: the HTML file will say "StoryTitle by StoryAuthor."

Now that you've built an HTML version, whenever you make changes and want to test your game, click on "Story" -> "Rebuild Story" (Ctrl-R in Windows) and then "Story" -> "View Last Build" (Ctrl-L in Windows). You'll probably do it a lot!

NOTE: rebuilding the HTML file ISN'T the same as saving the story file (the file that contains your story map and arrows and links). You can do that by clicking on "File" -> "Save Story" (Ctrl-S in windows). You'll probably want to do that a lot too.

And that's all you need to know to make a simple, branching story! When you're finished, drop the HTML file on the internet somewhere and tell people the link!


Here are a few other things that will help you do you slightly more advanced stuff.

First of all, pictures! You can put a picture into your story by typing [img[NAME OF PICTURE]] (the picture should be in the same folder you're building the HTML version of your story in).

You can also put HTML code into any passage by putting <html> </html> tags around it. That's useful for things like embedding Vines in your story, for example.

Second, you can change and track variables: whether the player's visited a certain place or how many stones of power she's collected. First, create the variable in the Start passage.

The <<silently>> tags keep your story from skipping a line every time a piece of code comes up. If you're going to have a bunch of seperate lines of code, consider putting a <<silently>> around the whole thing.

Now, to change a variable just do the same thing in a later passage:

Then you can check the state of a variable and show text accordingly. Here we use "eq" instead of "=" - the equals sign is for MAKING something equal to, and "eq" is for CHECKING IF something is equal to something.

There are other expressions too: "gte" means "greater than or equal to," "lte" means "less than or equal to." You can see a list of expressions here. Remember, that, like with the links, the pointy braces always have to be doubled.

A third useful thing is that you can display the entire text of one passage, links and all, inside another passage! This is useful when you want a particular piece of text to appear in several different story paths.

Finally, if you know CSS you can edit the CSS of the finished webpage your story will become. Create a new passage, and in the "Tags" area type "stylesheet" (it has to be all lowercase!). Then you can write CSS rules in that passage, and Twine will apply them to your finished story. Here's a list of different elements you can customize.

Knowing this stuff can help you pull off some more complicated things. Now get to it and make a game!


Your partner / family / cat / dog

An important moment in your life

Something that frustrates you

That really weird dream you had

A strange adventure in a strange future

Your fantasies or hopes or fears


Upload it so people can play it! philome.la hosts twine games for free, if you have a Twitter account. Neocities provides free websites: host your Twine game there! Textadventures.co.uk also hosts Twine games for free, if you register for an account there. Or you could register for and upload files to Dropbox. Then share the link!


You Will Select a Decision by Brendan Patrick Hennessy

The Temple by Luna

Rat Chaos by J Chastain

At the Bonfire by finny

Brooklyn Trash King by Ben Esposito

Intake by Maddox Pratt

You can find more games to play at TwineHub! Why not submit yours?


Town is the first Twine game I ever made! If you're feeling confused about how some of the features of Twine, try looking at the Twine story file for Town!

If you're still confused, try checking out the official Twine documentation.