The *fake_choice command is an alternative to the *choice command. To the player, a *choice and a *fake_choice appear identical.
However, there is one important difference: unlike the standard *choice command, *fake_choice does not actually require the use of any other commands within the body of the #options text, so you can use it simply to prompt interaction with the player and display a textual response for each particular #option.
While it doesn't require any other commands, you can use other commands in combination with a *fake_choice, in the same way as a regular *choice.
A simple example:
Mike really does make it sound like Jill has been seeing Ben behind your back. *fake_choice #Mike doesn't fool me. He has always been jealous of how much Jill loves me. It's fairly obvious to you that Mike is just trying to make you dump Jill. #Mike seems to say stuff like that a lot. He just likes to cause trouble. You simply ignore Mike's petty mischief, knowing what he's really like. #I burst out laughing. The whole idea is ridiculous. I mean . . . Ben?! You realize that the whole idea of Jill and Ben together is so ridiculous, it's laughable. Not very surprisingly, Mike seems upset that you don't appear to believe him! *finish
The above example will display a particular response for each option, depending on the player's choice, and then immediately after -- regardless of the option choice -- it will display the line beginning "Not very surprisingly..." Note that even the individual option responses are not strictly necessary; if you prefer, it could simply respond with the "Not very surprisingly..." line as the sole response to all three options.
While it's easy to dismiss the *fake_choice command in preference to an actual *choice, simply because it doesn't require the use of any additional commands within the options body, that would be missing the whole point of this particular command.
*fake_choice is an opportunity for the player to further interact with the story in a way that can be every bit as entertaining or rewarding for the player as would an ordinary *choice option, but without the need for additional coding, thereby enhancing the game experience with considerably less effort. Judicious use of *fake_choice can help to build character, emphasize plot details, aid immersion in the game world, and enhance interaction.
However, overuse of simplistic *fake_choices, or too obviously fake ("How do you feel about that?" or similar) can also have the exact opposite effect on an experienced player of ChoiceScript games, and may serve only to spoil that player's enjoyment of your story.
When is a *fake not a *fake?
Interestingly (and very usefully, from our point of view), more-recent versions of ChoiceScript appear to have expanded on the original *fake_choice command described above and now allow (but still don't actually require) the inclusion of certain other handy commands within the #Options body. You can now employ such as the very useful *set and even *selectable_if commands within the body of a *fake_choice, without needing to *finish or *goto a specific *label for each #Option as the full *choice command demands.
|More commands / functions|
|Choice||*choice, *fake_choice, *disable_reuse, *hide_reuse, *allow_reuse, *selectable_if|
|Variable||*create, *temp, *set, Arithmetic operators, *delete, *input_number, *input_text, *print, *rand|
|Conditional||*if, *elseif, *else, Multireplace|
|Goto||*label, *goto, *goto_scene, *goto_random_scene, *gosub, *gosub_scene, *finish|
|Formatting||Bold text, Italic text, *image, *line_break, *page_break, *link, *stat_chart|
|Miscellaneous||*comment, *scene_list, *title, *author, *achieve, *achievement, *check_achievements, *bug, *ending, *more_games, *share_this_game, *show_password, *script, Implicit Control Flow|