ChoiceScript Wiki

    The *finish command is one of two commands by which you are able to move the story on from one scene file to the next, the other being *goto_scene.


While *goto_scene (name) allows you to specify a particular scene file, by default the *finish command simply jumps to the next sequential scene listed in the *scene_list section of the startup.txt file. For example:


In this example our scenes are named chapters1-5 and appear in the scene list as shown above. A *finish in chapter1 will always load chapter2, while a *finish in chapter2 will always load chapter3, etc.

*finish is typically used as follows, often within a *choice statement:

What do you like more?


    #The horse.

        You like the horse!


    #The donkey.

        You like the donkey!


Or as a result of some condition or other:

*if (horse_like)

    You like the horse!


*elseif (donkey_like)

    You like the donkey!



    You don't like anything!


Or indeed, at virtually any point in your script where you want the story to just skip anything else in this scene file and move on to the next scene file in the startup.txt *scene_list.

Customizing the "Next Chapter" button

By default the *finish command displays a button with the words "Next Chapter". However, you can change the button wording to anything you like, simply by adding the required text to the command itself, as follows:

*finish End of Chapter One

Note that you can now also use Italic text on a *finish button.

*finish [i]End of Chapter One[/i]


It is worth bearing in mind that any *temp variables (and their current values) created in the current scene file will be lost from memory the instant that a new scene file is loaded using the *finish command. Where this may cause continuity problems in your story / scripting, you should instead define those variables in startup.txt using the *create command.

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