# Store Variables

Ren'Py has a number of store variables that control its function. Store variables may be changed at any time. If a store variable is changed after the game has started, it will be be saved and loaded by the save system, and rolled-back when rollback occurs.

`adv` = Character(...)

  This is a template ADV-mode character, and the default character kind that is used when `Character()` is called.

`_confirm_quit` = True

  This determines if quitting the game asks for confirmation. It is set to False during the splashscreen, and is ignored when in the main menu.

`_dismiss_pause` = True

  If True, the player can dismiss pauses and transitions.

`_game_menu_screen` = "save"

  This is the screen that is displayed when entering the game menu with no more specific screen selected. (For example, when right-clicking, pressing escape, or when `ShowMenu()` is not given an argument.) If None, entry to the game menu is disallowed.

  This is set to None at the start of the splashscreen, and restored to its original value when the splashscreen ends.

`_history` = True

  If true, Ren'Py will record dialogue history when a line is shown. (Note that `config.history_list_length` must be set as well.)

`_history_list` = [ ]

  This is a list of history objects, corresponding to each line of history from oldest to newest. See the History section for more information.

`main_menu` = False

  Ren'Py sets this variable to True while in the main menu. This can be used to have screens display differently while in the main menu.

`_menu` = False

  Ren'Py sets this variable to True when entering a main menu or game menu context.

`menu` = renpy.display_menu

  The function that's called to display the in-gamemenu. It should take the same arguments as :func`renpy.display_menu`. Assigning `nvl_menu()` to this will display an nvl-mode menu.

`mouse_visible` = True

  Controls if the mouse is visible. This is automatically set to true when entering the standard game menus.

`name_only` = Character(...)

  This is a template character that is used when a string is given as the character name in a say statement. The code:

      "Eileen" "Hello, world."

  is equivalent to:

      $ temp_char = Character("Eileen", kind=name_only)
      temp_char "Hello, world."

  except that the temp_char variable is not used.

`narrator` = Character(...)

  This is the character that speaks narration (say statements that do not give a character or character name). The code:

      "Hello, world."

  is equivalent to:

      narrator "Hello, world."

`_rollback` = True

  Controls if rollback is allowed.

`say` = ...

  A function that is called by Ren'Py to display dialogue. This is called with three arguments. The first argument (who) is the character saying the dialogue (or None for the narrator). The second argument(what) is what dialogue is being said.

  The third argument must be a keyword argument named interact and defaulting to True. If true, the say function will wait for a click. If false, it will immediately return with the dialogue displayed on the screen.

  It's rare to call this function directly, as one can simply call a character with dialogue. This variable mostly exists to be redefined, as a way of hooking the say statement.

`save_name` = ""

  A save name that is included with saves.

`_skipping` = True

  Controls of if skipping is allowed.

`_window` = False

  This set by the `window show` and `window hide` statements, and indirectly by `window auto`. If true, the dialogue window is shown during non-dialogue statements.

`_window_auto` = False

  This is set to true by `window auto` and to false by `window show` and `window hide`. If true, the window auto behavior occurs.

`_window_subtitle` = ''

  This is appended to `config.window_title` to produce the caption for the game window. This is automatically set to `config.menu_window_subtitle` while in the game menu.