Indents for choice blocks are tricky when you’re getting started.
You’ll generally have three indent levels:
*choice
#option (mb w *hide_reuse/other inline command)
Stuff after option (eg text, *set, *goto)
but sometimes four, if one or more option only appears *if some variable is right:
*choice
*if (conditions_on_option = "satisfied")
#option
Stuff after option (text, *set, *goto)
It’s possible to do the *if as an inline command at the same indent level as the #option it refers to, as Stewart suggested. Personally I find it easier to parse it when I give it its own line/indent level, especially if (a) I’m using other inline commands like *hide_reuse or *selectable_if, or (b) there’s a whole bunch of variables behind the *if:
*choice
*if ((straight and cis) and (white and male)) and middle_class
*selectable_if neurotypical #option
Stuff after option
The problem with your original snippet is that the #option and the “Stuff after option” (in this case just a goto) are indented to the same level.
That’s a problem because as long as there’s any possibility that your *choice block is continuing, the computer will try to understand and display everything you put at that indent level as an #option.
That’s what that error message is telling you: “you’re telling me with the indents that this line is an #option, but it starts with *goto, not #”.
Edit: as an aside,
*if (t_belief) =true
doesn’t need the parentheses… it’ll work just fine either as *if t_belief = true
or just *if t_belief
. If you want to use it as an inline command, putting parentheses like this *if (t_belief = true)
will make it more likely to be parsed correctly.