<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cobblemon.com/index.php?action=history&amp;feed=atom&amp;title=Dialogues</id>
	<title>Dialogues - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cobblemon.com/index.php?action=history&amp;feed=atom&amp;title=Dialogues"/>
	<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Dialogues&amp;action=history"/>
	<updated>2026-05-10T04:47:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=8180&amp;oldid=prev</id>
		<title>Hiroku: mandatory dialogue field mention</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=8180&amp;oldid=prev"/>
		<updated>2026-01-23T03:04:58Z</updated>

		<summary type="html">&lt;p&gt;mandatory dialogue field mention&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:04, 23 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l117&quot;&gt;Line 117:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 117:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Each option object can have the following properties:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Each option object can have the following properties:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: The unique value of the dialogue option. This is not displayed to the player and is instead used to reference this option from scripts.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: The unique value of the dialogue option. This is not displayed to the player and is instead used to reference this option from scripts&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This property is mandatory&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;The display text for the option. This can be a simple string or can be an object&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;The display text for the option. This can be a simple string or can be an object&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This property is mandatory.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;: The MoLang expression to run when the user chooses the option.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;: The MoLang expression to run when the user chooses the option.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hiroku</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=6422&amp;oldid=prev</id>
		<title>Hiroku: line breaks would help here</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=6422&amp;oldid=prev"/>
		<updated>2025-11-01T10:04:06Z</updated>

		<summary type="html">&lt;p&gt;line breaks would help here&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:04, 1 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l118&quot;&gt;Line 118:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: The unique value of the dialogue option. This is not displayed to the player and is instead used to reference this option from scripts.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: The unique value of the dialogue option. This is not displayed to the player and is instead used to reference this option from scripts.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;The display text for the option. This can be a simple string or can be an object&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;The display text for the option. This can be a simple string or can be an object&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;: The MoLang expression to run when the user chooses the option.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;: The MoLang expression to run when the user chooses the option.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;isVisible&amp;lt;/code&amp;gt;: A MoLang expression which must return either true or false. If false, the option will not be visible for the player. Defaults to true.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;isVisible&amp;lt;/code&amp;gt;: A MoLang expression which must return either true or false. If false, the option will not be visible for the player. Defaults to true.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;isSelectable&amp;lt;/code&amp;gt;: A MoLang expression which must return either true or false. If false, the option will be greyed out (but only if it is visible). Defaults to true.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;isSelectable&amp;lt;/code&amp;gt;: A MoLang expression which must return either true or false. If false, the option will be greyed out (but only if it is visible). Defaults to true.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hiroku</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=5753&amp;oldid=prev</id>
		<title>Hiroku: Added gibber, clientActions, and background information</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=5753&amp;oldid=prev"/>
		<updated>2025-04-19T05:14:07Z</updated>

		<summary type="html">&lt;p&gt;Added gibber, clientActions, and background information&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:14, 19 April 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l24&quot;&gt;Line 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 24:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;face&amp;lt;/code&amp;gt;: An object or MoLang expression that defines the speaker&amp;#039;s face. This will be rendered in a frame of the GUI. For objects, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to the type of face. The only object type support currently is &amp;quot;standard&amp;quot;. The others are done using MoLang expressions rather than an object.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;face&amp;lt;/code&amp;gt;: An object or MoLang expression that defines the speaker&amp;#039;s face. This will be rendered in a frame of the GUI. For objects, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to the type of face. The only object type support currently is &amp;quot;standard&amp;quot;. The others are done using MoLang expressions rather than an object.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &amp;lt;code&gt;gibber&amp;lt;/code&gt;: An object defining the gibber behaviour. This can be defined as simply &amp;lt;code&gt;{}&amp;lt;/code&gt; to use the default settings, or as a full object with any of the properties that you want to set. See the section on &amp;lt;code&gt;gibber&amp;lt;/code&gt; further below to see the properties that are available.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Faces===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Faces===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l62&quot;&gt;Line 62:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 64:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;face&amp;quot;: &amp;quot;q.npc.face();&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;face&amp;quot;: &amp;quot;q.npc.face();&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Gibber===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;An additional feature of dialogues is having the text appear gradually and with a simplistic set of tones that mimic speech, referred to here as gibbering. Gibbering has many options and all have sensible defaults. The properties available are as follows:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &amp;lt;code&gt;graduallyShowText&amp;lt;/code&gt;: A boolean which, when true, will cause the text in the GUI to gradually be typed out. When false, gibbering sound effects will play but all of the text will be visible from the beginning. Defaults to true.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &amp;lt;code&gt;allowSkip&amp;lt;/code&gt;: Whether or not clicking in the dialogue box will skip the gibbering and display all of the text at once. If false, the player must wait until the entirety of the gibbering has occurred before they can continue to the next page.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;step&amp;lt;/code&gt;: The number of characters between each gibber. A gibber will play for the current character index and then, after some time interval, this step will be used to move to a later character in the text to play the next gibber. When gradually revealing text is on, a larger step will mean that text will appear in larger chunks. Defaults to 4 characters.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;interval&amp;lt;/code&gt;: The time (in seconds) between each gibber sound. A smaller value will make the sounds come more rapidly, and the text will appear more quickly if gradually showing text. Defaults to 0.1 seconds.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;minPitch&amp;lt;/code&gt;: The minimum pitch multiplier that could be used when randomly selecting a tone. Defaults to 0.8.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;maxPitch&amp;lt;/code&gt;: The maximum pitch multiplier that could be used when randomly selecting a tone. Defaults to 1.2.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;minVolume&amp;lt;/code&gt;: The minimum volume multiplier that could be used when randomly selecting a tone. Defaults to 0.75.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;maxVolume&amp;lt;/code&gt;: The maximum volume multiplier that could be used when randomly selecting a tone. Defaults to 1.1.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;sounds&amp;lt;/code&gt;: A list of resource locations indicating which sound events should be chosen from when playing a gibber. It can be any number of sounds. Defaults to three sounds: &amp;lt;code&gt;&quot;cobblemon:entity.villager.npc1&quot;&amp;lt;/code&gt;, &amp;lt;code&gt;&quot;cobblemon:entity.villager.npc2&quot;&amp;lt;/code&gt;, and &amp;lt;code&gt;&quot;cobblemon:entity.villager.npc1&quot;&amp;lt;/code&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Pages==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Pages==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l74&quot;&gt;Line 74:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt;: An object or string that defines the input prompt. If it&amp;#039;s an object, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to &amp;lt;code&amp;gt;&amp;quot;option&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;text&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;auto-continue&amp;quot;&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;&amp;quot;none&amp;quot;&amp;lt;/code&amp;gt;, and other properties depending on the type. By default, the input value will be &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt;: An object or string that defines the input prompt. If it&amp;#039;s an object, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to &amp;lt;code&amp;gt;&amp;quot;option&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;text&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;auto-continue&amp;quot;&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;&amp;quot;none&amp;quot;&amp;lt;/code&amp;gt;, and other properties depending on the type. By default, the input value will be &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &amp;lt;code&gt;gibber&amp;lt;/code&gt;: A page-specific gibber configuration. See above for more information about gibber objects. By default this is null, and will therefore fallback to the gibber that is on the &amp;lt;code&gt;speaker&amp;lt;/code&gt; for this page, if any is.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &amp;lt;code&gt;clientActions&amp;lt;/code&gt;: A list of MoLang expressions that will run on the client after the first frame of the page has been rendered on the client. This can be used to play sounds with &amp;lt;code&gt;&quot;q.sound(...)&quot;&amp;lt;/code&gt;, or even play animations on the face being rendered (if it is a Bedrock animated entity) by doing, for example, &amp;lt;code&gt;&quot;q.face.play_animation(&#039;win&#039;);&quot;&amp;lt;/code&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;escapeAction&amp;lt;/code&amp;gt;: A string or array that defines the action to be taken when the page is escaped. This can be a MoLang expression or a sequence of MoLang expressions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- &amp;lt;code&amp;gt;escapeAction&amp;lt;/code&amp;gt;: A string or array that defines the action to be taken when the page is escaped. This can be a MoLang expression or a sequence of MoLang expressions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &amp;lt;code&gt;background&amp;lt;/code&gt;: A resource location to use as the background texture for the dialogue box. By default this is null, which will result in Cobblemon&#039;s internal texture to be used.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Input Types==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Input Types==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l143&quot;&gt;Line 143:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 172:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             &amp;quot;shiny&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             &amp;quot;shiny&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           ]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           ]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        },&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        &quot;gibber&quot;: {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          &quot;step&quot;: 2,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          &quot;interval&quot;: 0.07,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          &quot;allowSkip&quot;: false&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       },&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       },&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l227&quot;&gt;Line 227:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 261:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;id&amp;quot;: &amp;quot;player-surrogate&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;id&amp;quot;: &amp;quot;player-surrogate&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;speaker&amp;quot;: &amp;quot;player&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;speaker&amp;quot;: &amp;quot;player&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        &quot;gibber&quot;: {},&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;lines&amp;quot;: [&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;lines&amp;quot;: [&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hiroku</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=4788&amp;oldid=prev</id>
		<title>Hiroku: Created Dialogues page</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Dialogues&amp;diff=4788&amp;oldid=prev"/>
		<updated>2024-06-28T04:38:09Z</updated>

		<summary type="html">&lt;p&gt;Created Dialogues page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Dialogues are a feature that can be used from API or from datapacks to play conversations in a GUI. They display entities, view pages of text, and handle various types of input.&lt;br /&gt;
&lt;br /&gt;
A dialogue that has been registered through a datapack can be opened using the /opendialogue command.&lt;br /&gt;
&lt;br /&gt;
Every case of a MoLang expression can be either a single text property or can be an array of text to support running multiple expressions to produce a result.&lt;br /&gt;
&lt;br /&gt;
[[File:Dialogue_Intro.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
=Dialogue=&lt;br /&gt;
&lt;br /&gt;
A Dialogue JSON file consists of the following main elements:&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;escapeAction&amp;lt;/code&amp;gt;: A string or array that defines the action to be taken when the dialogue is escaped. This can be a MoLang expression or a sequence of MoLang expressions.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;speakers&amp;lt;/code&amp;gt;: An object that defines the speakers in the dialogue. Each speaker is represented by a key-value pair, where the key is the speaker&amp;#039;s identifier and the value is an object that describes what the speaker looks like and their name.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;pages&amp;lt;/code&amp;gt;: An array of objects, each representing a page in the dialogue.&lt;br /&gt;
&lt;br /&gt;
==Speakers==&lt;br /&gt;
&lt;br /&gt;
Each speaker is represented by an object with the following properties:&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;: A string or object that defines the speaker&amp;#039;s name. This is usually just text. If it&amp;#039;s an object, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to &amp;lt;code&amp;gt;&amp;quot;expression&amp;quot;&amp;lt;/code&amp;gt; and an &amp;lt;code&amp;gt;expression&amp;lt;/code&amp;gt; property that contains a MoLang expression. You would use an expression if you wanted the name to be dynamic.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;face&amp;lt;/code&amp;gt;: An object or MoLang expression that defines the speaker&amp;#039;s face. This will be rendered in a frame of the GUI. For objects, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to the type of face. The only object type support currently is &amp;quot;standard&amp;quot;. The others are done using MoLang expressions rather than an object.&lt;br /&gt;
&lt;br /&gt;
===Faces===&lt;br /&gt;
The speaker faces can be defined in multiple ways. If it is an object it is going to be a &amp;quot;standard&amp;quot; face type.&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;standard&amp;quot;====&lt;br /&gt;
The standard face type is for when the face displayed is not connected to a specific entity in the world but does follow Cobblemon&amp;#039;s format of identifier and aspect list. The object must have the following properties:&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;modelType&amp;lt;/code&amp;gt;: One of &amp;#039;pokemon&amp;#039;, &amp;#039;npc&amp;#039;&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;identifier&amp;lt;/code&amp;gt;: The identifier of the Pokémon or NPC, such as &amp;lt;code&amp;gt;cobblemon:bulbasaur&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;aspects&amp;lt;/code&amp;gt;: An array of aspects that will be applied to the model.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;face&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;artificial&amp;quot;,&lt;br /&gt;
    &amp;quot;modelType&amp;quot;: &amp;quot;pokemon&amp;quot;,&lt;br /&gt;
    &amp;quot;identifier&amp;quot;: &amp;quot;cobblemon:pikachu&amp;quot;,&lt;br /&gt;
    &amp;quot;aspects&amp;quot;: [&lt;br /&gt;
      &amp;quot;shiny&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
====player====&lt;br /&gt;
By using &amp;lt;code&amp;gt;q.player.face()&amp;lt;/code&amp;gt; you can make the player&amp;#039;s model render for this face.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;face&amp;quot;: &amp;quot;q.player.face();&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====npc====&lt;br /&gt;
By using &amp;lt;code&amp;gt;q.npc.face()&amp;lt;/code&amp;gt; you can show a direct reference to the NPC you&amp;#039;re having the dialogue with, if this was dialogue started with an NPC entity.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;face&amp;quot;: &amp;quot;q.npc.face();&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Pages==&lt;br /&gt;
&lt;br /&gt;
Each page is represented by an object with the following properties:&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;: A string that uniquely identifies the page. This is needed for instances where you might want to jump to a specific page. Page numbers could be used, but you should use page IDs.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;speaker&amp;lt;/code&amp;gt;: A string that specifies the speaker&amp;#039;s identifier. This depends upon the speaker by this identifier existing in the speakers list.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;: An array of strings or objects, each representing a line of text. If it&amp;#039;s an object, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to &amp;lt;code&amp;gt;&amp;quot;expression&amp;quot;&amp;lt;/code&amp;gt; and an &amp;lt;code&amp;gt;expression&amp;lt;/code&amp;gt; property that contains a MoLang expression that evaluates to a string. You would use an expression if you want to include variables to make dynamic text.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt;: An object or string that defines the input prompt. If it&amp;#039;s an object, it must have a &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; property set to &amp;lt;code&amp;gt;&amp;quot;option&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;text&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;auto-continue&amp;quot;&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;&amp;quot;none&amp;quot;&amp;lt;/code&amp;gt;, and other properties depending on the type. By default, the input value will be &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;escapeAction&amp;lt;/code&amp;gt;: A string or array that defines the action to be taken when the page is escaped. This can be a MoLang expression or a sequence of MoLang expressions.&lt;br /&gt;
&lt;br /&gt;
==Input Types==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; property in a page object can have different structures depending on the &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For all inputs that specify an &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt; property which is set to a MoLang expression, you can access the time it took for them to make that input using &amp;lt;code&amp;gt;v.seconds_taken_to_input&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;option&amp;quot;===&lt;br /&gt;
The input is a set of options. The object must have an &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt; property that is an array of objects, each representing an option. It can also specify whether the options should be displayed vertically or horizontally by whether or not the &amp;lt;code&amp;gt;vertical&amp;lt;/code&amp;gt; property is true or false.&lt;br /&gt;
&lt;br /&gt;
Each option object can have the following properties:&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: The unique value of the dialogue option. This is not displayed to the player and is instead used to reference this option from scripts.&lt;br /&gt;
- &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;The display text for the option. This can be a simple string or can be an object&lt;br /&gt;
- &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;: The MoLang expression to run when the user chooses the option.&lt;br /&gt;
- &amp;lt;code&amp;gt;isVisible&amp;lt;/code&amp;gt;: A MoLang expression which must return either true or false. If false, the option will not be visible for the player. Defaults to true.&lt;br /&gt;
- &amp;lt;code&amp;gt;isSelectable&amp;lt;/code&amp;gt;: A MoLang expression which must return either true or false. If false, the option will be greyed out (but only if it is visible). Defaults to true.&lt;br /&gt;
&lt;br /&gt;
[[File:Dialogue_Options.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;text&amp;quot;===&lt;br /&gt;
The input is a text field. The &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt; property is a MoLang expression that will run when the player hits enter with text typed in. As specified earlier, you can check the text that they input using &amp;lt;code&amp;gt;v.selected_option&amp;lt;/code&amp;gt; inside of the MoLang expression.&lt;br /&gt;
&lt;br /&gt;
[[File:Dialogue_Input.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;auto-continue&amp;quot;===&lt;br /&gt;
The dialogue will automatically progress after some period of time. There are several optional properties for this.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt;: The delay in seconds until it progresses. By default this is 5 seconds. &lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;allowSkip&amp;lt;/code&amp;gt;: Whether the user is able to skip the delay by clicking. By default this is true. If false, the player will be forced to wait for the delay.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;showTimer&amp;lt;/code&amp;gt;: Whether a bar will be displayed to indicate how much more time the player has until it auto-continues. Defaults to false.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;: A MoLang expression that runs when either the player clicks (only when &amp;lt;code&amp;gt;allowSkip&amp;lt;/code&amp;gt; is true) or the delay finishes. By default this moves to the next page.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;none&amp;quot;===&lt;br /&gt;
There is no input except that it waits until the user clicks to continue. The object can have an &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt; property that defines the MoLang expression to run when the player clicks. By default, it moves to the next page.&lt;br /&gt;
&lt;br /&gt;
===Timeouts===&lt;br /&gt;
All input types except for &amp;lt;code&amp;gt;&amp;quot;none&amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;quot;autocontinue&amp;quot;&amp;lt;/code&amp;gt; can have a &amp;#039;timeout&amp;#039; object which allows you to apply time constraints to the player viewing the page.&lt;br /&gt;
&lt;br /&gt;
The timeout object can have 3 properties:&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;: The time, in seconds, that the player will have to complete the input. By default this is 10 seconds.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;showTimer&amp;lt;/code&amp;gt;: Whether or not a bar will be shown to show the player how much time they have left. By default this is true.&lt;br /&gt;
&lt;br /&gt;
- &amp;lt;code&amp;gt;action&amp;lt;/code&amp;gt;: A MoLang expression to run if they do not enter the input in time. By default this will close the dialogue.&lt;br /&gt;
&lt;br /&gt;
[[File:Dialogue_Timer.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
The following example is built-in to the mod, labelled &amp;quot;example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;escapeAction&amp;quot;: &amp;quot;q.dialogue.set_page(&amp;#039;quitter&amp;#039;)&amp;quot;,&lt;br /&gt;
    &amp;quot;speakers&amp;quot;: {&lt;br /&gt;
      &amp;quot;pikachu&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;The Voice of Hiro&amp;quot;,&lt;br /&gt;
        &amp;quot;face&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;artificial&amp;quot;,&lt;br /&gt;
          &amp;quot;modelType&amp;quot;: &amp;quot;pokemon&amp;quot;,&lt;br /&gt;
          &amp;quot;identifier&amp;quot;: &amp;quot;cobblemon:pikachu&amp;quot;,&lt;br /&gt;
          &amp;quot;aspects&amp;quot;: [&lt;br /&gt;
            &amp;quot;shiny&amp;quot;&lt;br /&gt;
          ]&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;player&amp;quot;: {&lt;br /&gt;
        &amp;quot;face&amp;quot;: &amp;quot;q.player.face();&amp;quot;,&lt;br /&gt;
        &amp;quot;name&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
          &amp;quot;expression&amp;quot;: &amp;quot;q.player.username&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;pages&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;player-chat&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
            &amp;quot;expression&amp;quot;: &amp;quot;&amp;#039;Hello, I\\&amp;#039;m &amp;#039; + q.player.username + &amp;#039;!&amp;#039;&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
            &amp;quot;expression&amp;quot;: &amp;quot;&amp;#039;Nice to meet you, &amp;#039; + q.player.username + &amp;#039;! Welcome to the world of dialogues!&amp;#039;&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;intro&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [ &amp;quot;Do you want to learn more?&amp;quot;],&lt;br /&gt;
        &amp;quot;input&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;option&amp;quot;,&lt;br /&gt;
          &amp;quot;vertical&amp;quot;: false,&lt;br /&gt;
          &amp;quot;options&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;text&amp;quot;: &amp;quot;Yes&amp;quot;,&lt;br /&gt;
              &amp;quot;value&amp;quot;: &amp;quot;yes&amp;quot;,&lt;br /&gt;
              &amp;quot;action&amp;quot;: [&lt;br /&gt;
                &amp;quot;v.player_response = &amp;#039;That sounds great!&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;v.next_page = &amp;#039;page1&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;q.dialogue.set_page(&amp;#039;player-surrogate&amp;#039;);&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;text&amp;quot;: &amp;quot;No&amp;quot;,&lt;br /&gt;
              &amp;quot;value&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
              &amp;quot;action&amp;quot;: [&lt;br /&gt;
                &amp;quot;v.player_response = &amp;#039;No, I really don\\&amp;#039;t care.&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;v.next_page = &amp;#039;quitter&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;q.dialogue.set_page(&amp;#039;player-surrogate&amp;#039;);&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;text&amp;quot;: &amp;quot;Sword!&amp;quot;,&lt;br /&gt;
              &amp;quot;value&amp;quot;: &amp;quot;sword&amp;quot;,&lt;br /&gt;
              &amp;quot;isVisible&amp;quot;: &amp;quot;q.player.main_held_item.is_of(&amp;#039;minecraft:iron_sword&amp;#039;)&amp;quot;,&lt;br /&gt;
              &amp;quot;isSelectable&amp;quot;: &amp;quot;q.player.data.scared_npc != true;&amp;quot;,&lt;br /&gt;
              &amp;quot;action&amp;quot;: [&lt;br /&gt;
                &amp;quot;v.player_response = &amp;#039;How about you die! Muahahaha!&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;v.next_page = &amp;#039;sword&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;q.dialogue.set_page(&amp;#039;player-surrogate&amp;#039;);&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;text&amp;quot;: &amp;quot;Sword again!&amp;quot;,&lt;br /&gt;
              &amp;quot;value&amp;quot;: &amp;quot;sword2&amp;quot;,&lt;br /&gt;
              &amp;quot;isVisible&amp;quot;: &amp;quot;q.player.main_held_item.is_of(&amp;#039;minecraft:iron_sword&amp;#039;)&amp;quot;,&lt;br /&gt;
              &amp;quot;isSelectable&amp;quot;: &amp;quot;q.player.data.scared_npc == true;&amp;quot;,&lt;br /&gt;
              &amp;quot;action&amp;quot;: [&lt;br /&gt;
                &amp;quot;v.player_response = &amp;#039;How about you die... again! Muahahaha!&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;v.next_page = &amp;#039;sword-again&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;q.dialogue.set_page(&amp;#039;player-surrogate&amp;#039;);&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;player-surrogate&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
            &amp;quot;expression&amp;quot;: &amp;quot;v.player_response;&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;input&amp;quot;: &amp;quot;q.dialogue.set_page(v.next_page);&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;page1&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          &amp;quot;Well you see, this is a dialogue.&amp;quot;,&lt;br /&gt;
          &amp;quot;You can have multiple pages, and each page can have multiple lines.&amp;quot;&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;page2&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&amp;quot;On an unrelated note, did you know that I&amp;#039;m deeply afraid of iron swords? Anyway, cya!&amp;quot;],&lt;br /&gt;
        &amp;quot;input&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;auto-continue&amp;quot;,&lt;br /&gt;
          &amp;quot;delay&amp;quot;: 5,&lt;br /&gt;
          &amp;quot;allowSkip&amp;quot;: true,&lt;br /&gt;
          &amp;quot;action&amp;quot;: &amp;quot;q.dialogue.close();&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;quitter&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&amp;quot;Fine. Be that way.&amp;quot;],&lt;br /&gt;
        &amp;quot;input&amp;quot;: &amp;quot;q.dialogue.close();&amp;quot;,&lt;br /&gt;
        &amp;quot;escapeAction&amp;quot;: &amp;quot;q.dialogue.close();&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;sword&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&amp;quot;Oh god no, please don&amp;#039;t hurt me!&amp;quot;],&lt;br /&gt;
        &amp;quot;escapeAction&amp;quot;: &amp;quot;q.dialogue.input(&amp;#039;&amp;#039;);&amp;quot;,&lt;br /&gt;
        &amp;quot;input&amp;quot;: [&lt;br /&gt;
          &amp;quot;t.data = q.player.data();&amp;quot;,&lt;br /&gt;
          &amp;quot;t.data.scared_npc = true;&amp;quot;,&lt;br /&gt;
          &amp;quot;q.player.save_data();&amp;quot;,&lt;br /&gt;
          &amp;quot;q.dialogue.close();&amp;quot;&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;sword-again&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&amp;quot;I&amp;#039;m ready for you this time. YOU will die today!&amp;quot;],&lt;br /&gt;
        &amp;quot;escapeAction&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
        &amp;quot;input&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;option&amp;quot;,&lt;br /&gt;
          &amp;quot;vertical&amp;quot;: true,&lt;br /&gt;
          &amp;quot;timeout&amp;quot;: {&lt;br /&gt;
            &amp;quot;delay&amp;quot;: 6,&lt;br /&gt;
            &amp;quot;action&amp;quot;: &amp;quot;q.dialogue.input(&amp;#039;stand&amp;#039;);&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;options&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;text&amp;quot;: &amp;quot;Parry his attack.&amp;quot;,&lt;br /&gt;
              &amp;quot;value&amp;quot;: &amp;quot;parry&amp;quot;,&lt;br /&gt;
              &amp;quot;action&amp;quot;: [&lt;br /&gt;
                &amp;quot;v.reaction = &amp;#039;parry&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;q.dialogue.set_page(&amp;#039;sword-again-decided&amp;#039;);&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;text&amp;quot;: &amp;quot;Stand perfectly still.&amp;quot;,&lt;br /&gt;
              &amp;quot;value&amp;quot;: &amp;quot;stand&amp;quot;,&lt;br /&gt;
              &amp;quot;action&amp;quot;: [&lt;br /&gt;
                &amp;quot;v.reaction = &amp;#039;stand still&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;q.dialogue.set_page(&amp;#039;sword-again-decided&amp;#039;);&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              &amp;quot;text&amp;quot;: &amp;quot;Drop your sword.&amp;quot;,&lt;br /&gt;
              &amp;quot;value&amp;quot;: &amp;quot;drop&amp;quot;,&lt;br /&gt;
              &amp;quot;action&amp;quot;: [&lt;br /&gt;
                &amp;quot;v.reaction = &amp;#039;drop your sword&amp;#039;;&amp;quot;,&lt;br /&gt;
                &amp;quot;q.dialogue.set_page(&amp;#039;sword-again-decided&amp;#039;);&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            }&lt;br /&gt;
          ]&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;sword-again-decided&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
            &amp;quot;expression&amp;quot;: &amp;quot;v.reaction == &amp;#039;parry&amp;#039; ? &amp;#039;You parry his attack and kill him.&amp;#039; : (v.reaction == &amp;#039;stand still&amp;#039; ? &amp;#039;He kills you.&amp;#039; : &amp;#039;You drop your sword and he kills you.&amp;#039;)&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;input&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;auto-continue&amp;quot;,&lt;br /&gt;
          &amp;quot;delay&amp;quot;: 3,&lt;br /&gt;
          &amp;quot;allowSkip&amp;quot;: false,&lt;br /&gt;
          &amp;quot;showTimer&amp;quot;: false,&lt;br /&gt;
          &amp;quot;action&amp;quot;: &amp;quot;q.dialogue.set_page(&amp;#039;sword-again-reaction&amp;#039;);&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;sword-again-reaction&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
            &amp;quot;expression&amp;quot;: &amp;quot;&amp;#039;Nah, I\\&amp;#039;m just kidding. Interesting that you chose to &amp;#039; + v.reaction + &amp;#039; though.&amp;#039;&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;name-question&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [ &amp;quot;Here&amp;#039;s a puzzle though... What is my name? Lowercase only.&amp;quot;],&lt;br /&gt;
        &amp;quot;input&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
          &amp;quot;timeout&amp;quot;: {&lt;br /&gt;
            &amp;quot;delay&amp;quot;: 10,&lt;br /&gt;
            &amp;quot;action&amp;quot;: &amp;quot;q.dialogue.set_page(&amp;#039;too-slow&amp;#039;);&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;action&amp;quot;: [&lt;br /&gt;
            &amp;quot;q.dialogue.set_page(&amp;#039;name-speak&amp;#039;);&amp;quot;,&lt;br /&gt;
            &amp;quot;t.data = q.player.data();&amp;quot;&lt;br /&gt;
          ]&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;name-speak&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
            &amp;quot;expression&amp;quot;: &amp;quot;&amp;#039;Your name is &amp;#039; + v.selected_option + &amp;#039;, right?&amp;#039;&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;input&amp;quot;: &amp;quot;q.dialogue.set_page(&amp;#039;name-guess&amp;#039;);&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;name-guess&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;expression&amp;quot;,&lt;br /&gt;
            &amp;quot;expression&amp;quot;: &amp;quot;v.selected_option == &amp;#039;hiroku&amp;#039; ? &amp;#039;Correct! You know things that you shouldn\\&amp;#039;t...&amp;#039; : (&amp;#039;Wrong! I\\&amp;#039;m not \&amp;quot;&amp;#039; + v.selected_option + &amp;#039;\&amp;quot;. Whoever that is.&amp;#039;)&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;input&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;auto-continue&amp;quot;,&lt;br /&gt;
          &amp;quot;delay&amp;quot;: 5,&lt;br /&gt;
          &amp;quot;allowSkip&amp;quot;: true,&lt;br /&gt;
          &amp;quot;action&amp;quot;: &amp;quot;q.dialogue.set_page(&amp;#039;farewell&amp;#039;);&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;farewell&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&amp;quot;Anyway, I&amp;#039;m done with this dialogue. Bye!&amp;quot;],&lt;br /&gt;
        &amp;quot;input&amp;quot;: &amp;quot;q.dialogue.close();&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;too-slow&amp;quot;,&lt;br /&gt;
        &amp;quot;speaker&amp;quot;: &amp;quot;pikachu&amp;quot;,&lt;br /&gt;
        &amp;quot;lines&amp;quot;: [&amp;quot;Don&amp;#039;t know? Sad. Well I don&amp;#039;t know your name either, so I guess we&amp;#039;re even.&amp;quot;],&lt;br /&gt;
        &amp;quot;input&amp;quot;: &amp;quot;q.dialogue.close()&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Hiroku</name></author>
	</entry>
</feed>