Reference Manual: (offline | online) Quickstart: (offline | online)

# NVL Mode

NVL mode is a mode in which Ren'Py shows more than one line of dialogue on the screen at once. This is used to better emulate the Japanese visual novel format, whereas the default settings of Ren'Py emulate the ADV format.

To use NVL mode, one must declare NVLCharacters, instead of regular characters.

Function: NVLCharacter( | name, clear=False, **kwargs)

clear - if set, causes the screen to be cleared after this character speaks.

Declares an NVLCharacter. Additional keyword arguments are as for Character .

The narrator can also be made an NVLCharacter, by setting the narrator variable to an NVLCharacter with the name of None.

    init:
        $ e = NVLCharacter("Eileen", color="#c8ffc8")
        $ narrator = NVLCharacter(None)

When dialogue is spoken with an NVLCharacter, it is added to the end of a buffer, and then the entire contents of that buffer are shown to the user. The buffer can be cleared using the `nvl clear` statement. It should be cleared before the first use.

    nvl clear

    e "This is the first line of the first screen."

    e "This is the second line of the first screen."

    nvl clear

    e "This is the first line of the second screen."

    e "This is the second line of the second screen."

The `nvl show` transition statement causes a transition to occur from the previous screen to a screen with the buffer shown. The `nvl hide` transition statement causes a transition to occur from a screen with the buffer shown to a screen without the buffer shown.

Menus. The `nvl_menu` function shows a menu in NVL-mode. To use it, it should be assigned to `menu` in an init block, using code like:

    init:
        $ menu = nvl_menu

As nvl-mode menus are shown without being added to the buffer, we suggest clearing the buffer (using `nvl clear`) immediately after each menu.

### Functions

For each of the nvl-mode statements, there is an equivalent python function. There is also a function with no statement equivalent.

Function: nvl_clear( | )

Equivalent to `nvl clear`.

Function: nvl_hide( | transition)

Equivalent to `nvl hide` transition.

Function: nvl_show( | transition)

Equivalent to `nvl show` transition.

Function: nvl_erase( | )

Calling this function erases the bottom line on the NVL-mode screen. If there are no lines on the NVL-mode screen, does nothing. This can be used to replace the bottom line with something else, or to re-show it with different text.

### Styles

There are several styles that are used by the nvl-mode.

Style: nvl_window (inherits from default)

The style of the window containing the displayed nvl_mode buffer.

Style: nvl_vbox (inherits from vbox)

The style of a vbox containing each of the nvl_mode entries.

Style: nvl_label (inherits from say_label)

The style of the label giving a NVLCharacter's name.

Style: nvl_dialogue (inherits from say_dialogue)

The style of a NVLCharacter's dialogue.

Style: nvl_entry (inherits from default)

The style of a window containing the name and dialogue from each NVLCharacter.

Style: nvl_menu_window (inherits from default)

The style of a window containing a menu shown in NVL mode.

Style: nvl_menu_choice (inherits from default)

The style of the text of a menu choice in NVL-mode.

Style: nvl_menu_choice_chosen (inherits from nvl_menu_choice)

The style of a menu choice in NVL-mode, that has been chosen at least once by the user.

Style: nvl_menu_choice_button (inherits from default)

The style of a button containing a menu choice in NVL-mode.

Style: nvl_menu_choice_chosen_button (inherits from nvl_menu_choice_button)

The style of a button containing a menu choice in NVL-mode, when that choice has been chosen at least once by the user.

Reference Manual: (offline | online) Quickstart: (offline | online)