Tara explains: How to have choices that matter without any complex coding!


Author: Tara Star (TaraStar on the Forums, tarastarofficial on Instagram)

Hi everyone! Today, we’re going to talk about how you can have choices that matter integrated into your story - but without using ridiculously long and complicated branching! There’s lots of way to add choices in Episode stories, and often, stories that go the extra mile will have choices that matter - meaning that they’ll have choices for which selecting one option will alter the plot in someway, and will have different consequences than selecting a different option. Hopefully by the end of this, you’ll be confident enough to use my new secret method for adding choices that matter into your stories quickly and easily!

For many readers, complex branching and choices that matter can really elevate a story and make it interactive; however, many Authors lack either the time or knowledge to add choices that matter into their stories. Well, not any more! Today I’m going to teach you how I used choices that mattered in my short story The Blazing Sky, but without using gains or the points system. Sound interesting? Let’s get straight into it!

Now, for example, I’m going to use the first choice that appeared in The Blazing Sky to illustrate how the coding works for adding choices that matter, using my method without complex branching. The first choice was that you had the choice to either lie in, or wake up early. This then later impacted a number of things, the first thing being that it affected how long you had to check Instagram.

Your initial thoughts, if you were going to do this, would perhaps be to use gains. To do that, you’d have to make, for example, the reader gain a label like woke_late if they decided to have a lie in, then later on when you were referencing that choice, you’d most likely have to use an if/else/elif choice so that if you gained that label, you’d be in a rush for work and wouldn’t have long to check Instagram, and if you hadn’t gained that label, then you’d have plenty of time to check Instagram. If this isn’t making sense, I recommend reading my previous article on advanced directing so you understand how gains work.

Now, another way you could do this, would be to use the points system. Again, for this, you’d have to e.g. use @CHARACTER +1 to make the MC gain a point if they woke up late. Then, later on, you’d use something like:

if (CHARACTER = 1){

#in a rush, little time to check Instagram


#plenty of time to check Instagram


So, I hope that’s making sense so far, but you must want to know what my technique is, that could allow you to have choices that matter AND be easier than using the points system. Now, if that choice was only referenced, say, once in the Episode, you could use normal branching for it, and simply copy and paste the normal scenes into each branch, then code whatever the different text/actions that the choice caused. But, first of all, that’s a bit long-winded to do, and second, you can’t reference that choice again without using either gains or points. But, here’s where my method comes in!

My way of adding choices that matter - without using points, gains or really long and complicated branching - is doing something called referencing the choice. What is that, I hear you ask? Well, referencing the choice is simply giving a choice a name, then you can use that name to refer back to that choice and its options later on. Let me show you! So, let’s just recall the scenario: in this story, the MC called Rochelle, can either lie in at the start of the story or wake up on time. Depending on which option you picked, this is then referenced two other times in this chapter - first of all, when you’re on your way to work and want to check Instagram. So, the very first bit of code for this would look like:

ROCHELLE (talk_neutral_lay_exhausted)
Shut up, alarm clock.

choice (WAKE)
“Stay in bed & get some more beauty sleep!”{

Exhausted - as usual - I decide that a few extra minutes in bed can’t hurt…

readerMessage Rochelle will now feel more enthusiastic and will be in a better mood at work!

@pause for 4

20 minutes later…

}“Get the heck to work, so you’re on time!”{

readerMessage Rochelle will feel tired at work & be slower…


So, let’s talk through what is happening in this code. First of all, we see Rochelle being irritated at her alarm clock, and she’s telling it to shut up. Then, the reader is faced with a choice - but not just any old choice. This choice, as you may have noticed, has “(WAKE)” written next to it - this means that the choice has been named “WAKE” which will then allow us to refer to it later. Then, that’s the only special thing about the choice - otherwise, it looks like a normal simple choice. There’s also reader message bubble used to tell the reader the short term impact of their choice too. So, that’s the code that you’d use at the very beginning of the story. Simple enough so far…

Now, believe it or not, we can refer to this choice again later on. Yes, that’s right - we didn’t use any gains, labels, gotos, points or anything really tricky - we just named the choice by adding a word in brackets! Right, let’s have a look at the code used to reference this choice the first time in the story:

Rochelle enters from left to upscreen left AND ROCHELLE moves to layer 7

if (WAKE is “Stay in bed & get some more beauty sleep!”){

ROCHELLE (text_phone_neutral_loop)
(Okay, I have 6 minutes. Damn.)

readerMessage Having a lie in means you don’t have much time now!

ROCHELLE (text_phone_neutral_loop)
(So, I’ve got 4 minutes to check Instagram and two minutes to run to work.)


ROCHELLE (text_phone_neutral_loop)
(Okay, I have 26 minutes. Plenty of time.)

readerMessage Waking up on time means you have plenty of time to get to work!

ROCHELLE (text_phone_neutral_loop)
(I have enough time to check Instagram for a bit then I can get to work.)


Right, so let’s talk through this code. At the start, we see Rochelle enter the street. Then, we see what appears to look like you’re standard if/elif/else choice, but isn’t. Instead, we have:

if (WAKE is “Stay in bed & get some more beauty sleep!”){

Now, that looks like the beginning of a completely normal if/else/elif choice, except for the stuff in the brackets! Have you noticed that we’re referring to the word WAKE in it? Does that word ring a bell? It should, because that was the “name” we gave the choice at the very beginning. Then, we have: “Stay in bed & get some more beauty sleep!” and that should also seem familiar because that was the EXACT text that was used in the original choice that you could select. So, in this if/else/elif choice, we’ve actually referred to the original choice and used the exact name of one of the possible options for that choice. What does that mean? It means that the software knows if for that beginning choice (the WAKE one), if the reader chose to lie in (the “Stay in bed & get some more beauty sleep!” option) then Rochelle will only have six minutes to get to work, or else if that option wasn’t selected, then she’ll have 26 minutes. Then, I’ve just used reader message bubbles again to let the reader know another of the short term impacts of their choice. Make sense?

That’s all there is to it! I know - surprisingly simple, but it’s quite a bit to get your head around! Still, that’s one of my favourite coding tricks, and you can use it to reference any choice then refer to it later. Let me just give you a quick coding summary, to make sure you get how to use this in your own work. So, the choice that you’ll refer to later on, should look like this at the start:

“Option One Is This!”{

}“Option Two Is This!”{

}“Option Three Is This!”{

}“Let’s Have A Fourth Option!”{

}“Okay, Last Option Now!”{


Then, to refer to it that choice later on, you’d use this coding:

if (REFERENCENAME is “Option One Is This!”){

#consequences of originally picking first option

}if (REFERENCENAME is “Option Two Is This!”){

#consequences of originally picking second option

}if (REFERENCENAME is “Option Three Is This!”){

#consequences of originally picking third option

}if (REFERENCE is “Let’s Have A Fourth Option!”){

#consequences of originally picking fourth option


#consequences of originally picking fifth option


I really hope that makes sense! The trick is, if you want to make a choice feel like it really counts, refer to it as much as you can. In The Blazing Sky, the first choice about whether you wanted to wake up or lie in was then referred to SIX TIMES in the first episode! It didn’t change the plot or anything significant, but that choice the reader made did have small impacts on the story, and gave the reader the impression that their choices did matter - which they did! But, I didn’t have any nasty coding - and choices that matter can easily get really complicated very quickly, even if you only have 3 or 4 options - which was great! So, I hope this method I’ve taught you has helped you and inspired you to try and add choices that matter in your story. Let me know below if you’re used this method and found it helpful - and feel free to let me know if you’re really confused with all this, as my method for adding choices that matter can be daunting at first! Also, top tip - if you use my method in your story, thoroughly test every option and check the later references to the choice you originally made are correct, and that it all works as you want it to!

Sidenote: Thank you Arrows.Episode for reminding me to check - I can confirm that this method will only work for references to choices within a single episode. For those of you wanting a shortcut for remembering and referring to choices across episodes, to do this, create a type in choice but only allow certain phrases/options to be accepted when entered. You can then use a similar coding to that above, where if you labelled the input as (WORD) you’d then use:

if (WORD = “Option One”){

}if (WORD = “Option Two”){



…to refer to that choice in another episode. But, if that doesn’t make sense, fell free to use gains and points as usual, and for newer authors, you can ignore that and stick with the first method I explained if you just want to make small choices that only matter within one episode. If you’re at all confused anyone, feel free to comment below or shoot me DM at tarastarofficial on Instagram.

Anyway, see you next time! I hope this article helped, and feel free to check out my other articles for lots of other interesting advice! xx

Adding Choices?
Tara explains: 5 special tips that will improve your contest entry

Thank you so much for this! I am definitely going to try this out on one of my stories. I want to get better at using the Gain and the points system in the future. But for now this seems like what I’ll be doing :grinning:.


You’re amazing! Love ya girl!


Haha! You’re most welcome! And don’t worry - if you need a hand with gains and points, I can help with that too. I actually have another article on all the advanced coding things - ifs, elses, labels, gotos, gains, points… just search “Tara explains” in the search bar and it should come up. Feel free to let me know if you need a hand with anything! xx


I’m amazing? Says the one co-running a help page, and writing… what… five stories at the minute? I’m pretty sure you’re the fab one!! :two_hearts:


No problem! I’m glad you like this article, and I hope you find it useful! :heart:




Thank you for sharing this :grin: It’s really helpful!


what do you write if the reader chooses one of the options ?


Let’s say I want several options to have one outcome. would this work?

if (REFERENCENAME is “Option One Is This!”){

#consequences of originally picking first option


#consequences of originally picking options 2, 3 …



Hi so I am having trouble with my script.
Wait would you like to change how Maddy looks?
@MADDY enters from left to screen left
}“No she looks awesome”{

Ok then, suit yourself. 


label female_custom1

What do you look like?

“Skin Tone” {
goto fem_skin1
“Hair” {
goto fem_hair1


As you can see I want to be able to make the customization happen or not at all. Is there any way of doing this.


Can anyone tell me why my choices that matter are coming up like this please?


Click on Navigation and on the bottom you’ll have Enable Picker make sure it’s on OFF


I don’t quite understand your question… could you explain it a little more and I’ll do my best to help!


Yes! I wrote an article on how to make a dressing game optional (search Tara explains and it should come up) and essentially you do the same thing. You need to create an initial yes/no choice and use labels and gotos to direct the reader to the start of the story if they don’t want to customise the story, or direct them to the beginning of the customisation template. I recommend reading through my article on how to create an optional dressing game, and then hopefully it should make a bit more sense! Let me know if you have any problems.


It should work if there’s only two options, but if you have more than two then you’d need to do:

if (REFERENCENAME is “Option 1”) {

#option one

} if (REFERENCENAME is “Option 2”) {

#option two

} else {

#option three

As you can see, you’d basically need to repeat the coding line for option two for however many options you have (if that sounds confusing, read the last bit of the article again where I summarise the coding). I hope this makes sense and answers your question - let me know if you need more help!


Thanks for making this! I’m not the best at complex choices yet, so I’ll definitely be using this in the meantime.


Hi Tara!
I’ve tried doing this in my story but it keeps bringing up an error every time I try to label the choice! I tried copy and pasting the format you’ve got in your example but it’s still not working. What am I doing wrong?

Thank you!


Hmm, it’s hard to say without looking at your script. Could you send me a PM with your coding and the error, so I can try to help? Thanks.