How To Write Choices in Adult Interactive Stories

This article is intended to help authors of interactive adult stories learn more powerful ways to use Choices. Choices are the doorways to different strands of your story, giving readers the ability to control their journey through your narrative. By mastering the use of Choices in your story, you’ll be able to create more powerful interactive narratives and keep readers immersed in the worlds you’ve crafted.

Before digging into more advanced features of Choices, you should be familiar with the basics of writing interactive stories here at Literotica. Make sure you’ve read our “Getting Started With Writing Adult Interactive Stories” article. Then, let’s find out more about Choices!

The Simple Sticky Choice

=== ask_a_woman_out ===
Which woman do you want to ask out on a date?
+ The blonde woman.
-> blonde_woman
+ The brunette woman.
-> brunette_woman

This Knot features two simple Choices: “+ The blonde woman.” and “+ The brunette woman.”. These Choices use the plus symbol (+), making them “Sticky” Choices. Sticky Choices are Choices that never disappear from the story, no matter how many times readers view the same Knot. If you send the reader back to the above Knot five hundred times, they will be presented with the same two Choices every time. In many cases, that is exactly what you want. If there are three doors, and you want your reader to be able to walk through any of the three doors at any point in the game, then Sticky Choices are perfect.

But what if you wanted one of the doors to disappear after the reader went through it, so that the reader could only go that way one time in the story? You can do that, too.

The Simple Single-Use Choice

=== ask_a_woman_out ===
There is a banana on a table in the room. Which woman do you want to ask out on a date?
+ The blonde woman.
-> blonde_woman
+ The brunette woman.
-> brunette_woman
* Eat the banana on the table.
-> ask_a_woman_out

We’ve added a third Choice to the Knot “* Eat the banana on the table.” - this time, using the asterisk (*) symbol instead of the plus symbol (+). If you use an asterisk instead of a plus symbol before your Choice text, the reader can only select that Choice once. A Single Use Choice disappears after use, and is no longer available the next time the same reader visits the same Knot.

If there’s one banana on the table, it doesn’t make sense for a banana to remain on the table after the reader has eaten it. Similarly, if one of your Choices was “* Pick up the gold key you notice on the dusty floor.”, you would only want the reader to be able to take that action once (since there is only one key). Single Use Choices and Sticky Choices can be used together or separately anywhere in your story, giving you more control over the way your worlds work.

Fallback Choices For Knots With Single-Use Choices

Since Choices with asterisks (*) disappear after a Single Use, what happens if the reader is directed back to a Knot that doesn’t have any choices left for them to select? If that happens, your story will show an error and the reader will have to start over without a proper ending. How can you avoid that scenario and be sure that the reader won’t see any errors? The easiest way to avoid the issue is to never repeatedly send readers back to a Knot that ONLY has Single-Use Choices. If you do plan to allow readers to revisit a Knot where all of the Choices are Single Use (and they may run out of Choices), you should add a Fallback Choice to your Knot. Here is an example:

=== ask_a_woman_out ===
There is a banana on a table in the room.
* Eat the banana on the table.
-> ask_a_woman_out

After the reader selects the Single-Use Choice “* Eat the banana on the table.” they are redirected back to the “=== ask_a_woman_out ===” Knot. The reader has already selected the only choice available in this Knot, and it was a Single-Use Choice, so the Knot will have no Choices and no END statement, leading to an error message.

The error message can easily be prevented by the author using a Fallback Choice whenever they send users back to a Knot where all of the Choices are Single-Use. A Fallback Choice might look like this:

+ -> go_to_generic_ending_knot

As you can see, the Fallback Choice is the same as any other Choice, except that there is no text for the reader to select. When you leave text out of a Choice, the reader will never see the Choice. Instead, they will be sent directly to the Divert for that Choice only if there are no other available Choices for them to select. Our new Knot with a Fallback Choice would look this like:

=== ask_a_woman_out ===
There is a banana on a table in the room.
* Eat the banana on the table.
-> ask_a_woman_out
+ -> go_to_generic_ending_knot

If you didn’t want to create a Knot for your Fallback Choice, you could just add text and END the story inside the Knot like this:

=== ask_a_woman_out ===
There is a banana on a table in the room.
* Eat the banana on the table.
+ ->
It looks like this story is over. Please read it again for another adventure.
-> END

To Echo or Not To Echo Choice Text After Selection

=== ask_a_woman_out ===
There is a banana on a table in the room. Which woman do you want to ask out on a date?
+ The blonde woman.
-> blonde_woman
+ The brunette woman.
-> brunette_woman
* Eat the banana on the table.
-> ask_a_woman_out
* [Throw the banana out the window.]
-> ask_a_woman_out

After the reader selects any of the first three Choices above, the Choice text will appear on screen before the next Knot. For example, after selecting the Choice “* Eat the banana on the table.”, the reader will see the following text on their screen before the next Knot is shown “Eat the banana on the table.”. This is the default way that Choices work, echoing back the Choice text to the reader after the Choice is made. If you would prefer not to echo the Choice text to the reader after every selection, you can simply put square brackets ([Choice Text]) around the Choice text as shown in Choice #4 above (“* [Throw the banana out the window.]”). When you put square brackets around Choice text, that text will work exactly as it would without brackets, except it will not echo the Choice text back to the reader after they select that Choice.

Showing Text After A Choice, But Before The Next Knot

=== ask_a_woman_out ===
There is a banana on a table in the room. Which woman do you want to ask out on a date?
+ The blonde woman.
-> blonde_woman
+ The brunette woman.
-> brunette_woman
* Eat the banana on the table.
-> ask_a_woman_out
* [Throw the banana out the window.]
-> ask_a_woman_out
* [Pretend you don't see the banana.]
You act like you didn't even notice there was a banana in the room.
-> ask_a_woman_out

The most common behavior of a Choice is to send the reader to another Knot, or to END the story. There may be times when you want to show the reader additional text before they arrive at the destination Knot, or before they arrive at the END of the story. This is easy to do by adding text on the line below the Choice and above the Divert (or END) as shown in Choice #5 above. After the reader selects the Choice “* [Pretend you don't see the banana.]” they will see the text “You act like you didn't even notice there was a banana in the room.” before being sent to the Knot “-> ask_a_woman_out”. Many authors prefer to use text at the top of Knots for their entire story narrative, but the ability to add text after each Choice may be of interest to writers emphasizing immersive world building.

Conditional Choices

Conditional Choices allow you to only show certain Choices to readers if they have completed certain actions in the story. For example, you can allow them to use a key to open a door only if they have already found the key elsewhere in the story. For information on how to use Conditional Choices, see our “Writing Conditionals In Interactive Stories FAQ”.

Further Reading on Advanced Choices

The creators of the Ink language have written a detailed help document explaining how to use every advanced feature of the language. If you’re interested in becoming a power user, please see their “Writing With Ink” tutorial for more information. We also have a growing library of Interactive Story Writing Tutorials and FAQs that you might want to read.

If you’re interested in helping test and give feedback on the new Literotica Interactive Story format, either as an author or a reader, please read this thread in the Literotica Forum: Interactive Adult Story Testers Needed.