renpy/doc/screen_special.html

960 lines
68 KiB
HTML
Raw Normal View History

2023-01-18 22:13:55 +00:00
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Special Screen Names &#8212; Ren&#39;Py Documentation</title>
<link rel="stylesheet" href="_static/renpydoc.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-3.3.6/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-3.3.6/css/bootstrap-theme.min.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="_static/js/jquery-fix.js"></script>
<script type="text/javascript" src="_static/bootstrap-3.3.6/js/bootstrap.min.js"></script>
<script type="text/javascript" src="_static/bootstrap-sphinx.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Screen Language Optimization" href="screen_optimization.html" />
<link rel="prev" title="Screen Actions, Values, and Functions" href="screen_actions.html" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
</head><body>
<div id="navbar" class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">
Ren&#39;Py Documentation</a>
<span class="navbar-text navbar-version pull-left"><b>7.5.3</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li><a href="https://www.renpy.org">Home Page</a></li>
<li><a href="https://www.renpy.org/doc/html/">Online Documentation</a></li>
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="index.html">Site <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"><ul>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="gui.html">GUI Customization Guide</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="language_basics.html">Language Basics</a></li>
<li class="toctree-l1"><a class="reference internal" href="label.html">Labels &amp; Control Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="dialogue.html">Dialogue and Narration</a></li>
<li class="toctree-l1"><a class="reference internal" href="displaying_images.html">Displaying Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="menus.html">In-Game Menus</a></li>
<li class="toctree-l1"><a class="reference internal" href="python.html">Python Statements</a></li>
<li class="toctree-l1"><a class="reference internal" href="conditional.html">Conditional Statements</a></li>
<li class="toctree-l1"><a class="reference internal" href="audio.html">Audio</a></li>
<li class="toctree-l1"><a class="reference internal" href="movie.html">Movie</a></li>
<li class="toctree-l1"><a class="reference internal" href="voice.html">Voice</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="text.html">Text</a></li>
<li class="toctree-l1"><a class="reference internal" href="translation.html">Translation</a></li>
<li class="toctree-l1"><a class="reference internal" href="displayables.html">Displayables</a></li>
<li class="toctree-l1"><a class="reference internal" href="transforms.html">Transforms</a></li>
<li class="toctree-l1"><a class="reference internal" href="transitions.html">Transitions</a></li>
<li class="toctree-l1"><a class="reference internal" href="atl.html">Animation and Transformation Language</a></li>
<li class="toctree-l1"><a class="reference internal" href="matrixcolor.html">Matrixcolor</a></li>
<li class="toctree-l1"><a class="reference internal" href="layeredimage.html">Layered Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="3dstage.html">3D Stage</a></li>
<li class="toctree-l1"><a class="reference internal" href="live2d.html">Live2D Cubism</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="style.html">Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="style_properties.html">Style Properties</a></li>
<li class="toctree-l1"><a class="reference internal" href="screens.html">Screens and Screen Language</a></li>
<li class="toctree-l1"><a class="reference internal" href="screen_actions.html">Screen Actions, Values, and Functions</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Special Screen Names</a></li>
<li class="toctree-l1"><a class="reference internal" href="screen_optimization.html">Screen Language Optimization</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="preferences.html">Preference Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="store_variables.html">Store Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="mouse.html">Custom Mouse Cursors</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="launcher.html">Launcher</a></li>
<li class="toctree-l1"><a class="reference internal" href="developer_tools.html">Developer Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="director.html">Interactive Director</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="nvl_mode.html">NVL-Mode Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="input.html">Text Input</a></li>
<li class="toctree-l1"><a class="reference internal" href="side_image.html">Side Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="rooms.html">Image Gallery, Music Room, and Replay Actions</a></li>
<li class="toctree-l1"><a class="reference internal" href="drag_drop.html">Drag and Drop</a></li>
<li class="toctree-l1"><a class="reference internal" href="sprites.html">Sprites</a></li>
<li class="toctree-l1"><a class="reference internal" href="keymap.html">Customizing the Keymap</a></li>
<li class="toctree-l1"><a class="reference internal" href="achievement.html">Achievements</a></li>
<li class="toctree-l1"><a class="reference internal" href="history.html">Dialogue History</a></li>
<li class="toctree-l1"><a class="reference internal" href="multiple.html">Multiple Character Dialogue</a></li>
<li class="toctree-l1"><a class="reference internal" href="splashscreen_presplash.html">Splashscreen and Presplash</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="statement_equivalents.html">Statement Equivalents</a></li>
<li class="toctree-l1"><a class="reference internal" href="save_load_rollback.html">Saving, Loading, and Rollback</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistent.html">Persistent Data</a></li>
<li class="toctree-l1"><a class="reference internal" href="trans_trans_python.html">Transforms and Transitions in Python</a></li>
<li class="toctree-l1"><a class="reference internal" href="gui_advanced.html">Advanced GUI</a></li>
<li class="toctree-l1"><a class="reference internal" href="screen_python.html">Screens and Python</a></li>
<li class="toctree-l1"><a class="reference internal" href="modes.html">Modes</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdd.html">Creator-Defined Displayables</a></li>
<li class="toctree-l1"><a class="reference internal" href="cds.html">Creator-Defined Statements</a></li>
<li class="toctree-l1"><a class="reference internal" href="custom_text_tags.html">Custom Text Tags</a></li>
<li class="toctree-l1"><a class="reference internal" href="character_callbacks.html">Character Callbacks</a></li>
<li class="toctree-l1"><a class="reference internal" href="file_python.html">File Access</a></li>
<li class="toctree-l1"><a class="reference internal" href="color_class.html">Color Class</a></li>
<li class="toctree-l1"><a class="reference internal" href="matrix.html">Matrix</a></li>
<li class="toctree-l1"><a class="reference internal" href="model.html">Model-Based Rendering</a></li>
<li class="toctree-l1"><a class="reference internal" href="other.html">Other Functions and Variables</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="build.html">Building Distributions</a></li>
<li class="toctree-l1"><a class="reference internal" href="updater.html">Web Updater</a></li>
<li class="toctree-l1"><a class="reference internal" href="android.html">Android</a></li>
<li class="toctree-l1"><a class="reference internal" href="chromeos.html">Chrome OS/Chromebook</a></li>
<li class="toctree-l1"><a class="reference internal" href="ios.html">iOS</a></li>
<li class="toctree-l1"><a class="reference internal" href="iap.html">In-App Purchasing</a></li>
<li class="toctree-l1"><a class="reference internal" href="gesture.html">Gestures</a></li>
<li class="toctree-l1"><a class="reference internal" href="raspi.html">Raspberry Pi</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="security.html">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="problems.html">Dealing with Problems</a></li>
<li class="toctree-l1"><a class="reference internal" href="environment_variables.html">Environment Variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="self_voicing.html">Self-Voicing</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="editor.html">Text Editor Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="skins.html">Skins</a></li>
<li class="toctree-l1"><a class="reference internal" href="translating_renpy.html">Translating Ren'Py</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog (Ren'Py 7.x-)</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog6.html">Changelog (Ren'Py 6.11 - 6.99)</a></li>
<li class="toctree-l1"><a class="reference internal" href="incompatible.html">Incompatible Changes</a></li>
<li class="toctree-l1"><a class="reference internal" href="distributor.html">Distributor Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a></li>
<li class="toctree-l1"><a class="reference internal" href="sponsors.html">Ren'Py Development Sponsors</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="thequestion.html">Script of The Question</a></li>
<li class="toctree-l1"><a class="reference internal" href="thequestion_nvl.html">NVL-mode script for The Question</a></li>
</ul>
</ul>
</li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-3">
<div id="sidebar" class="bs-sidenav" role="complementary"><ul>
<li><a class="reference internal" href="#">Special Screen Names</a><ul>
<li><a class="reference internal" href="#in-game-screens">In-Game Screens</a><ul>
<li><a class="reference internal" href="#say">Say</a></li>
<li><a class="reference internal" href="#choice">Choice</a></li>
<li><a class="reference internal" href="#input">Input</a></li>
<li><a class="reference internal" href="#nvl">NVL</a></li>
<li><a class="reference internal" href="#notify">Notify</a></li>
<li><a class="reference internal" href="#skip-indicator">Skip Indicator</a></li>
<li><a class="reference internal" href="#ctc-click-to-continue">CTC (Click-To-Continue)</a></li>
</ul>
</li>
<li><a class="reference internal" href="#out-of-game-menu-screens">Out-Of-Game Menu Screens</a><ul>
<li><a class="reference internal" href="#main-menu">Main Menu</a></li>
<li><a class="reference internal" href="#navigation">Navigation</a></li>
<li><a class="reference internal" href="#save">Save</a></li>
<li><a class="reference internal" href="#load">Load</a></li>
<li><a class="reference internal" href="#preferences">Preferences</a></li>
<li><a class="reference internal" href="#confirm">Confirm</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="col-md-9 content">
<div class="section" id="special-screen-names">
<h1>Special Screen Names<a class="headerlink" href="#special-screen-names" title="Permalink to this headline"> link</a></h1>
<p>There are two kinds of special screen names in Ren'Py. The first are
screens that will be automatically displayed when Ren'Py script
language commands (or their programmatic equivalents) are run. The
other type are menu screens. These have conventional names for
conventional functionality, but screens can be omitted or changed as
is deemed necessary.</p>
<p>On this page, we'll give example screens. It's important to realize
that, while some screens must have minimal functionality, the screen
system makes it possible to add additional functionality to
screens. For example, while the standard say screen only displays
text, the screen system makes it easy to add features like skipping,
auto-forward mode, or muting.</p>
<p>Some special screens take parameters. These parameters can be accessed
as variables in the screen's scope.</p>
<p>Some of the screens also have special ids associated with them. A
special id should be assigned to a displayable of a given type. It can
cause properties to be assigned to that displayable, and can make that
displayable accessible to the part of Ren'Py that displays the screen.</p>
<div class="section" id="in-game-screens">
<h2>In-Game Screens<a class="headerlink" href="#in-game-screens" title="Permalink to this headline"> link</a></h2>
<p>These screens are automatically displayed when certain Ren'Py
statements execute.</p>
<div class="section" id="say">
<span id="say-screen"></span><h3>Say<a class="headerlink" href="#say" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">say</span></code> screen is called by the say statement, when displaying
ADV-mode dialogue. It is displayed with the following parameters:</p>
<dl class="docutils">
<dt><cite>who</cite></dt>
<dd>The text of the name of the speaking character.</dd>
<dt><cite>what</cite></dt>
<dd>The dialogue being said by the speaking character.</dd>
</dl>
<p>It's expected to declare displayables with the following ids:</p>
<dl class="docutils">
<dt>&quot;who&quot;</dt>
<dd>A text displayable, displaying the name of the speaking
character. The character object can be given arguments that style
this displayable.</dd>
<dt>&quot;what&quot;</dt>
<dd>A text displayable, displaying the dialogue being said by the
speaking character. The character object can be given arguments that style
this displayable. <strong>A displayable with this id must be defined</strong>,
as Ren'Py uses it to calculate auto-forward-mode time,
click-to-continue, and other things.</dd>
<dt>&quot;window&quot;</dt>
<dd>A window or frame. This conventionally contains the who and what
text. The character object can be given arguments that style
this displayable.</dd>
</dl>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">say</span><span class="p">(</span><span class="n">who</span><span class="p">,</span> <span class="n">what</span><span class="p">):</span>
<span class="k">window</span> <span class="na">id</span> <span class="s2">&quot;window&quot;</span><span class="p">:</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">if</span> <span class="n">who</span><span class="p">:</span>
<span class="k">text</span> <span class="n">who</span> <span class="na">id</span> <span class="s2">&quot;who&quot;</span>
<span class="k">text</span> <span class="n">what</span> <span class="na">id</span> <span class="s2">&quot;what&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="choice">
<span id="choice-screen"></span><h3>Choice<a class="headerlink" href="#choice" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">choice</span></code> screen is used to display the in-game choices created
with the menu statement. It is given the following parameter:</p>
<dl class="docutils">
<dt><cite>items</cite></dt>
<dd><p class="first">This is a list of menu entry objects, representing each of the
choices in the menu. Each of the objects has the following
fields on it:</p>
<dl class="attribute">
<dt id="caption">
<code class="descname">caption</code><a class="headerlink" href="#caption" title="Permalink to this definition"> link</a></dt>
<dd><p>A string giving the caption of the menu choice.</p>
</dd></dl>
<dl class="attribute">
<dt id="action">
<code class="descname">action</code><a class="headerlink" href="#action" title="Permalink to this definition"> link</a></dt>
<dd><p>An action that should be invoked when the menu choice is
chosen. This may be None if this is a menu caption, and
<a class="reference internal" href="config.html#var-config.narrator_menu"><code class="xref std std-var docutils literal notranslate"><span class="pre">config.narrator_menu</span></code></a> is False.</p>
</dd></dl>
<dl class="attribute">
<dt id="chosen">
<code class="descname">chosen</code><a class="headerlink" href="#chosen" title="Permalink to this definition"> link</a></dt>
<dd><p>This is True if this choice has been chosen at least once
in any playthrough of the game.</p>
</dd></dl>
<dl class="attribute">
<dt id="args">
<code class="descname">args</code><a class="headerlink" href="#args" title="Permalink to this definition"> link</a></dt>
<dd><p>This is a tuple that contains any positional arguments passed
to the menu choice.</p>
</dd></dl>
<dl class="last attribute">
<dt id="kwargs">
<code class="descname">kwargs</code><a class="headerlink" href="#kwargs" title="Permalink to this definition"> link</a></dt>
<dd><p>This is a dictionary that contains any keyword arguments passed
to the menu choice.</p>
</dd></dl>
</dd>
</dl>
<p>In addition, any arguments passed to a menu statement are passed in during
the call to the screen.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="k">choice</span><span class="p">(</span><span class="n">items</span><span class="p">):</span>
<span class="k">window</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;menu_window&quot;</span>
<span class="k">vbox</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;menu&quot;</span>
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="n">items</span><span class="p">:</span>
<span class="k">if</span> <span class="n">i</span><span class="o">.</span><span class="na">action</span><span class="p">:</span>
<span class="k">button</span><span class="p">:</span>
<span class="na">action</span> <span class="n">i</span><span class="o">.</span><span class="na">action</span>
<span class="k">style</span> <span class="s2">&quot;menu_choice_button&quot;</span>
<span class="k">text</span> <span class="n">i</span><span class="o">.</span><span class="na">caption</span> <span class="k">style</span> <span class="s2">&quot;menu_choice&quot;</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">text</span> <span class="n">i</span><span class="o">.</span><span class="na">caption</span> <span class="k">style</span> <span class="s2">&quot;menu_caption&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="input">
<span id="input-screen"></span><h3>Input<a class="headerlink" href="#input" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">input</span></code> screen is used to display <a class="reference internal" href="input.html#renpy.input" title="renpy.input"><code class="xref py py-func docutils literal notranslate"><span class="pre">renpy.input()</span></code></a>. It is given one
parameter:</p>
<dl class="docutils">
<dt><cite>prompt</cite></dt>
<dd>The prompt text supplied to renpy.input.</dd>
</dl>
<p>It is expected to declare a displayable with the following id:</p>
<dl class="docutils">
<dt>&quot;input&quot;</dt>
<dd>An input displayable, which must exist. This is given all the
parameters supplied to renpy.input, so it must exist.</dd>
</dl>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="nb">input</span><span class="p">(</span><span class="n">prompt</span><span class="p">):</span>
<span class="k">window</span><span class="p">:</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">text</span> <span class="n">prompt</span>
<span class="nb">input</span> <span class="na">id</span> <span class="s2">&quot;input&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="nvl">
<span id="nvl-screen"></span><h3>NVL<a class="headerlink" href="#nvl" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">nvl</span></code> screen is used to display NVL-mode dialogue. It is given
the following parameter:</p>
<dl class="docutils">
<dt><cite>dialogue</cite></dt>
<dd><p class="first">A list of NVL Entry objects, each of which corresponds to a line
of dialogue to be displayed. Each entry has the following
fields:</p>
<dl class="attribute">
<dt id="current">
<code class="descname">current</code><a class="headerlink" href="#current" title="Permalink to this definition"> link</a></dt>
<dd><p>True if this is the current line of dialogue. The current
line of dialogue must have its what text displayed with an
id of &quot;what&quot;.</p>
</dd></dl>
<dl class="attribute">
<dt id="who">
<code class="descname">who</code><a class="headerlink" href="#who" title="Permalink to this definition"> link</a></dt>
<dd><p>The name of the speaking character, or None of there is no
such name.</p>
</dd></dl>
<dl class="attribute">
<dt id="what">
<code class="descname">what</code><a class="headerlink" href="#what" title="Permalink to this definition"> link</a></dt>
<dd><p>The text being spoken.</p>
</dd></dl>
<dl class="attribute">
<dt>
<code class="descname">who_id, what_id, window_id</code></dt>
<dd><p>Preferred ids for the speaker, dialogue, and window associated with an
entry.</p>
</dd></dl>
<dl class="attribute">
<dt>
<code class="descname">who_args, what_args, window_args</code></dt>
<dd><p>Properties associated with the speaker, dialogue, and window. These
are automatically applied if the id is set as above, but are also
made available separately.</p>
</dd></dl>
<dl class="last attribute">
<dt id="multiple">
<code class="descname">multiple</code><a class="headerlink" href="#multiple" title="Permalink to this definition"> link</a></dt>
<dd><p>If <a class="reference internal" href="multiple.html"><span class="doc">multiple character dialogue</span></a>, this is
a two component tuple. The first component is the one-based number
of the dialogue block, and the second is the total number of dialogue
blocks in the multiple statement.</p>
</dd></dl>
</dd>
<dt><cite>items</cite></dt>
<dd>This is the same list of items that would be supplied to the
<a class="reference internal" href="#choice-screen"><span class="std std-ref">choice screen</span></a>. If this is empty,
the menu should not be shown.</dd>
</dl>
<p>When <cite>items</cite> is not present, the NVL screen is expected to always
give a text widget an id of &quot;what&quot;. Ren'Py uses it to calculate
auto-forward-mode time, click-to-continue, and other things. (This is
satisfied automatically if the default what_id is used.)</p>
<p>Ren'Py also supports an <code class="docutils literal notranslate"><span class="pre">nvl_choice</span></code> screen, which takes the same
parameters as <code class="docutils literal notranslate"><span class="pre">nvl</span></code>, and is used in preference to <code class="docutils literal notranslate"><span class="pre">nvl</span></code> when
an in-game choice is presented to the user, if it exists.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="k">nvl</span><span class="p">(</span><span class="n">dialogue</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">window</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;nvl_window&quot;</span>
<span class="k">has</span> <span class="k">vbox</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;nvl_vbox&quot;</span>
<span class="c1"># Display dialogue.</span>
<span class="k">for</span> <span class="n">d</span> <span class="k">in</span> <span class="n">dialogue</span><span class="p">:</span>
<span class="k">window</span><span class="p">:</span>
<span class="na">id</span> <span class="n">d</span><span class="o">.</span><span class="n">window_id</span>
<span class="k">has</span> <span class="k">hbox</span><span class="p">:</span>
<span class="na">spacing</span> <span class="mi">10</span>
<span class="k">if</span> <span class="n">d</span><span class="o">.</span><span class="n">who</span> <span class="k">is</span> <span class="k">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">text</span> <span class="n">d</span><span class="o">.</span><span class="n">who</span> <span class="na">id</span> <span class="n">d</span><span class="o">.</span><span class="n">who_id</span>
<span class="k">text</span> <span class="n">d</span><span class="o">.</span><span class="n">what</span> <span class="na">id</span> <span class="n">d</span><span class="o">.</span><span class="n">what_id</span>
<span class="c1"># Display a menu, if given.</span>
<span class="k">if</span> <span class="n">items</span><span class="p">:</span>
<span class="k">vbox</span><span class="p">:</span>
<span class="na">id</span> <span class="s2">&quot;menu&quot;</span>
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="n">items</span><span class="p">:</span>
<span class="k">if</span> <span class="na">action</span><span class="p">:</span>
<span class="k">button</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;nvl_menu_choice_button&quot;</span>
<span class="na">action</span> <span class="n">i</span><span class="o">.</span><span class="na">action</span>
<span class="k">text</span> <span class="n">i</span><span class="o">.</span><span class="na">caption</span> <span class="k">style</span> <span class="s2">&quot;nvl_menu_choice&quot;</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">text</span> <span class="n">i</span><span class="o">.</span><span class="na">caption</span> <span class="k">style</span> <span class="s2">&quot;nvl_dialogue&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="notify">
<span id="notify-screen"></span><h3>Notify<a class="headerlink" href="#notify" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">notify</span></code> screen is used by <a class="reference internal" href="other.html#renpy.notify" title="renpy.notify"><code class="xref py py-func docutils literal notranslate"><span class="pre">renpy.notify()</span></code></a> to display
notifications to the user. It's generally used in conjunction with a
transform to handle the entire task of notification. It's given a
single parameter:</p>
<dl class="docutils">
<dt><cite>message</cite></dt>
<dd>The message to display.</dd>
</dl>
<p>The default notify screen, and its associated transform, are:</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">notify</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
<span class="k">zorder</span> <span class="mi">100</span>
<span class="k">text</span> <span class="n">message</span> <span class="k">at</span> <span class="n">_notify_transform</span>
<span class="c1"># This controls how long it takes between when the screen is</span>
<span class="c1"># first shown, and when it begins hiding.</span>
<span class="k">timer</span> <span class="mf">3.25</span> <span class="na">action</span> <span class="n">Hide</span><span class="p">(</span><span class="s1">&#39;notify&#39;</span><span class="p">)</span>
<span class="k">transform</span> <span class="n">_notify_transform</span><span class="p">:</span>
<span class="c1"># These control the position.</span>
<span class="na">xalign</span> <span class="o">.</span><span class="mi">02</span> <span class="na">yalign</span> <span class="o">.</span><span class="mi">015</span>
<span class="c1"># These control the actions on show and hide.</span>
<span class="k">on</span> <span class="k">show</span><span class="p">:</span>
<span class="na">alpha</span> <span class="mi">0</span>
<span class="n">linear</span> <span class="o">.</span><span class="mi">25</span> <span class="na">alpha</span> <span class="mf">1.0</span>
<span class="k">on</span> <span class="k">hide</span><span class="p">:</span>
<span class="n">linear</span> <span class="o">.</span><span class="mi">5</span> <span class="na">alpha</span> <span class="mf">0.0</span>
</pre></div>
</div>
</div>
<div class="section" id="skip-indicator">
<span id="id1"></span><h3>Skip Indicator<a class="headerlink" href="#skip-indicator" title="Permalink to this headline"> link</a></h3>
<p>If present, <code class="docutils literal notranslate"><span class="pre">skip_indicator</span></code> screen is displayed when skipping is in progress,
and hidden when skipping finishes. It takes no parameters.</p>
<p>Here's a very simple skip indicator screen:</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">skip_indicator</span><span class="p">():</span>
<span class="k">zorder</span> <span class="mi">100</span>
<span class="k">text</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Skipping&quot;</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="ctc-click-to-continue">
<span id="ctc-screen"></span><h3>CTC (Click-To-Continue)<a class="headerlink" href="#ctc-click-to-continue" title="Permalink to this headline"> link</a></h3>
<p>If present, the <code class="docutils literal notranslate"><span class="pre">ctc</span></code> screen is displayed when dialogue has finished
showing, to prompt the player to click to display more text. It may be
given a single parameter and multiple keyword arguments.</p>
<dl class="docutils">
<dt><cite>arg</cite></dt>
<dd>The ctc displayable selected by the <a class="reference internal" href="dialogue.html#Character" title="Character"><code class="xref py py-func docutils literal notranslate"><span class="pre">Character()</span></code></a>. This is one of
the <cite>ctc</cite>, <cite>ctc_pause</cite>, or <cite>ctc_timedpause</cite> arguments to Character,
as appropriate. If no CTC is given to the Character, this argument is not passed at
all.</dd>
</dl>
<p>In addition, there are several parameters that are only passed if the screen requires
them.</p>
<dl class="docutils">
<dt><cite>ctc_kind</cite></dt>
<dd>The kind of CTC to display. One of &quot;last&quot; (for the last CTC on a line),
&quot;pause&quot;, or &quot;timedpause&quot;.</dd>
<dt><cite>ctc_last</cite></dt>
<dd>The <cite>ctc</cite> argument to <a class="reference internal" href="dialogue.html#Character" title="Character"><code class="xref py py-func docutils literal notranslate"><span class="pre">Character()</span></code></a>.</dd>
<dt><cite>ctc_pause</cite></dt>
<dd>The <cite>ctc_pause</cite> argument to <a class="reference internal" href="dialogue.html#Character" title="Character"><code class="xref py py-func docutils literal notranslate"><span class="pre">Character()</span></code></a>.</dd>
<dt><cite>ctc_timedpause</cite></dt>
<dd>The <cite>ctc_timedpause</cite> argument to <a class="reference internal" href="dialogue.html#Character" title="Character"><code class="xref py py-func docutils literal notranslate"><span class="pre">Character()</span></code></a>.</dd>
</dl>
<p>Here's a very simple ctc screen:</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">ctc</span><span class="p">(</span><span class="n">arg</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">zorder</span> <span class="mi">100</span>
<span class="k">text</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Click to Continue&quot;</span><span class="p">):</span>
<span class="na">size</span> <span class="mi">12</span>
<span class="na">xalign</span> <span class="mf">0.98</span>
<span class="na">yalign</span> <span class="mf">0.98</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="out-of-game-menu-screens">
<h2>Out-Of-Game Menu Screens<a class="headerlink" href="#out-of-game-menu-screens" title="Permalink to this headline"> link</a></h2>
<p>These are the menu screens. The <code class="docutils literal notranslate"><span class="pre">main_menu</span></code> and <code class="docutils literal notranslate"><span class="pre">yesno_prompt</span></code> are
invoked implicitly. When the user invokes the game menu, the screen
named in <code class="xref py py-data docutils literal notranslate"><span class="pre">_game_menu_screen</span></code> will be displayed. (This defaults
to <code class="docutils literal notranslate"><span class="pre">save</span></code>.)</p>
<p>Remember, menu screens can be combined and modified fairly freely.</p>
<div class="section" id="main-menu">
<span id="main-menu-screen"></span><h3>Main Menu<a class="headerlink" href="#main-menu" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">main_menu</span></code> screen is the first screen shown when the game
begins.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">main_menu</span><span class="p">():</span>
<span class="c1"># This ensures that any other menu screen is replaced.</span>
<span class="k">tag</span> <span class="k">menu</span>
<span class="c1"># The background of the main menu.</span>
<span class="k">window</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;mm_root&quot;</span>
<span class="c1"># The main menu buttons.</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;mm&quot;</span>
<span class="na">xalign</span> <span class="o">.</span><span class="mi">98</span>
<span class="na">yalign</span> <span class="o">.</span><span class="mi">98</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Start Game&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Start</span><span class="p">()</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Load Game&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">ShowMenu</span><span class="p">(</span><span class="s2">&quot;load&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Preferences&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">ShowMenu</span><span class="p">(</span><span class="s2">&quot;preferences&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Help&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Help</span><span class="p">()</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Quit&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Quit</span><span class="p">(</span><span class="n">confirm</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="k">style</span> <span class="n">mm_button</span><span class="p">:</span>
<span class="na">size_group</span> <span class="s2">&quot;mm&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="navigation">
<span id="navigation-screen"></span><h3>Navigation<a class="headerlink" href="#navigation" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">navigation</span></code> screen isn't special to Ren'Py. But by convention,
we place the game menu navigation in a screen named <code class="docutils literal notranslate"><span class="pre">navigation</span></code>, and
then use that screen from the save, load and preferences screens.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">navigation</span><span class="p">():</span>
<span class="c1"># The background of the game menu.</span>
<span class="k">window</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;gm_root&quot;</span>
<span class="c1"># The various buttons.</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;gm_nav&quot;</span>
<span class="na">xalign</span> <span class="o">.</span><span class="mi">98</span>
<span class="na">yalign</span> <span class="o">.</span><span class="mi">98</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Return&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Return</span><span class="p">()</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Preferences&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">ShowMenu</span><span class="p">(</span><span class="s2">&quot;preferences&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Save Game&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">ShowMenu</span><span class="p">(</span><span class="s2">&quot;save&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Load Game&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">ShowMenu</span><span class="p">(</span><span class="s2">&quot;load&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Main Menu&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">MainMenu</span><span class="p">()</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Help&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Help</span><span class="p">()</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Quit&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Quit</span><span class="p">()</span>
<span class="k">style</span> <span class="n">gm_nav_button</span><span class="p">:</span>
<span class="na">size_group</span> <span class="s2">&quot;gm_nav&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="save">
<span id="save-screen"></span><h3>Save<a class="headerlink" href="#save" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">save</span></code> screen is used to select a file in which to save the
game.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">save</span><span class="p">():</span>
<span class="c1"># This ensures that any other menu screen is replaced.</span>
<span class="k">tag</span> <span class="k">menu</span>
<span class="k">use</span> <span class="n">navigation</span>
<span class="k">frame</span><span class="p">:</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="c1"># The buttons at the top allow the user to pick a</span>
<span class="c1"># page of files.</span>
<span class="k">hbox</span><span class="p">:</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Previous&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePagePrevious</span><span class="p">()</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Auto&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePage</span><span class="p">(</span><span class="s2">&quot;auto&quot;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="na">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">9</span><span class="p">):</span>
<span class="k">textbutton</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePage</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Next&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePageNext</span><span class="p">()</span>
<span class="c1"># Display a grid of file slots.</span>
<span class="k">grid</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">:</span>
<span class="na">transpose</span> <span class="kc">True</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="c1"># Display ten file slots, numbered 1 - 10.</span>
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="na">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">11</span><span class="p">):</span>
<span class="c1"># Each file slot is a button.</span>
<span class="k">button</span><span class="p">:</span>
<span class="na">action</span> <span class="n">FileAction</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="k">style</span> <span class="s2">&quot;large_button&quot;</span>
<span class="k">has</span> <span class="k">hbox</span>
<span class="c1"># Add the screenshot and the description to the</span>
<span class="c1"># button.</span>
<span class="k">add</span> <span class="n">FileScreenshot</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="k">text</span> <span class="p">(</span> <span class="s2">&quot; </span><span class="si">%2d</span><span class="s2">. &quot;</span> <span class="o">%</span> <span class="n">i</span>
<span class="o">+</span> <span class="n">FileTime</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">empty</span><span class="o">=</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Empty Slot.&quot;</span><span class="p">))</span>
<span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
<span class="o">+</span> <span class="n">FileSaveName</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="k">style</span> <span class="s2">&quot;large_button_text&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="load">
<span id="load-screen"></span><h3>Load<a class="headerlink" href="#load" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">load</span></code> screen is used to select a file from which to load the
game.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">load</span><span class="p">():</span>
<span class="c1"># This ensures that any other menu screen is replaced.</span>
<span class="k">tag</span> <span class="k">menu</span>
<span class="k">use</span> <span class="n">navigation</span>
<span class="k">frame</span><span class="p">:</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="c1"># The buttons at the top allow the user to pick a</span>
<span class="c1"># page of files.</span>
<span class="k">hbox</span><span class="p">:</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Previous&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePagePrevious</span><span class="p">()</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Auto&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePage</span><span class="p">(</span><span class="s2">&quot;auto&quot;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="na">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">9</span><span class="p">):</span>
<span class="k">textbutton</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePage</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Next&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">FilePageNext</span><span class="p">()</span>
<span class="c1"># Display a grid of file slots.</span>
<span class="k">grid</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">:</span>
<span class="na">transpose</span> <span class="kc">True</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="c1"># Display ten file slots, numbered 1 - 10.</span>
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="na">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">11</span><span class="p">):</span>
<span class="c1"># Each file slot is a button.</span>
<span class="k">button</span><span class="p">:</span>
<span class="na">action</span> <span class="n">FileAction</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="k">style</span> <span class="s2">&quot;large_button&quot;</span>
<span class="k">has</span> <span class="k">hbox</span>
<span class="c1"># Add the screenshot and the description to the</span>
<span class="c1"># button.</span>
<span class="k">add</span> <span class="n">FileScreenshot</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="k">text</span> <span class="p">(</span> <span class="s2">&quot; </span><span class="si">%2d</span><span class="s2">. &quot;</span> <span class="o">%</span> <span class="n">i</span>
<span class="o">+</span> <span class="n">FileTime</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">empty</span><span class="o">=</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Empty Slot.&quot;</span><span class="p">))</span>
<span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
<span class="o">+</span> <span class="n">FileSaveName</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="k">style</span> <span class="s2">&quot;large_button_text&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="preferences">
<span id="preferences-screen"></span><h3>Preferences<a class="headerlink" href="#preferences" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">preferences</span></code> screen is used to select options that control the
display of the game.</p>
<p>In general, the preferences are either actions or bar values returned
from <a class="reference internal" href="screen_actions.html#Preference" title="Preference"><code class="xref py py-func docutils literal notranslate"><span class="pre">Preference()</span></code></a>.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">preferences</span><span class="p">():</span>
<span class="k">tag</span> <span class="k">menu</span>
<span class="c1"># Include the navigation.</span>
<span class="k">use</span> <span class="n">navigation</span>
<span class="c1"># Put the navigation columns in a three-wide grid.</span>
<span class="k">grid</span> <span class="mi">3</span> <span class="mi">1</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;prefs&quot;</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="c1"># The left column.</span>
<span class="k">vbox</span><span class="p">:</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Display&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Window&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;display&quot;</span><span class="p">,</span> <span class="s2">&quot;window&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Fullscreen&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;display&quot;</span><span class="p">,</span> <span class="s2">&quot;fullscreen&quot;</span><span class="p">)</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Transitions&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;All&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;transitions&quot;</span><span class="p">,</span> <span class="s2">&quot;all&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;None&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;transitions&quot;</span><span class="p">,</span> <span class="s2">&quot;none&quot;</span><span class="p">)</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Text Speed&quot;</span><span class="p">)</span>
<span class="k">bar</span> <span class="na">value</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;text speed&quot;</span><span class="p">)</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Joystick...&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">ShowMenu</span><span class="p">(</span><span class="s2">&quot;joystick_preferences&quot;</span><span class="p">)</span>
<span class="k">vbox</span><span class="p">:</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Skip&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Seen Messages&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;skip&quot;</span><span class="p">,</span> <span class="s2">&quot;seen&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;All Messages&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;skip&quot;</span><span class="p">,</span> <span class="s2">&quot;all&quot;</span><span class="p">)</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Begin Skipping&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Skip</span><span class="p">()</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;After Choices&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Stop Skipping&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;after choices&quot;</span><span class="p">,</span> <span class="s2">&quot;stop&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Keep Skipping&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;after choices&quot;</span><span class="p">,</span> <span class="s2">&quot;skip&quot;</span><span class="p">)</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Auto-Forward Time&quot;</span><span class="p">)</span>
<span class="k">bar</span> <span class="na">value</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;auto-forward time&quot;</span><span class="p">)</span>
<span class="k">vbox</span><span class="p">:</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Music Volume&quot;</span><span class="p">)</span>
<span class="k">bar</span> <span class="na">value</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;music volume&quot;</span><span class="p">)</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Sound Volume&quot;</span><span class="p">)</span>
<span class="k">bar</span> <span class="na">value</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;sound volume&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="s2">&quot;Test&quot;</span> <span class="na">action</span> <span class="n">Play</span><span class="p">(</span><span class="s2">&quot;sound&quot;</span><span class="p">,</span> <span class="s2">&quot;sound_test.ogg&quot;</span><span class="p">)</span> <span class="k">style</span> <span class="s2">&quot;soundtest_button&quot;</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;pref&quot;</span>
<span class="k">has</span> <span class="k">vbox</span>
<span class="k">label</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Voice Volume&quot;</span><span class="p">)</span>
<span class="k">bar</span> <span class="na">value</span> <span class="n">Preference</span><span class="p">(</span><span class="s2">&quot;voice volume&quot;</span><span class="p">)</span>
<span class="k">textbutton</span> <span class="s2">&quot;Test&quot;</span> <span class="na">action</span> <span class="n">Play</span><span class="p">(</span><span class="s2">&quot;voice&quot;</span><span class="p">,</span> <span class="s2">&quot;voice_test.ogg&quot;</span><span class="p">)</span> <span class="k">style</span> <span class="s2">&quot;soundtest_button&quot;</span>
<span class="k">style</span> <span class="n">pref_frame</span><span class="p">:</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="na">xmargin</span> <span class="mi">5</span>
<span class="na">top_margin</span> <span class="mi">5</span>
<span class="k">style</span> <span class="n">pref_vbox</span><span class="p">:</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="k">style</span> <span class="n">pref_button</span><span class="p">:</span>
<span class="na">size_group</span> <span class="s2">&quot;pref&quot;</span>
<span class="na">xalign</span> <span class="mf">1.0</span>
<span class="k">style</span> <span class="n">pref_slider</span><span class="p">:</span>
<span class="na">xmaximum</span> <span class="mi">192</span>
<span class="na">xalign</span> <span class="mf">1.0</span>
<span class="k">style</span> <span class="n">soundtest_button</span><span class="p">:</span>
<span class="na">xalign</span> <span class="mf">1.0</span>
</pre></div>
</div>
</div>
<div class="section" id="confirm">
<span id="confirm-screen"></span><span id="yesno-prompt-screen"></span><h3>Confirm<a class="headerlink" href="#confirm" title="Permalink to this headline"> link</a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">confirm</span></code> screen is used to ask yes/no choices of the
user. It takes the following parameters:</p>
<dl class="docutils">
<dt><cite>message</cite></dt>
<dd><p class="first">The message to display to the user. This is one of:</p>
<ul class="simple">
<li>gui.ARE_YOU_SURE - &quot;Are you sure?&quot; This should be the default if the message is unknown.</li>
<li>gui.DELETE_SAVE - &quot;Are you sure you want to delete this save?&quot;</li>
<li>gui.OVERWRITE_SAVE - &quot;Are you sure you want to overwrite your save?&quot;</li>
<li>gui.LOADING - &quot;Loading will lose unsaved progress.nAre you sure you want to do this?&quot;</li>
<li>gui.QUIT - &quot;Are you sure you want to quit?&quot;</li>
<li>gui.MAIN_MENU - &quot;Are you sure you want to return to the mainnmenu? This will lose unsaved progress.&quot;</li>
<li>gui.END_REPLAY - &quot;Are you sure you want to end the replay?&quot;</li>
<li>gui.SLOW_SKIP - &quot;Are you sure you want to begin skipping?&quot;</li>
<li>gui.FAST_SKIP_SEEN - &quot;Are you sure you want to skip to the next choice?&quot;</li>
<li>gui.FAST_SKIP_UNSEEN - &quot;Are you sure you want to skip unseen dialogue to the next choice?&quot;</li>
</ul>
<p class="last">The values of the variables are strings, which means they can be
displayed using a text displayable.</p>
</dd>
<dt><cite>yes_action</cite></dt>
<dd>The action to run when the user picks &quot;Yes&quot;.</dd>
<dt><cite>no_action</cite></dt>
<dd>The action to run when the user picks &quot;No&quot;.</dd>
</dl>
<p>Until Ren'Py 6.99.10, this screen was known as the <code class="docutils literal notranslate"><span class="pre">yesno_prompt</span></code> screen.
If no <code class="docutils literal notranslate"><span class="pre">confirm</span></code> screen is present, <code class="docutils literal notranslate"><span class="pre">yesno_prompt</span></code> is used instead.</p>
<div class="highlight-renpy notranslate"><div class="highlight"><pre><span></span><span class="k">screen</span> <span class="n">confirm</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="n">yes_action</span><span class="p">,</span> <span class="n">no_action</span><span class="p">):</span>
<span class="na">modal</span> <span class="kc">True</span>
<span class="k">window</span><span class="p">:</span>
<span class="k">style</span> <span class="s2">&quot;gm_root&quot;</span>
<span class="k">frame</span><span class="p">:</span>
<span class="na">style_prefix</span> <span class="s2">&quot;confirm&quot;</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="na">xmargin</span> <span class="mi">50</span>
<span class="na">ypadding</span> <span class="mi">25</span>
<span class="na">yalign</span> <span class="o">.</span><span class="mi">25</span>
<span class="k">vbox</span><span class="p">:</span>
<span class="na">xfill</span> <span class="kc">True</span>
<span class="na">spacing</span> <span class="mi">25</span>
<span class="k">text</span> <span class="n">_</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
<span class="na">text_align</span> <span class="mf">0.5</span>
<span class="na">xalign</span> <span class="mf">0.5</span>
<span class="k">hbox</span><span class="p">:</span>
<span class="na">spacing</span> <span class="mi">100</span>
<span class="na">xalign</span> <span class="o">.</span><span class="mi">5</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Yes&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">yes_action</span>
<span class="k">textbutton</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;No&quot;</span><span class="p">)</span> <span class="na">action</span> <span class="n">no_action</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<p class="pull-right">
<a href="#">Back to top</a>
</p>
<p>
&copy; Copyright 2012-2022, Tom Rothamel.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.6.<br/>
</p>
</div>
</footer>
</body>
</html>