<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>SA Docs  - Recent changes [en]</title>
		<link>https://sadocs.unreliable.network/wiki/Special:RecentChanges</link>
		<description>Track the most recent changes to the wiki in this feed.</description>
		<language>en</language>
		<generator>MediaWiki 1.45.1</generator>
		<lastBuildDate>Tue, 15 Sep 2026 17:20:31 GMT</lastBuildDate>
		<item>
			<title>User:ChanaMontgomery</title>
			<link>https://sadocs.unreliable.network/wiki/User:ChanaMontgomery</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/wiki/User:ChanaMontgomery</guid>
			<description>&lt;p&gt;User account &lt;a href=&quot;/index.php?title=User:ChanaMontgomery&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:ChanaMontgomery (page does not exist)&quot;&gt;&lt;bdi&gt;ChanaMontgomery&lt;/bdi&gt;&lt;/a&gt; was created&lt;/p&gt;
</description>
			<pubDate>Sat, 12 Sep 2026 08:33:11 GMT</pubDate>
			<dc:creator>ChanaMontgomery</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/User_talk:ChanaMontgomery</comments>
		</item>
		<item>
			<title>User:RonaldDougharty</title>
			<link>https://sadocs.unreliable.network/wiki/User:RonaldDougharty</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/wiki/User:RonaldDougharty</guid>
			<description>&lt;p&gt;User account &lt;a href=&quot;/index.php?title=User:RonaldDougharty&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:RonaldDougharty (page does not exist)&quot;&gt;&lt;bdi&gt;RonaldDougharty&lt;/bdi&gt;&lt;/a&gt; was created&lt;/p&gt;
</description>
			<pubDate>Mon, 07 Sep 2026 16:33:39 GMT</pubDate>
			<dc:creator>RonaldDougharty</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/User_talk:RonaldDougharty</comments>
		</item>
		<item>
			<title>User:Celinda50C</title>
			<link>https://sadocs.unreliable.network/wiki/User:Celinda50C</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/wiki/User:Celinda50C</guid>
			<description>&lt;p&gt;User account &lt;a href=&quot;/index.php?title=User:Celinda50C&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:Celinda50C (page does not exist)&quot;&gt;&lt;bdi&gt;Celinda50C&lt;/bdi&gt;&lt;/a&gt; was created&lt;/p&gt;
</description>
			<pubDate>Mon, 07 Sep 2026 03:29:10 GMT</pubDate>
			<dc:creator>Celinda50C</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/User_talk:Celinda50C</comments>
		</item>
		<item>
			<title>User:MarcelinoJohnsto</title>
			<link>https://sadocs.unreliable.network/wiki/User:MarcelinoJohnsto</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/wiki/User:MarcelinoJohnsto</guid>
			<description>&lt;p&gt;User account &lt;a href=&quot;/index.php?title=User:MarcelinoJohnsto&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:MarcelinoJohnsto (page does not exist)&quot;&gt;&lt;bdi&gt;MarcelinoJohnsto&lt;/bdi&gt;&lt;/a&gt; was created&lt;/p&gt;
</description>
			<pubDate>Sat, 05 Sep 2026 19:47:54 GMT</pubDate>
			<dc:creator>MarcelinoJohnsto</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/User_talk:MarcelinoJohnsto</comments>
		</item>
		<item>
			<title>Sonic Adventure/Voice List</title>
			<link>https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Voice_List&amp;diff=789&amp;oldid=772</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Voice_List&amp;diff=789&amp;oldid=772</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://sadocs.unreliable.network/index.php?title=Sonic_Adventure/Voice_List&amp;amp;diff=789&amp;amp;oldid=772&quot;&gt;Show changes&lt;/a&gt;</description>
			<pubDate>Wed, 02 Sep 2026 16:12:49 GMT</pubDate>
			<dc:creator>TheAwesomeSonic</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/Talk:Sonic_Adventure/Voice_List</comments>
		</item>
		<item>
			<title>User:TheAwesomeSonic</title>
			<link>https://sadocs.unreliable.network/wiki/User:TheAwesomeSonic</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/wiki/User:TheAwesomeSonic</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ItsEasyActually&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:ItsEasyActually (page does not exist)&quot;&gt;&lt;bdi&gt;ItsEasyActually&lt;/bdi&gt;&lt;/a&gt; changed group membership for &lt;a href=&quot;/index.php?title=User:TheAwesomeSonic&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:TheAwesomeSonic (page does not exist)&quot;&gt;TheAwesomeSonic&lt;/a&gt;: granted writer Requested to be added.&lt;/p&gt;
</description>
			<pubDate>Wed, 02 Sep 2026 14:11:46 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/User_talk:TheAwesomeSonic</comments>
		</item>
		<item>
			<title>User:TheAwesomeSonic</title>
			<link>https://sadocs.unreliable.network/wiki/User:TheAwesomeSonic</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/wiki/User:TheAwesomeSonic</guid>
			<description>&lt;p&gt;User account &lt;a href=&quot;/index.php?title=User:TheAwesomeSonic&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:TheAwesomeSonic (page does not exist)&quot;&gt;&lt;bdi&gt;TheAwesomeSonic&lt;/bdi&gt;&lt;/a&gt; was created&lt;/p&gt;
</description>
			<pubDate>Mon, 31 Aug 2026 18:02:25 GMT</pubDate>
			<dc:creator>TheAwesomeSonic</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/User_talk:TheAwesomeSonic</comments>
		</item>
		<item>
			<title>SADX Mod Loader</title>
			<link>https://sadocs.unreliable.network/index.php?title=SADX_Mod_Loader&amp;diff=788&amp;oldid=344</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=SADX_Mod_Loader&amp;diff=788&amp;oldid=344</guid>
			<description>&lt;p&gt;Updating page, adding Character Welds page link&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 00:29, 24 August 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;[https://github.com/X-Hax/sadx-mod-loader/ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Source Code&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;You can view the &lt;/ins&gt;[https://github.com/X-Hax/sadx-mod-loader/ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source code&lt;/ins&gt;] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;here.&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;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 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;On this page, you&#039;ll find documentation on the main API that the SADX Mod Loader exports to every code based mod created for SADX. There are additional features which are documented on other pages. You can follow the below links to find documentation on those features.&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;[[SADX Mod Loader/Character Welds|Character Welds]]&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;= HelperFunctions 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;= HelperFunctions 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;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;</description>
			<pubDate>Mon, 24 Aug 2026 00:29:27 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/Talk:SADX_Mod_Loader</comments>
		</item>
		<item>
			<title>Sonic Adventure 2/Texture Files</title>
			<link>https://sadocs.unreliable.network/index.php?title=Sonic_Adventure_2/Texture_Files&amp;diff=787&amp;oldid=484</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=Sonic_Adventure_2/Texture_Files&amp;diff=787&amp;oldid=484</guid>
			<description>&lt;p&gt;&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 20:07, 22 August 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-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&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;For the GameCube version, the texture packages are stored in the root of the disc, but the textures are saved as GVR files within the PRS archives.&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;For the GameCube version, the texture packages are stored in the root of the disc, but the textures are saved as GVR files within the PRS archives.&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;The PC version stores the textures in the &amp;lt;code&amp;gt;resource/gd_PC&amp;lt;/code&amp;gt; path of the given installation directory. Some texture packs were converted to the PAK file system, which overrides the included GameCube texture packs when applicable. The PAK files are stored in either the &amp;lt;code&amp;gt;PRS&amp;lt;/code&amp;gt; folder or the &amp;lt;code&amp;gt;SOC&amp;lt;/code&amp;gt; folder within the Sonic Adventure 2 game files. Event textures that are using PAK files store those files in the &amp;lt;code&amp;gt;event/prs&amp;lt;/code&amp;gt; folder path. The PAK files stored within the &amp;lt;code&amp;gt;SOC&amp;lt;/code&amp;gt; folder can &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;only &lt;/del&gt;be &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;extracted and rebuilt with PAKTool&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This program is included in SA Tools&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;The PC version stores the textures in the &amp;lt;code&amp;gt;resource/gd_PC&amp;lt;/code&amp;gt; path of the given installation directory. Some texture packs were converted to the PAK file system, which overrides the included GameCube texture packs when applicable. The PAK files are stored in either the &amp;lt;code&amp;gt;PRS&amp;lt;/code&amp;gt; folder or the &amp;lt;code&amp;gt;SOC&amp;lt;/code&amp;gt; folder within the Sonic Adventure 2 game files. Event textures that are using PAK files store those files in the &amp;lt;code&amp;gt;event/prs&amp;lt;/code&amp;gt; folder path. The PAK files stored within the &amp;lt;code&amp;gt;SOC&amp;lt;/code&amp;gt; folder can &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;also &lt;/ins&gt;be &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;modified using Texture Editor, for the most part&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;As they can sometimes contain non-texture information, not everything within those files can be altered&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;{| class=&amp;quot;wikitable&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;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 22 Aug 2026 20:07:57 GMT</pubDate>
			<dc:creator>End User</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/Talk:Sonic_Adventure_2/Texture_Files</comments>
		</item>
		<item>
			<title>Creating Mods/Mod Configuration</title>
			<link>https://sadocs.unreliable.network/index.php?title=Creating_Mods/Mod_Configuration&amp;diff=786&amp;oldid=781</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=Creating_Mods/Mod_Configuration&amp;diff=786&amp;oldid=781</guid>
			<description>&lt;p&gt;Adding images.&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 02:54, 21 August 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-l83&quot;&gt;Line 83:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 83:&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;==== Using the Mod Manager ====&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;==== Using the Mod Manager ====&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;In the Mod Manager, either create a new mod, use the Edit Mod option on an existing mod. This will open the Edit Mod window. In this window, locate the Include Directories entry. This is where you create the initial defaults and create the fallback folder IDs that will be stored inside the mod&amp;#039;s &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; file. You can create multiple options for modifying different assets at the same time by separating each entry with a comma.&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;In the Mod Manager, either create a new mod, use the Edit Mod option on an existing mod. This will open the Edit Mod window. In this window, locate the Include Directories entry. This is where you create the initial defaults and create the fallback folder IDs that will be stored inside the mod&amp;#039;s &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; file. You can create multiple options for modifying different assets at the same time by separating each entry with a comma.&lt;/div&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; &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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Example 1 for Codeless Configuration.png|center]]&lt;/ins&gt;&lt;/div&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;PICTURE&#039;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;In this example, the &amp;lt;code&amp;gt;sonic_sword&amp;lt;/code&amp;gt; option is for editing Sonic&amp;#039;s model while the &amp;lt;code&amp;gt;altmusica&amp;lt;/code&amp;gt; would be for editing music files.&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;In this example, the &amp;lt;code&amp;gt;sonic_sword&amp;lt;/code&amp;gt; option is for editing Sonic&amp;#039;s model while the &amp;lt;code&amp;gt;altmusica&amp;lt;/code&amp;gt; would be for editing music files.&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l104&quot;&gt;Line 104:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 102:&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;=== Folder Structure ===&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;=== Folder Structure ===&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;In your mod&amp;#039;s folder, the default folders you just added should now be visible in the mod folder unless you modified &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; manually. This example will continue with the expectation that you have folders matching those 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;In your mod&amp;#039;s folder, the default folders you just added should now be visible in the mod folder unless you modified &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; manually. This example will continue with the expectation that you have folders matching those examples.&lt;/div&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; &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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Codeless Config Example 2.png|center]]&lt;/ins&gt;&lt;/div&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;PICTURE&#039;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;These sub folders act like a base mod folder which means they can contain any of the same folders a mod can contain, including the following:&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;These sub folders act like a base mod folder which means they can contain any of the same folders a mod can contain, including the following:&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;system&amp;lt;/code&amp;gt; (SADX only)&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;system&amp;lt;/code&amp;gt; (SADX only)&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-l121&quot;&gt;Line 121:&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;==== Real World Example ====&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;==== Real World Example ====&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;The Sprite Rings mod for SADX is a good example of a real mod making use of this system. Below is a screenshot of that mod&amp;#039;s folder:&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;The Sprite Rings mod for SADX is a good example of a real mod making use of this system. Below is a screenshot of that mod&amp;#039;s folder:&lt;/div&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; &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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Codeless Config Example 3.png|center]]&lt;/ins&gt;&lt;/div&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;PICTURE&#039;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;In this example, every folder (excluding &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt;) contains a variation of sprite assets inside their own &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt; folders.&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;In this example, every folder (excluding &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt;) contains a variation of sprite assets inside their own &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt; folders.&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l164&quot;&gt;Line 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 158:&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;In the end, this is how the overall folder looks after creating the Config Schema, adding the additional folder options, and removing the &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; folder as it was not needed:&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;In the end, this is how the overall folder looks after creating the Config Schema, adding the additional folder options, and removing the &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; folder as it was not needed:&lt;/div&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; &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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Codeless Config Example 4.png|center]]&lt;/ins&gt;&lt;/div&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;PICTURE&#039;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;=== Best Practices ===&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;=== Best Practices ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 21 Aug 2026 02:54:38 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/Talk:Creating_Mods/Mod_Configuration</comments>
		</item>
		<item>
			<title>File:Codeless Config Example 4.png</title>
			<link>https://sadocs.unreliable.network/index.php?title=File:Codeless_Config_Example_4.png&amp;diff=785&amp;oldid=0</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=File:Codeless_Config_Example_4.png&amp;diff=785&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ItsEasyActually&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:ItsEasyActually (page does not exist)&quot;&gt;&lt;bdi&gt;ItsEasyActually&lt;/bdi&gt;&lt;/a&gt; uploaded &lt;a href=&quot;/wiki/File:Codeless_Config_Example_4.png&quot; title=&quot;File:Codeless Config Example 4.png&quot;&gt;File:Codeless Config Example 4.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Example of the final folder setup for the example mod for Codeless Config once all of the work has been done to set it up.&lt;/div&gt;</description>
			<pubDate>Fri, 21 Aug 2026 02:54:17 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/File_talk:Codeless_Config_Example_4.png</comments>
		</item>
		<item>
			<title>File:Codeless Config Example 3.png</title>
			<link>https://sadocs.unreliable.network/index.php?title=File:Codeless_Config_Example_3.png&amp;diff=784&amp;oldid=0</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=File:Codeless_Config_Example_3.png&amp;diff=784&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ItsEasyActually&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:ItsEasyActually (page does not exist)&quot;&gt;&lt;bdi&gt;ItsEasyActually&lt;/bdi&gt;&lt;/a&gt; uploaded &lt;a href=&quot;/wiki/File:Codeless_Config_Example_3.png&quot; title=&quot;File:Codeless Config Example 3.png&quot;&gt;File:Codeless Config Example 3.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Real World example of Codeless Config taken from the Sprite Rings mod for SADX.&lt;/div&gt;</description>
			<pubDate>Fri, 21 Aug 2026 02:53:25 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/File_talk:Codeless_Config_Example_3.png</comments>
		</item>
		<item>
			<title>File:Codeless Config Example 2.png</title>
			<link>https://sadocs.unreliable.network/index.php?title=File:Codeless_Config_Example_2.png&amp;diff=783&amp;oldid=0</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=File:Codeless_Config_Example_2.png&amp;diff=783&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ItsEasyActually&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:ItsEasyActually (page does not exist)&quot;&gt;&lt;bdi&gt;ItsEasyActually&lt;/bdi&gt;&lt;/a&gt; uploaded &lt;a href=&quot;/wiki/File:Codeless_Config_Example_2.png&quot; title=&quot;File:Codeless Config Example 2.png&quot;&gt;File:Codeless Config Example 2.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Example of the mod folder immediately after creating it from the Mod Manager.&lt;/div&gt;</description>
			<pubDate>Fri, 21 Aug 2026 02:52:30 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/File_talk:Codeless_Config_Example_2.png</comments>
		</item>
		<item>
			<title>File:Example 1 for Codeless Configuration.png</title>
			<link>https://sadocs.unreliable.network/index.php?title=File:Example_1_for_Codeless_Configuration.png&amp;diff=782&amp;oldid=0</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=File:Example_1_for_Codeless_Configuration.png&amp;diff=782&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ItsEasyActually&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;User:ItsEasyActually (page does not exist)&quot;&gt;&lt;bdi&gt;ItsEasyActually&lt;/bdi&gt;&lt;/a&gt; uploaded &lt;a href=&quot;/wiki/File:Example_1_for_Codeless_Configuration.png&quot; title=&quot;File:Example 1 for Codeless Configuration.png&quot;&gt;File:Example 1 for Codeless Configuration.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Displays the Mod Manager Mod Editor window with Include Directories.&lt;/div&gt;</description>
			<pubDate>Fri, 21 Aug 2026 02:49:09 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/File_talk:Example_1_for_Codeless_Configuration.png</comments>
		</item>
		<item>
			<title>Creating Mods/Mod Configuration</title>
			<link>https://sadocs.unreliable.network/index.php?title=Creating_Mods/Mod_Configuration&amp;diff=781&amp;oldid=0</link>
			<guid isPermaLink="false">https://sadocs.unreliable.network/index.php?title=Creating_Mods/Mod_Configuration&amp;diff=781&amp;oldid=0</guid>
			<description>&lt;p&gt;Initial publishing of this page.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The Mod Manager is capable of creating configuration files, saved as &amp;lt;code&amp;gt;config.ini&amp;lt;/code&amp;gt; in a mod folder, through a Mod Config system it has built in. This requires mods to supply a &amp;lt;code&amp;gt;configschema.xml&amp;lt;/code&amp;gt; within their mod folders. This is what defines the Groups, Properties, and custom Enumerations that can be used for creating a configuration file for a mod to make use of. &lt;br /&gt;
&lt;br /&gt;
If you&amp;#039;re looking to create a codeless configuration system (it uses an in-built system in the mod loader for redirecting the system folders for loading), you can head over to the Codeless Configuration Setup section. &lt;br /&gt;
&lt;br /&gt;
If you want a more advanced system for Configuration that requires code, please check out the Code Configuration Setup section.&lt;br /&gt;
&lt;br /&gt;
== Config Schema ==&lt;br /&gt;
The Config Schema is an XML file that the Mod Manager will read from to generate the various elements used for a config file. Below is an example Config Schema followed by a break down on each element within a schema file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--Example Config Schema File--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ConfigSchema xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://www.sonicretro.org&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Groups&amp;gt;&lt;br /&gt;
		&amp;lt;Group name=&amp;quot;config&amp;quot; display=&amp;quot;Configuration&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;Property name=&amp;quot;speed&amp;quot; display=&amp;quot;Speed Value&amp;quot; type=&amp;quot;float&amp;quot; defaultvalue=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;HelpText&amp;gt;Sets the speed for a custom object.&amp;lt;/HelpText&amp;gt;&lt;br /&gt;
			&amp;lt;/Property&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;object&amp;quot; display=&amp;quot;Object Type&amp;quot; type=&amp;quot;ObjectType&amp;quot; defaultvalue=&amp;quot;cub&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;HelpText&amp;gt;Sets the object model that is used.&amp;lt;/HelpText&amp;gt;&lt;br /&gt;
			&amp;lt;/Property&amp;gt;	&lt;br /&gt;
		&amp;lt;/Group&amp;gt;&lt;br /&gt;
	&amp;lt;/Groups&amp;gt;&lt;br /&gt;
	&amp;lt;Enums&amp;gt;&lt;br /&gt;
		&amp;lt;Enum name = &amp;quot;ObjectType&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;EnumMember name=&amp;quot;cub&amp;quot; display=&amp;quot;Cube&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;EnumMember name=&amp;quot;sph&amp;quot; display=&amp;quot;Sphere&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;EnumMember name=&amp;quot;cyl&amp;quot; display=&amp;quot;Cylinder&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/Enum&amp;gt;&lt;br /&gt;
	&amp;lt;/Enums&amp;gt;&lt;br /&gt;
&amp;lt;/ConfigSchema&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Groups ===&lt;br /&gt;
Groups are groupings of properties that will be saved to a configuration file. They are wrapped inside of a base &amp;lt;code&amp;gt;Groups&amp;lt;/code&amp;gt; element. All &amp;lt;code&amp;gt;Group&amp;lt;/code&amp;gt; elements must be placed inside of the &amp;lt;code&amp;gt;Groups&amp;lt;/code&amp;gt; element, just like how it is displayed in the example above.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;: This is the name that is written as the Group&amp;#039;s name within the config file. &amp;#039;&amp;#039;&amp;#039;This is required.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt;: Optional name that will overwrite the displayed name in the Editor within the Mod Manager which can make it easier for users to read. &lt;br /&gt;
&lt;br /&gt;
==== Properties ====&lt;br /&gt;
Properties are the actual variables written to a config file. These will always be wrapped inside of a &amp;lt;code&amp;gt;Group&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;: The name of the property that will be written to the config file. &amp;#039;&amp;#039;&amp;#039;This is required.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt;: Optional name that will overwrite the name when displaying the property in the Mod Manager if it&amp;#039;s included.&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;: The type of property this is. Below is a list of currently valid types supported by the Mod Manager and Mod Loaders. &amp;#039;&amp;#039;&amp;#039;This is required.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;: A boolean value. Valid values are &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
** &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: An integer value. Valid values are any integer value.&lt;br /&gt;
** &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;: A floating point value. Valid values are any floating point value.&lt;br /&gt;
** &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;: A text value. Valid values are a string.&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;quot;enum&amp;quot;&amp;lt;/code&amp;gt;: Enum types need to match the name of the &amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt; they correspond to. These are also the only supported type for Codeless Configuration. Valid values are the list of members of the specified &amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt; type.&lt;br /&gt;
* &amp;lt;code&amp;gt;defaultvalue&amp;lt;/code&amp;gt;: This is the default value used by the property. It must be a valid value type for the supplied type. &amp;#039;&amp;#039;&amp;#039;It is required.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt;: Optional value setting the minimum value. This is only used for &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; types.&lt;br /&gt;
* &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt;: Optional value setting the maximum value. This is only used for &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; types.&lt;br /&gt;
* &amp;lt;code&amp;gt;alwaysinclude&amp;lt;/code&amp;gt;: Optional boolean that, when set to true, forces the Manager to always write the property to the config file regardless of if it matches the default value or not.&lt;br /&gt;
&lt;br /&gt;
===== HelpText =====&lt;br /&gt;
The &amp;lt;code&amp;gt;HelpText&amp;lt;/code&amp;gt; element is used by a &amp;lt;code&amp;gt;Property&amp;lt;/code&amp;gt; to supply a description or &amp;quot;helper&amp;quot; text to the user within the Mod Manager&amp;#039;s editor. These are handled by doing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;HelpText&amp;gt;This is how the helper text should be written.&amp;lt;/HelpText&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Please see the full Config Schema example above to see how these should be written within a &amp;lt;code&amp;gt;Property&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Enums ===&lt;br /&gt;
Just like with &amp;lt;code&amp;gt;Group&amp;lt;/code&amp;gt; elements being wrapped in a &amp;lt;code&amp;gt;Groups&amp;lt;/code&amp;gt; element, &amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt; elements are wrapped inside of an &amp;lt;code&amp;gt;Enums&amp;lt;/code&amp;gt; element. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;: This sets the reference name to the &amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt; within the Mod Manager&amp;#039;s editor. This has no impact on the written config file, but &amp;#039;&amp;#039;&amp;#039;it is still required.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== EnumMembers ====&lt;br /&gt;
These are the entries, or options, within an &amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt; that are utilized in the editor and are what get written to the config file when the &amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt; type is used in a property. Despite being sharing a name with enums, these are actually more like preset lists of strings that can be used.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;: This is what is written as the value for a &amp;lt;code&amp;gt;Property&amp;lt;/code&amp;gt; making use of an &amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt; type. &amp;#039;&amp;#039;&amp;#039;This is required.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt;: Optional name that will be displayed in the editor when supplied.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Note: While any text editor can be used for writing a Config Schema file, it&amp;#039;s recommended to use one that supports writing XML, such as Notepad++ or VSCodium.&lt;br /&gt;
&lt;br /&gt;
== Codeless Configuration Setup ==&lt;br /&gt;
Codeless Configuration is an option for mod developers that want to include customizable asset replacement without needing to use code. As such, these are limited to &amp;#039;&amp;#039;solely&amp;#039;&amp;#039; asset replacement and have specific formatting that needs to be followed for the Mod Loader to correctly handle the asset loading redirection. They &amp;#039;&amp;#039;&amp;#039;can&amp;#039;&amp;#039;&amp;#039; be used in tandem with code mods that include other configuration options without the mod needing to implement its own custom asset redirection however.&lt;br /&gt;
&lt;br /&gt;
=== Getting Started ===&lt;br /&gt;
There are two ways to setup the prerequisites needed for Codeless Configuration; using the Mod Manager or editing &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; manually. Please follow the directions for the method you wish to use.&lt;br /&gt;
&lt;br /&gt;
==== Using the Mod Manager ====&lt;br /&gt;
In the Mod Manager, either create a new mod, use the Edit Mod option on an existing mod. This will open the Edit Mod window. In this window, locate the Include Directories entry. This is where you create the initial defaults and create the fallback folder IDs that will be stored inside the mod&amp;#039;s &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; file. You can create multiple options for modifying different assets at the same time by separating each entry with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;PICTURE&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In this example, the &amp;lt;code&amp;gt;sonic_sword&amp;lt;/code&amp;gt; option is for editing Sonic&amp;#039;s model while the &amp;lt;code&amp;gt;altmusica&amp;lt;/code&amp;gt; would be for editing music files.&lt;br /&gt;
&lt;br /&gt;
==== Manually Adding Defaults ====&lt;br /&gt;
If you want to edit &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; manually so you can create the sub folders as you need them, simply open your mod&amp;#039;s folder and open &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; in a text editor of your choice. You will then need to add a new Section named &amp;quot;Config.&amp;quot; Under this Section, you can create as many &amp;quot;Include Directories&amp;quot; as you need. These are formatted as &amp;lt;code&amp;gt;IncludeDirX&amp;lt;/code&amp;gt; where X is the ID number. These begin as index 0. You will also need to include an &amp;lt;code&amp;gt;IncludeDirCount&amp;lt;/code&amp;gt; which is the total number of directories you have setup. In our example, the following is how &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; looks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
Name=Example Codeless Config&lt;br /&gt;
Author=ItsEasyActually&lt;br /&gt;
Version=0.1&lt;br /&gt;
ModID=sadx.ExampleCodelessConfig&lt;br /&gt;
[Config]&lt;br /&gt;
IncludeDir0=sonic_sword&lt;br /&gt;
IncludeDir1=altmusica&lt;br /&gt;
IncludeDirCount=2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Folder Structure ===&lt;br /&gt;
In your mod&amp;#039;s folder, the default folders you just added should now be visible in the mod folder unless you modified &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; manually. This example will continue with the expectation that you have folders matching those examples.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;PICTURE&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These sub folders act like a base mod folder which means they can contain any of the same folders a mod can contain, including the following:&lt;br /&gt;
* &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; (SADX only)&lt;br /&gt;
* &amp;lt;code&amp;gt;gd_PC&amp;lt;/code&amp;gt; (SA2 only)&lt;br /&gt;
* &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;replacetex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
They can also contain any of the exported INI files from the SA Tools, such as &amp;lt;code&amp;gt;sonic_data.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sonic2app_data.ini&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The folders that were created are just the default folders as well. You can create additional folders to be used for these options which are how you get into having multiple options for asset replacement. &lt;br /&gt;
&lt;br /&gt;
For Codeless Config mods, the base &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;gd_PC&amp;lt;/code&amp;gt; in SA2), &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;replacetex&amp;lt;/code&amp;gt; folders are always loaded first if they exist (&amp;#039;&amp;#039;&amp;#039;They are not required, just generated by default when making a mod with the Mod Manager&amp;#039;&amp;#039;&amp;#039;). The Mod Loader will then load from any of the alternative directories (if valid) second. This allows users the option of having an &amp;quot;invalid&amp;quot; folder name as their default to only load from their base folders.&lt;br /&gt;
&lt;br /&gt;
==== Real World Example ====&lt;br /&gt;
The Sprite Rings mod for SADX is a good example of a real mod making use of this system. Below is a screenshot of that mod&amp;#039;s folder:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;PICTURE&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In this example, every folder (excluding &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt;) contains a variation of sprite assets inside their own &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;textures&amp;lt;/code&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
The Sprite Rings mod for SADX also makes use of the &amp;quot;invalid&amp;quot; folder setup by labeling its default as &amp;lt;code&amp;gt;classic&amp;lt;/code&amp;gt; but no folder with that name actually exists. &lt;br /&gt;
&lt;br /&gt;
=== Creating the Config Schema ===&lt;br /&gt;
Creating a config schema to include the directory options is relatively straight forward. Properties can be stored inside of any &amp;lt;code&amp;gt;Group&amp;lt;/code&amp;gt; within the Config Schema files as the Mod Loader will search through all &amp;lt;code&amp;gt;Groups&amp;lt;/code&amp;gt; looking for a matching property to the expected &amp;lt;code&amp;gt;Property&amp;lt;/code&amp;gt; name.&lt;br /&gt;
&lt;br /&gt;
The expected &amp;lt;code&amp;gt;Property&amp;lt;/code&amp;gt; names should match the variables setup in the mod&amp;#039;s Config section of its &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; file, ie &amp;lt;code&amp;gt;IncludeDirX&amp;lt;/code&amp;gt; where X is the corresponding index. In our example, &amp;lt;code&amp;gt;sonic_sword&amp;lt;/code&amp;gt; is the default option for &amp;lt;code&amp;gt;IncludeDir0&amp;lt;/code&amp;gt; while &amp;lt;code&amp;gt;altmusica&amp;lt;/code&amp;gt; is the default option for &amp;lt;code&amp;gt;IncludeDir1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Making use of &amp;lt;code&amp;gt;Enums&amp;lt;/code&amp;gt; is the best way to setup the &amp;lt;code&amp;gt;Property&amp;lt;/code&amp;gt; types as it controls what the folder names are without the user needing to do anything further. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; field in an &amp;lt;code&amp;gt;EnumMember&amp;lt;/code&amp;gt; needs to match the folder name to work properly. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--Example Config Schema--&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ConfigSchema xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://www.sonicretro.org&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Groups&amp;gt;&lt;br /&gt;
		&amp;lt;Group name=&amp;quot;options&amp;quot; display=&amp;quot;Example Options&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;Property name=&amp;quot;IncludeDir0&amp;quot; type=&amp;quot;model&amp;quot; display=&amp;quot;Sonic Outfit&amp;quot; defaultvalue=&amp;quot;sonic_sword&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;HelpText&amp;gt;Select the outfit you want Sonic to use.&amp;lt;/HelpText&amp;gt;&lt;br /&gt;
			&amp;lt;/Property&amp;gt;&lt;br /&gt;
			&amp;lt;Property name=&amp;quot;IncludeDir1&amp;quot; type=&amp;quot;music&amp;quot; display=&amp;quot;Sonic Theme&amp;quot; defaultvalue=&amp;quot;altmusica&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;HelpText&amp;gt;Select the theme you want to be used for Sonic.&amp;lt;/HelpText&amp;gt;&lt;br /&gt;
			&amp;lt;/Property&amp;gt;&lt;br /&gt;
		&amp;lt;/Group&amp;gt;&lt;br /&gt;
	&amp;lt;/Groups&amp;gt;&lt;br /&gt;
	&amp;lt;Enums&amp;gt;&lt;br /&gt;
		&amp;lt;Enum name=&amp;quot;model&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;EnumMember name=&amp;quot;sonic_sword&amp;quot; display=&amp;quot;Sonic with Gauntlet (from SatBK)&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;EnumMember name=&amp;quot;sonic_ring&amp;quot; display=&amp;quot;Sonic with Ring (from SatSR)&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/Enum&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;Enum name=&amp;quot;music&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;EnumMember name=&amp;quot;altmusica&amp;quot; display=&amp;quot;Knight of the Wind&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;EnumMember name=&amp;quot;altmusicb&amp;quot; display=&amp;quot;Seven Rings in Hand&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/Enum&amp;gt;&lt;br /&gt;
	&amp;lt;/Enums&amp;gt;&lt;br /&gt;
&amp;lt;/ConfigSchema&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the end, this is how the overall folder looks after creating the Config Schema, adding the additional folder options, and removing the &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt; folder as it was not needed:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;PICTURE&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Best Practices ===&lt;br /&gt;
Default options inside the Config Schema should match the defaults within your mod&amp;#039;s INI file. Failing to due so may result in unintended behavior where the Mod Loader will continue to load whatever the option set in the mod&amp;#039;s INI is set to. This is because the Mod Loader checks for a &amp;lt;code&amp;gt;config.ini&amp;lt;/code&amp;gt; file and loads info from there. If it is not located, it sets the default directory to load as the one found in &amp;lt;code&amp;gt;mod.ini&amp;lt;/code&amp;gt; as that is the fallback.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Code based Configuration Setup ==&lt;br /&gt;
&lt;br /&gt;
{{Note|text=This section will be added at a later date|type=info}}&lt;/div&gt;</description>
			<pubDate>Fri, 21 Aug 2026 02:46:49 GMT</pubDate>
			<dc:creator>ItsEasyActually</dc:creator>
			<comments>https://sadocs.unreliable.network/wiki/Talk:Creating_Mods/Mod_Configuration</comments>
		</item>
</channel></rss>