Illegal to fall out of a *choice statement, I can't see why it would be falling off

I have been trying to fix this for an hour
i am useing a true/false vaule to give the player certain atrubtes like the honorifics they use, in the case of whats falling out is the honorific Dr.
I had it set as the label statement of everyother time I needed to use that answer, after it didn’t work I tried flipping it so it was a goto and not the label, but that didn’t work either
the part of the code in question looks like this


 #I am not a woman or a man, I use they/them pronouns
        *set they true
          Nice to meet you Mr. or Mx. or Ms. or Dr.? what honorific would you like to use?
          *Choice
            #Mr.
              *label mr
              *set mr true
            #Mx.
              *label mx 
              *set mx true
            #Ms.
              *label ms
              *set ms true
            #Dr.
              *goto dr
                  ok just a few more things, how old are you? (this will effect romantic options)
                 *Choice
                  #I am a child
                    *label child
                    *set Child true
                  #I am a teenager
                    *label teenager
                    *set teenager true
                  #I am an adult
                    *label adult
                    *set adult true

from what I can see it should just continue onto the age section but its not, what do I do?

1 Like

From the wiki:

For any #option to be considered valid it must ultimately end in either a *finish, *goto, *goto_scene or *ending command, and before the next #option in the list.

I assume your code is not working because your choices are not ending in a goto.

Besides that, I’m not really sure why you are using boolean values to set honorifics? If you store the honorific itself as a variable, it’ll be much easier to use it later. The way you’re going about it, I assume you’ll have to go through a lenghty if/else every time you want to know which honorific the player has chosen.

This is how I would do it:

*fake_choice
    #Mr.
        *set honorific "Mr."
    #Mx.
        *set honorific "Mx."
    #Ms.
        *set honorific "Ms."
    #Dr.
        *set honorific "Dr."

Note that I personally prefer to use “fake_choice” for these kind of decisions that don’t branch the narrative, bypassing the need to have a goto at the end of every choice.

1 Like

CS has a requirement that you always need to have a *goto, *finish or *ending at the bottom of *choice options and *elses. So you need to have one on yours to go to a *label even if the *label is right below where you are.

To add to the answer above, its possible to disable this *goto at the end requirement by using implici_control_flow.

You can also use *fake_choice instead.

4 Likes

Please try to remember to wrap your code in preformatted tags, i.e.:

```my code```

This will preserve indentation, which is a common cause of problems. That’ll then help us to help you.
I’ve edited your post for you, this time.

5 Likes