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.
Usage
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:
*scene_list startup chapter1 chapter2 chapter3 chapter5
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? *choice #The horse. You like the horse! *finish #The donkey. You like the donkey! *finish
Or as a result of some condition or other:
*if (horse_like) You like the horse! *finish *elseif (donkey_like) You like the donkey! *finish *else You don't like anything! *finish
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]
Note
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 |