<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.returnofreckoning.com/index.php?action=history&amp;feed=atom&amp;title=API%3ARegisterWindowSet</id>
	<title>API:RegisterWindowSet - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.returnofreckoning.com/index.php?action=history&amp;feed=atom&amp;title=API%3ARegisterWindowSet"/>
	<link rel="alternate" type="text/html" href="https://wiki.returnofreckoning.com/index.php?title=API:RegisterWindowSet&amp;action=history"/>
	<updated>2026-10-18T06:58:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.returnofreckoning.com/index.php?title=API:RegisterWindowSet&amp;diff=30657&amp;oldid=prev</id>
		<title>Maintenance script: UI Lua API import (WAR 1.4.8)</title>
		<link rel="alternate" type="text/html" href="https://wiki.returnofreckoning.com/index.php?title=API:RegisterWindowSet&amp;diff=30657&amp;oldid=prev"/>
		<updated>2026-10-16T19:48:01Z</updated>

		<summary type="html">&lt;p&gt;UI Lua API import (WAR 1.4.8)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{LuaApi|group=Interface}}&lt;br /&gt;
Registers the Lua functions that build and tear down one of the client&amp;#039;s window sets (title screen, login, character select, loading screen, in-game and so on).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RegisterWindowSet(setId, createFunctionName, shutdownFunctionName)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arguments ==&lt;br /&gt;
;setId : &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt; – Id of the window set. The stock UI uses 0 to 6 (see the example).&lt;br /&gt;
;createFunctionName : &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; – Dotted name of the Lua function that creates the set&amp;#039;s windows.&lt;br /&gt;
;shutdownFunctionName : &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; – Dotted name of the Lua function that removes them.&lt;br /&gt;
&lt;br /&gt;
== Returns ==&lt;br /&gt;
Nothing.&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
* When the client switches to another window set, it first calls the shutdown function registered for the set it is leaving, then stores the new set id and calls the create function of the new set.&lt;br /&gt;
* After the create function returns, the client resolves the anchors of the windows and, if the &amp;lt;code&amp;gt;UiLog&amp;lt;/code&amp;gt; text log is enabled, logs &amp;lt;code&amp;gt;Window Set #%02d Loaded (Window Creation: %d ms, %.02f).&amp;lt;/code&amp;gt;&lt;br /&gt;
* Only the first registration for a set id counts. Later calls with the same id are ignored.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
None besides the &amp;#039;&amp;#039;Invalid Parameters&amp;#039;&amp;#039; argument check.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
From &amp;lt;code&amp;gt;interfacecore/interfacecore.lua&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RegisterWindowSet(0, &amp;quot;InterfaceCore.CreateTitleInterface&amp;quot;, &amp;quot;InterfaceCore.ShutdownTitleInterface&amp;quot; )&lt;br /&gt;
RegisterWindowSet(1, &amp;quot;InterfaceCore.CreateServerSelectionInterface&amp;quot;, &amp;quot;InterfaceCore.ShutdownServerSelectionInterface&amp;quot; )&lt;br /&gt;
RegisterWindowSet(2, &amp;quot;InterfaceCore.CreateLoginInterface&amp;quot;, &amp;quot;InterfaceCore.ShutdownLoginInterface&amp;quot; )&lt;br /&gt;
RegisterWindowSet(3, &amp;quot;InterfaceCore.CreateQuickStartInterface&amp;quot;, &amp;quot;InterfaceCore.ShutdownQuickStartInterface&amp;quot; )&lt;br /&gt;
RegisterWindowSet(4, &amp;quot;InterfaceCore.CreateCharacterSelectionInterface&amp;quot;, &amp;quot;InterfaceCore.ShutdownCharacterSelectionInterface&amp;quot; )&lt;br /&gt;
RegisterWindowSet(5, &amp;quot;InterfaceCore.CreateLoadingInterface&amp;quot;, &amp;quot;InterfaceCore.ShutdownLoadingInterface&amp;quot; )&lt;br /&gt;
RegisterWindowSet(6, &amp;quot;InterfaceCore.CreatePlayInterface&amp;quot;, &amp;quot;InterfaceCore.ShutdownPlayInterface&amp;quot; )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[API:RegisterEventHandler|RegisterEventHandler]]&lt;br /&gt;
* [[API:CreateWindow|CreateWindow]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>