<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://g1r-mp.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Chapter_screens</id>
	<title>Chapter screens - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://g1r-mp.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Chapter_screens"/>
	<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Chapter_screens&amp;action=history"/>
	<updated>2026-09-19T06:36:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://g1r-mp.com/wiki/index.php?title=Chapter_screens&amp;diff=883&amp;oldid=prev</id>
		<title>QCherry: Document ShowChapterScreen/HideChapterScreen available from update 0.1.3</title>
		<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Chapter_screens&amp;diff=883&amp;oldid=prev"/>
		<updated>2026-09-12T18:33:05Z</updated>

		<summary type="html">&lt;p&gt;Document ShowChapterScreen/HideChapterScreen available from update 0.1.3&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Chapter screens =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;AVAILABLE FROM UPDATE 0.1.3&amp;#039;&amp;#039;&amp;#039; — introduced in BUILD85. Use a server and client that both include chapter-screen support. An older protocol-34 client is not sufficient merely because it can connect.&lt;br /&gt;
&lt;br /&gt;
[[showChapterScreen|ShowChapterScreen]] displays a custom, passive chapter-style title card to one player. [[hideChapterScreen|HideChapterScreen]] requests early removal. The lower-camel aliases &amp;lt;code&amp;gt;showChapterScreen&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;hideChapterScreen&amp;lt;/code&amp;gt; behave identically.&lt;br /&gt;
&lt;br /&gt;
This is a presentation API, &amp;#039;&amp;#039;&amp;#039;not a story/chapter progression API&amp;#039;&amp;#039;&amp;#039;. It does not change quests, saves or the current chapter, and does not start chapter music or a native cutscene. It uses the game&amp;#039;s chapter-style widget with fixed background artwork and no image/audio options. It does not request input focus.&lt;br /&gt;
&lt;br /&gt;
== Server-side example ==&lt;br /&gt;
Call after the player&amp;#039;s character is available, for example from an authenticated server command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; line&amp;gt;&lt;br /&gt;
local accepted = ShowChapterScreen(playerId, &amp;quot;CHAPTER I&amp;quot;, &amp;quot;Welcome to the Colony&amp;quot;, 6000)&lt;br /&gt;
-- accepted means the server accepted delivery, not a client render acknowledgement.&lt;br /&gt;
&lt;br /&gt;
-- When the same resource needs to remove its card early:&lt;br /&gt;
-- HideChapterScreen(playerId)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An empty heading is valid. Omit the fourth argument for 6000 ms; do not pass &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; explicitly. There are no new chapter-screen Lua events or client-side Lua bindings.&lt;br /&gt;
&lt;br /&gt;
== Validation and limits ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Accepted value&lt;br /&gt;
|-&lt;br /&gt;
| playerId || Connected player ID, finite integer 1–4294967295.&lt;br /&gt;
|-&lt;br /&gt;
| heading || UTF-8 string, 0–256 bytes.&lt;br /&gt;
|-&lt;br /&gt;
| title || UTF-8 string, 1–512 bytes.&lt;br /&gt;
|-&lt;br /&gt;
| durationMs || Finite integer 1000–30000 ms; default 6000 ms.&lt;br /&gt;
|-&lt;br /&gt;
| Presentation || One custom card per player. A later show replaces the previous card; no display backlog.&lt;br /&gt;
|-&lt;br /&gt;
| Resource ownership || Up to 8192 distinct tracked player IDs per server resource. Explicit hide/resource cleanup releases tracking; automatic visual expiry is not a Lua acknowledgement.&lt;br /&gt;
|-&lt;br /&gt;
| Native pending commands || Bounded queue of 32; excess pending commands can be discarded. At most three widget-creation attempts, 500 ms apart.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Limits on strings count &amp;#039;&amp;#039;&amp;#039;UTF-8 bytes&amp;#039;&amp;#039;&amp;#039;, not characters. Invalid UTF-8, NUL, control characters and line breaks (including Unicode line/paragraph separators) are rejected. Text is literal: &amp;lt;code&amp;gt;&amp;amp;lt;b&amp;amp;gt;Title&amp;amp;lt;/b&amp;amp;gt;&amp;lt;/code&amp;gt; is not markup. Show accepts exactly three or four arguments; hide accepts exactly one.&lt;br /&gt;
&lt;br /&gt;
== Ownership and lifetime ==&lt;br /&gt;
* The latest show becomes the current resource-owned card, including when another resource previously displayed one.&lt;br /&gt;
* An old resource&amp;#039;s hide/cleanup cannot remove another resource&amp;#039;s replacement card. A successful server-side hide is not proof that a visible card was removed.&lt;br /&gt;
* Cards expire automatically. Duration starts when the native client processes the show and includes the fades, not server/network delay.&lt;br /&gt;
* Disconnect, resource cleanup and player-pawn replacement clear the corresponding presentation. This API is not a pre-spawn loading-screen facility.&lt;br /&gt;
* This API is separate from multiplayer suppression of native story triggers. It does &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; provide a general switch for disabling story regions, ladder events, conversations or cinematics.&lt;br /&gt;
&lt;br /&gt;
== Bundled GothicRP test ==&lt;br /&gt;
The test requires an authenticated player and affects only the caller:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/chaptertest&amp;lt;/code&amp;gt; — default six-second card.&lt;br /&gt;
* &amp;lt;code&amp;gt;/chaptertest show My custom title&amp;lt;/code&amp;gt; — custom title.&lt;br /&gt;
* &amp;lt;code&amp;gt;/chaptertest unicode&amp;lt;/code&amp;gt; — Unicode text.&lt;br /&gt;
* &amp;lt;code&amp;gt;/chaptertest literal&amp;lt;/code&amp;gt; — verifies literal text instead of markup.&lt;br /&gt;
* &amp;lt;code&amp;gt;/chaptertest replace&amp;lt;/code&amp;gt; — replaces an older card immediately.&lt;br /&gt;
* &amp;lt;code&amp;gt;/chaptertest long My title&amp;lt;/code&amp;gt; — 30-second card.&lt;br /&gt;
* &amp;lt;code&amp;gt;/chaptertest hide&amp;lt;/code&amp;gt; — early hide from the same resource.&lt;br /&gt;
&lt;br /&gt;
Check expiration, replacement, movement and native menus/GUI clicks. These are bundled test commands, not additional public Lua functions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua API]]&lt;br /&gt;
[[Category:Lua Examples]]&lt;/div&gt;</summary>
		<author><name>QCherry</name></author>
	</entry>
</feed>