<?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=Area_notifications</id>
	<title>Area notifications - 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=Area_notifications"/>
	<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Area_notifications&amp;action=history"/>
	<updated>2026-10-01T14:29:33Z</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=Area_notifications&amp;diff=1131&amp;oldid=prev</id>
		<title>QCherry: Release G1R:MP 0.1.6 BUILD174 / Protocol 38; availability and upgrade guidance</title>
		<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Area_notifications&amp;diff=1131&amp;oldid=prev"/>
		<updated>2026-09-30T21:55:56Z</updated>

		<summary type="html">&lt;p&gt;Release G1R:MP 0.1.6 BUILD174 / Protocol 38; availability and upgrade guidance&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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 21:55, 30 September 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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;&#039;&#039;&#039;Available from update 0.1.6 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(upcoming)&lt;/del&gt;.&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;These functions are not included in public &lt;/del&gt;0.1.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5. Use a matching &lt;/del&gt;client and server &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;with area-notification support&lt;/del&gt;.&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;&#039;&#039;&#039;Available from update 0.1.6.&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Use matching &lt;/ins&gt;0.1.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6 / Protocol 38 &lt;/ins&gt;client and server &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;packages&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;[[ShowAreaNotification]] displays a passive, native-style area banner in the upper-right HUD for one player. [[HideAreaNotification]] removes the current banner early when called by its owning resource. Both lines can be customized independently. Lower-camel aliases &amp;lt;code&amp;gt;showAreaNotification&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;hideAreaNotification&amp;lt;/code&amp;gt; are supported.&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;[[ShowAreaNotification]] displays a passive, native-style area banner in the upper-right HUD for one player. [[HideAreaNotification]] removes the current banner early when called by its owning resource. Both lines can be customized independently. Lower-camel aliases &amp;lt;code&amp;gt;showAreaNotification&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;hideAreaNotification&amp;lt;/code&amp;gt; are supported.&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-l51&quot;&gt;Line 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&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;This does &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; disable region triggers, erase discovery records or alter quest/save/streaming state. Native notification lifetime and queue processing remain intact; unrelated notifications are not globally disabled. For persistent first-visit messages, the gamemode should track discovered areas per player and call this API when appropriate.&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;This does &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; disable region triggers, erase discovery records or alter quest/save/streaming state. Native notification lifetime and queue processing remain intact; unrelated notifications are not globally disabled. For persistent first-visit messages, the gamemode should track discovered areas per player and call this API when appropriate.&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;See [[Chapter screens]] for the separate chapter-style title-card API, and [[Update 0.1.6]] for other &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;upcoming &lt;/del&gt;changes.&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;See [[Chapter screens]] for the separate chapter-style title-card API, and [[Update 0.1.6]] for other changes &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in this release&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;[[Category:Lua API]]&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;[[Category:Lua API]]&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;[[Category:Lua Examples]]&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;[[Category:Lua Examples]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>QCherry</name></author>
	</entry>
	<entry>
		<id>https://g1r-mp.com/wiki/index.php?title=Area_notifications&amp;diff=1117&amp;oldid=prev</id>
		<title>QCherry: Document upcoming 0.1.6: area notification Lua API, door and pickup improvements; not a release</title>
		<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Area_notifications&amp;diff=1117&amp;oldid=prev"/>
		<updated>2026-09-26T22:22:23Z</updated>

		<summary type="html">&lt;p&gt;Document upcoming 0.1.6: area notification Lua API, door and pickup improvements; not a release&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Available from update 0.1.6 (upcoming).&amp;#039;&amp;#039;&amp;#039; These functions are not included in public 0.1.5. Use a matching client and server with area-notification support.&lt;br /&gt;
&lt;br /&gt;
[[ShowAreaNotification]] displays a passive, native-style area banner in the upper-right HUD for one player. [[HideAreaNotification]] removes the current banner early when called by its owning resource. Both lines can be customized independently. Lower-camel aliases &amp;lt;code&amp;gt;showAreaNotification&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;hideAreaNotification&amp;lt;/code&amp;gt; are supported.&lt;br /&gt;
&lt;br /&gt;
== Example: two custom lines ==&lt;br /&gt;
Call from a server script after the player&amp;#039;s character is available:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local accepted = ShowAreaNotification(playerId, &amp;quot;Entering territory&amp;quot;, &amp;quot;Bandit Camp&amp;quot;, 5000)&lt;br /&gt;
-- Or use Unicode text:&lt;br /&gt;
ShowAreaNotification(playerId, &amp;quot;Wkraczasz na teren&amp;quot;, &amp;quot;Stary Obóz — Старий табір&amp;quot;, 7000)&lt;br /&gt;
&lt;br /&gt;
-- Called later by the same resource, if an early hide is needed:&lt;br /&gt;
-- HideAreaNotification(playerId)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first string is the smaller heading; the second is the main area name. An empty heading is allowed. Omit the duration argument to use 5000 ms; do not pass &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; explicitly. Polish characters and Cyrillic were confirmed in the development in-game test. Glyph coverage still depends on the bundled fonts; this is not a promise that every Unicode symbol or emoji is supported.&lt;br /&gt;
&lt;br /&gt;
== Behavior and ownership ==&lt;br /&gt;
* Server-side API only, targeting one connected player. No new client-side Lua functions or result events.&lt;br /&gt;
* One custom area banner per player. The latest accepted show replaces the previous banner and its timer, even if another resource created it.&lt;br /&gt;
* Only the current owning resource may dismiss that banner. Cleanup or hide from an older owner cannot remove another resource&amp;#039;s replacement.&lt;br /&gt;
* Resource stop requests cleanup. Disconnect and world/player-pawn replacement clear the presentation. There is no late-join replay or automatic database persistence.&lt;br /&gt;
* Duration includes fade-in/fade-out and starts when the native client processes the request, not when the server sends it. This is not a pre-spawn loading-screen API.&lt;br /&gt;
* &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; means the server accepted the request for delivery, not that the player saw it. Invalid arguments, unavailable players or transport/capacity rejection return &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. Hide can return &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; when the resource has no tracked banner for that player.&lt;br /&gt;
* Passive display: no keyboard/mouse capture, teleport, chapter change, quest progression, collision or streaming changes. Text is literal, not HTML/RML.&lt;br /&gt;
&lt;br /&gt;
== Validation and limits ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter / resource !! Limit&lt;br /&gt;
|-&lt;br /&gt;
| playerId || Connected numeric 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 5000 ms.&lt;br /&gt;
|-&lt;br /&gt;
| Ownership tracking || At most 8192 distinct tracked player IDs per resource. Explicit hide/resource cleanup releases tracking; visual expiry is not a server acknowledgement.&lt;br /&gt;
|-&lt;br /&gt;
| Client pending commands || Bounded queue of 32; overflow may discard pending commands. Do not send a banner every frame.&lt;br /&gt;
|-&lt;br /&gt;
| Creation retries || At most three attempts, 500 ms apart.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
String limits count UTF-8 &amp;#039;&amp;#039;&amp;#039;bytes&amp;#039;&amp;#039;&amp;#039;, not characters. Malformed UTF-8, NUL, control characters and line breaks (including Unicode line/paragraph separators) are rejected. Show requires exactly three or four arguments; hide requires exactly one.&lt;br /&gt;
&lt;br /&gt;
== Automatic discovery notices ==&lt;br /&gt;
From 0.1.6 the multiplayer client suppresses the visual presentation of the game&amp;#039;s automatic area-discovery banner (for example, “New area discovered / Old Camp”). Custom banners remain available through this API.&lt;br /&gt;
&lt;br /&gt;
This does &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; disable region triggers, erase discovery records or alter quest/save/streaming state. Native notification lifetime and queue processing remain intact; unrelated notifications are not globally disabled. For persistent first-visit messages, the gamemode should track discovered areas per player and call this API when appropriate.&lt;br /&gt;
&lt;br /&gt;
See [[Chapter screens]] for the separate chapter-style title-card API, and [[Update 0.1.6]] for other upcoming changes.&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>