<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://delta-v.kodera.pl/index.php?action=history&amp;feed=atom&amp;title=Writing_Your_Own_Mod</id>
	<title>Writing Your Own Mod - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://delta-v.kodera.pl/index.php?action=history&amp;feed=atom&amp;title=Writing_Your_Own_Mod"/>
	<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;action=history"/>
	<updated>2026-05-24T17:49:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41173&amp;oldid=prev</id>
		<title>Hev: added manifest versioning to the mod.manifest section. still needs to be updated for ManifestV2</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41173&amp;oldid=prev"/>
		<updated>2025-08-12T02:53:17Z</updated>

		<summary type="html">&lt;p&gt;added manifest versioning to the mod.manifest section. still needs to be updated for ManifestV2&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:53, 12 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l346&quot;&gt;Line 346:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 346:&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;=== Mod.manifest File ===&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;=== Mod.manifest File ===&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;The mod.manifest is a more recent addition to the modding scope. It&amp;#039;s not a required file by any means, however it&amp;#039;s an adopted standard to provide additional information to any mods looking to take info from said mod. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;As &lt;/del&gt;many or as few of these can be filled out, and blank sections can be left as &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;. Current mods that use this may or may not support the removal of lines, so it is best to leave them in anyway.&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 mod.manifest is a more recent addition to the modding scope. It&amp;#039;s not a required file by any means, however it&amp;#039;s an adopted standard to provide additional information to any mods looking to take info from said mod. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It takes the form of a standard .ini config file, and as &lt;/ins&gt;many or as few of these can be filled out, and blank sections can be left as &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;. Current mods that use this may or may not support the removal of lines, so it is best to leave them in anyway.&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;An example of the file&amp;#039;s structure is as follows:&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;An example of the file&amp;#039;s structure is as follows:&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-l364&quot;&gt;Line 364:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 364:&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;  custom_link=&amp;quot;&amp;lt;nowiki&amp;gt;https://example.url&amp;lt;/nowiki&amp;gt;&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;  custom_link=&amp;quot;&amp;lt;nowiki&amp;gt;https://example.url&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  custom_link_name=&amp;quot;Example url for the custom link&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;  custom_link_name=&amp;quot;Example url for the custom link&amp;quot;&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;&amp;lt;code&amp;gt;[package]&amp;lt;/code&amp;gt; is the identifer for the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mod &lt;/del&gt;manifest, and should be left alone as such&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; &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; [manifest_definitions]&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; manifest_version=1&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/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;&amp;lt;code&amp;gt;[package]&amp;lt;/code&amp;gt; is the identifer for the manifest&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;s data section in manifest versions 1 and 2&lt;/ins&gt;, and should be left alone as such&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. It is planned to be depreciated in future manifest versions.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; The unique identifier of the mod. Useful for differentiation with other mods that may use the same name. The common formatting is &amp;lt;code&amp;gt;(nick)name.ModName&amp;lt;/code&amp;gt;, but it can be whatever you like.&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;id&amp;lt;/code&amp;gt; The unique identifier of the mod. Useful for differentiation with other mods that may use the same name. The common formatting is &amp;lt;code&amp;gt;(nick)name.ModName&amp;lt;/code&amp;gt;, but it can be whatever you like.&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-l391&quot;&gt;Line 391:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 396:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;custom_link_name&amp;lt;/code&amp;gt; A string used for any text tooltips/labels used with the custom link. Can be either plain text or a translation string.&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;custom_link_name&amp;lt;/code&amp;gt; A string used for any text tooltips/labels used with the custom link. Can be either plain text or a translation string.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;[manifest_definitions]&amp;lt;/code&gt; is the identifier for the manifest-specific information. This currently contains only the manifest version number, but may contain more options in future manifest versions&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&gt;manifest_version&amp;lt;/code&gt; The manifest formatting version. If not provided, a version number of &amp;lt;code&gt;1&amp;lt;/code&gt; is assumed.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-41172:rev-41173 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41172&amp;oldid=prev</id>
		<title>Hev: improved the section on recommended modding requirements</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41172&amp;oldid=prev"/>
		<updated>2025-08-11T16:26:42Z</updated>

		<summary type="html">&lt;p&gt;improved the section on recommended modding requirements&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 16:26, 11 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&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;* A demo build will work fine as well, as at the time of writing, it and the full release are identical.&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;* A demo build will work fine as well, as at the time of writing, it and the full release are identical.&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;Second, the [https://godotengine.org/download/archive/3.6-stable/ Godot Game Engine] which is used for the editing of mods.  &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;Second, the [https://godotengine.org/download/archive/3.6-stable/ Godot Game Engine]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, specifically version 3.6, &lt;/ins&gt;which is used for the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;writing and &lt;/ins&gt;editing of mods.  &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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* At the time of writing, Experimental versions past 1.74.5 have started to use Godot Engine 3.6, so we&amp;#039;ll be using Godot 3.6 to edit the game, which should still support 3.5.3 for the current stable release builds.&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;Third, [https://github.com/GDRETools/gdsdecomp/releases/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;latest &lt;/ins&gt;Godot Reverse Engineering Tools] (a.k.a. GDRE), which is used to decompile the game.&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 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;Third, [https://github.com/GDRETools/gdsdecomp/releases/ Godot Reverse Engineering Tools] (a.k.a. GDRE), which is used to decompile the game.&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; 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;* &amp;lt;s&amp;gt;0.5.3 is the optimal version to use, as versions newer than this can take between 30 mins to several hours to load into the editor. I have no idea why this happens, it just does.&amp;lt;/s&amp;gt;&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;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* As of [https://github.com/GDRETools/gdsdecomp/releases/tag/v0.9.0-rc.2 0.9.0-rc2], this bug was fixed. The issue revolved around the MD5 hashes of resources being wrong, and Godot needing to re-import several hundred files (more info from my own explanation in the discord: [https://discord.com/channels/426287934870781952/1252866978075512863/1361841508294328362 here])&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;Extract and move these to somewhere accessible.&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;Extract and move these to somewhere accessible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-41152:rev-41172 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41152&amp;oldid=prev</id>
		<title>Hev: added linking to future page for working in the Godot Editor</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41152&amp;oldid=prev"/>
		<updated>2025-05-02T21:59:10Z</updated>

		<summary type="html">&lt;p&gt;added linking to future page for working in the Godot Editor&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 21:59, 2 May 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l50&quot;&gt;Line 50:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 50:&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;The initial import process will take a couple of minutes at worst if everything is followed. In the case where it takes a significant amount of time, you may have used a newer version of GDRE. If it appears to freeze, don&amp;#039;t worry, it is still processing, and can be used regardless. After the first import, future loading times usually will be significantly better, although it is always better to use GDRE 0.5.3 to ensure quick loading times.&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 initial import process will take a couple of minutes at worst if everything is followed. In the case where it takes a significant amount of time, you may have used a newer version of GDRE. If it appears to freeze, don&amp;#039;t worry, it is still processing, and can be used regardless. After the first import, future loading times usually will be significantly better, although it is always better to use GDRE 0.5.3 to ensure quick loading times.&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;It may also be worth taking a look at the guide for modding with the Godot Editor, [[Using the Godot Editor|which can be found 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;div&gt;= Mod 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;= Mod Structure =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-41145:rev-41152 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41145&amp;oldid=prev</id>
		<title>Hev: updated mod main settings, and added info on a config file</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41145&amp;oldid=prev"/>
		<updated>2025-04-16T22:04:06Z</updated>

		<summary type="html">&lt;p&gt;updated mod main settings, and added info on a config file&lt;/p&gt;
&lt;a href=&quot;https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;amp;diff=41145&amp;amp;oldid=41144&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41144&amp;oldid=prev</id>
		<title>Hev: updated GDRE link to rc2</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41144&amp;oldid=prev"/>
		<updated>2025-04-15T23:22:31Z</updated>

		<summary type="html">&lt;p&gt;updated GDRE link to rc2&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 23:22, 15 April 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l18&quot;&gt;Line 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;s&amp;gt;0.5.3 is the optimal version to use, as versions newer than this can take between 30 mins to several hours to load into the editor. I have no idea why this happens, it just does.&amp;lt;/s&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;s&amp;gt;0.5.3 is the optimal version to use, as versions newer than this can take between 30 mins to several hours to load into the editor. I have no idea why this happens, it just does.&amp;lt;/s&amp;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;* As of [https://github.com/GDRETools/gdsdecomp/releases/tag/v0.9.0-rc.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1 &lt;/del&gt;0.9.0-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rc1&lt;/del&gt;], this bug was fixed. The issue revolved around the MD5 hashes of resources being wrong, and Godot needing to re-import several hundred files (more info from my own explanation in the discord: [https://discord.com/channels/426287934870781952/1252866978075512863/1361841508294328362 here])&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;* As of [https://github.com/GDRETools/gdsdecomp/releases/tag/v0.9.0-rc.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2 &lt;/ins&gt;0.9.0-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rc2&lt;/ins&gt;], this bug was fixed. The issue revolved around the MD5 hashes of resources being wrong, and Godot needing to re-import several hundred files (more info from my own explanation in the discord: [https://discord.com/channels/426287934870781952/1252866978075512863/1361841508294328362 here])&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;Extract and move these to somewhere accessible.&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;Extract and move these to somewhere accessible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-41143:rev-41144 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41143&amp;oldid=prev</id>
		<title>Hev: made note of the recent fix to GDRE tools that patches the MD5 hash bug, as well as the recent move to Godot 3.6</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41143&amp;oldid=prev"/>
		<updated>2025-04-15T23:20:28Z</updated>

		<summary type="html">&lt;p&gt;made note of the recent fix to GDRE tools that patches the MD5 hash bug, as well as the recent move to Godot 3.6&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 23:20, 15 April 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&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;* A demo build will work fine as well, as at the time of writing, it and the full release are identical.&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;* A demo build will work fine as well, as at the time of writing, it and the full release are identical.&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;Second, the [https://godotengine.org/download/archive/3.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5&lt;/del&gt;-stable/ Godot Game Engine] which is used for the editing of mods.  &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;Second, the [https://godotengine.org/download/archive/3.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&lt;/ins&gt;-stable/ Godot Game Engine] which is used for the editing of mods.  &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;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ΔV is built off &lt;/del&gt;of Godot 3.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5.3 at the time of writing&lt;/del&gt;, so we&amp;#039;ll &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;use &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;appropriate editor build&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;At the time &lt;/ins&gt;of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;writing, Experimental versions past 1.74.5 have started to use &lt;/ins&gt;Godot &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Engine &lt;/ins&gt;3.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&lt;/ins&gt;, so we&amp;#039;ll &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;be using Godot 3.6 to edit the game, which should still support 3.5.3 for &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;current stable release builds&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Third, [https://github.com/GDRETools/gdsdecomp/releases/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tag/v0.5.3 &lt;/del&gt;Godot Reverse Engineering Tools] (a.k.a. GDRE), which is used to decompile the game.&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;Third, [https://github.com/GDRETools/gdsdecomp/releases/ Godot Reverse Engineering Tools] (a.k.a. GDRE), which is used to decompile the game.&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;* 0.5.3 is the optimal version to use, as versions newer than this can take between 30 mins to several hours to load into the editor. I have no idea why this happens, it just does.&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;&amp;lt;s&amp;gt;&lt;/ins&gt;0.5.3 is the optimal version to use, as versions newer than this can take between 30 mins to several hours to load into the editor. I have no idea why this happens, it just does.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/s&amp;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;* As of [https://github.com/GDRETools/gdsdecomp/releases/tag/v0.9.0-rc.1 0.9.0-rc1], this bug was fixed. The issue revolved around the MD5 hashes of resources being wrong, and Godot needing to re-import several hundred files (more info from my own explanation in the discord: [https://discord.com/channels/426287934870781952/1252866978075512863/1361841508294328362 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;div&gt;Extract and move these to somewhere accessible.&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;Extract and move these to somewhere accessible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-41092:rev-41143 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41092&amp;oldid=prev</id>
		<title>Hev at 20:03, 17 March 2025</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41092&amp;oldid=prev"/>
		<updated>2025-03-17T20:03:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;amp;diff=41092&amp;amp;oldid=41091&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41091&amp;oldid=prev</id>
		<title>Hev: initial edit. work is still needed</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Writing_Your_Own_Mod&amp;diff=41091&amp;oldid=prev"/>
		<updated>2025-03-17T08:24:14Z</updated>

		<summary type="html">&lt;p&gt;initial edit. work is still needed&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This guide covers the basics to getting started with writing a mod for ΔV. It is a modified version of [https://github.com/ZakrinYoran/Delta-V-Modding Za&amp;#039;krin&amp;#039;s modding guide], where a large portion of the credit will be given.&lt;br /&gt;
&lt;br /&gt;
This guide is written for Windows users, however the equivalent for operating systems such as Linux and OS X should work extremely similarly.&lt;br /&gt;
&lt;br /&gt;
= Setup =&lt;br /&gt;
This section will cover the resources used for modding. They are heavily encourage to be used, as it will make your life considerably easier with their use.&lt;br /&gt;
&lt;br /&gt;
=== Downloaded Resources ===&lt;br /&gt;
First off, you will need a copy of [https://store.steampowered.com/app/846030/DV_Rings_of_Saturn/ ΔV: Rings of Saturn] as a decompiled copy of the game will be used as a reference. &lt;br /&gt;
&lt;br /&gt;
* A demo build will work fine as well, as at the time of writing, it and the full release are identical.&lt;br /&gt;
&lt;br /&gt;
Second, the [https://godotengine.org/download/archive/3.5-stable/ Godot Game Engine] which is used for the editing of mods. &lt;br /&gt;
&lt;br /&gt;
* ΔV is built off of Godot 3.5.3 at the time of writing, so we&amp;#039;ll use the appropriate editor build.&lt;br /&gt;
&lt;br /&gt;
Third, [https://github.com/GDRETools/gdsdecomp/releases/tag/v0.5.3 Godot Reverse Engineering Tools] (a.k.a. GDRE), which is used to decompile the game.&lt;br /&gt;
&lt;br /&gt;
* 0.5.3 is the optimal version to use, as versions newer than this can take between 30 mins to several hours to load into the editor. I have no idea why this happens, it just does.&lt;br /&gt;
&lt;br /&gt;
Extract and move these to somewhere accessible.&lt;br /&gt;
&lt;br /&gt;
=== Decompiling ===&lt;br /&gt;
The process for decompiling ΔV is fairly straightforward when using GDRE.&lt;br /&gt;
&lt;br /&gt;
* Open the folder containing &amp;lt;code&amp;gt;gdre_tools.exe&amp;lt;/code&amp;gt; in your file explorer.&lt;br /&gt;
* Open the ΔV game folder (on steam it&amp;#039;s Right-Click -&amp;gt; Manage -&amp;gt; Browse Local Files).&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;Delta-V.pck&amp;lt;/code&amp;gt; (not &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt;!) into the GDRE folder.&lt;br /&gt;
* Open GDRE and select &amp;quot;Recover Project&amp;quot; from the &amp;quot;RE Tools&amp;quot; menu.&lt;br /&gt;
* Select &amp;lt;code&amp;gt;Delta-V.pck&amp;lt;/code&amp;gt; and wait for the file verification process to finish.&lt;br /&gt;
* Leave the default settings, set the folder location, and extract the project.&lt;br /&gt;
* Once the extraction process is finished, ΔV should be ready for import into Godot.&lt;br /&gt;
&lt;br /&gt;
In the case where there have been problems using the GUI, the command line can be used instead. To use that instead of the GUI, follow the below steps:&lt;br /&gt;
&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;Delta-V.pck&amp;lt;/code&amp;gt; into the GDRE folder as before.&lt;br /&gt;
* Open windows command prompt and &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; into the folder (e.g. &amp;lt;code&amp;gt;cd C:\godotTools\GDRE_tools&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Run &amp;lt;code&amp;gt;gdre_tools.exe&amp;lt;/code&amp;gt; with the following command: &amp;lt;code&amp;gt;gdre_tools --headless --recover=Delta-V.pck&amp;lt;/code&amp;gt;. This will create a new folder called containing the decompiled game files.&lt;br /&gt;
* Move the decompiled files to wherever you want your project located.&lt;br /&gt;
&lt;br /&gt;
For more detail on the usage of GDRE, see the [https://github.com/bruvzg/gdsdecomp?tab=readme-ov-file#usage usage section of their readme].&lt;br /&gt;
&lt;br /&gt;
=== Importing into Godot ===&lt;br /&gt;
Loading the decompiled game files into Godot is rather simple.&lt;br /&gt;
&lt;br /&gt;
* Open your copy of Godot and select the &amp;#039;Import&amp;#039; option.&lt;br /&gt;
* Navigate to where you stored your decompiled version of ΔV and select the &amp;lt;code&amp;gt;project.godot&amp;lt;/code&amp;gt; file.&lt;br /&gt;
* Launch the Delta-V Project, and let Godot import all of the files.&lt;br /&gt;
&lt;br /&gt;
The initial import process will take a couple of minutes at worst if everything is followed. In the case where it takes a significant amount of time, you may have used a newer version of GDRE. If it appears to freeze, don&amp;#039;t worry, it is still processing, and can be used regardless. After the first import, future loading times usually will be significantly better, although it is always better to use GDRE 0.5.3 to ensure quick loading times.&lt;br /&gt;
&lt;br /&gt;
= Mod Structure =&lt;br /&gt;
ΔV mods (and Godot projects in general) work in a hierarchical file structure centered around the project&amp;#039;s root folder (referred to as &amp;lt;code&amp;gt;res://&amp;lt;/code&amp;gt;). If any file isn&amp;#039;t referenced relative to the executed code, it will be relative to &amp;lt;code&amp;gt;res://&amp;lt;/code&amp;gt;. There are also other file system prefixes, such as &amp;lt;code&amp;gt;user://&amp;lt;/code&amp;gt; and the OS&amp;#039;s file system paths, however these are very rarely used, especially for modding, so will only be covered briefly later down the line.&lt;br /&gt;
&lt;br /&gt;
=== Mod Folder Structure ===&lt;br /&gt;
Mod zips will be mounted to the root as how they appear in the zip. For example, a zip with the structure of &amp;lt;code&amp;gt;A_Mod.zip/ModFolder/ModMain.gd&amp;lt;/code&amp;gt; is the equivalent to having added a folder named ModFolder to the root folder and adding the ModMain.gd file in it. In terms of &amp;lt;code&amp;gt;res://&amp;lt;/code&amp;gt;, it appears like &amp;lt;code&amp;gt;res://ModFolder/ModMain.gd&amp;lt;/code&amp;gt;. Mods don&amp;#039;t need to follow this structure explicitly, however it is extremely convenient when structured like this as it makes it easy to work with in the editor.&lt;br /&gt;
&lt;br /&gt;
=== ModMain.gd ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ModMain.gd&amp;lt;/code&amp;gt; file is just about the most important file in the entirety of the mod. It is where the mod&amp;#039;s resources are initially loaded and run. Even if only a single file is needed to be loaded to get the entire mod to run, it will not work if not referenced here.&lt;br /&gt;
&lt;br /&gt;
It can be as simple or complex as you like, however the commonly utilized format works as follows:&lt;br /&gt;
 extends Node&lt;br /&gt;
 &lt;br /&gt;
 # Set mod priority if you want it to load before/after other mods&lt;br /&gt;
 # Mods are loaded from lowest to highest priority, default is 0&lt;br /&gt;
 const MOD_PRIORITY = 0&lt;br /&gt;
 &lt;br /&gt;
 # Name and version of the mod, used for writing to the logs&lt;br /&gt;
 const MOD_NAME = &amp;quot;Mod Name&amp;quot;&lt;br /&gt;
 const MOD_VERSION = &amp;quot;1.0.0&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Path of the mod folder, automatically generated on runtime&lt;br /&gt;
 var modPath:String = get_script().resource_path.get_base_dir() + &amp;quot;/&amp;quot;&lt;br /&gt;
 # Required var for the replaceScene() func to work&lt;br /&gt;
 var _savedObjects := []&lt;br /&gt;
 &lt;br /&gt;
 # Initialize the mod&lt;br /&gt;
 # This function is executed before the majority of the game is loaded&lt;br /&gt;
 # Only the Tool and Debug AutoLoads are available&lt;br /&gt;
 # Script and scene replacements should be done here, before the originals are loaded&lt;br /&gt;
 func _init(modLoader = ModLoader):&lt;br /&gt;
 	l(&amp;quot;Initializing DLC&amp;quot;)&lt;br /&gt;
 	loadDLC() # preloads DLC as things may break if this isn&amp;#039;t done&lt;br /&gt;
 &lt;br /&gt;
 # Do stuff on ready&lt;br /&gt;
 # At this point all AutoLoads are available and the game is loaded&lt;br /&gt;
 func _ready():&lt;br /&gt;
 	l(&amp;quot;Readying&amp;quot;)&lt;br /&gt;
 	l(&amp;quot;Ready&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Helper function to extend scripts&lt;br /&gt;
 # Loads the script you pass, checks what script is extended, and overrides it&lt;br /&gt;
 func installScriptExtension(path:String):&lt;br /&gt;
 	var childPath:String = str(modPath + path)&lt;br /&gt;
 	var childScript:Script = ResourceLoader.load(childPath)&lt;br /&gt;
 &lt;br /&gt;
 	childScript.new()&lt;br /&gt;
 &lt;br /&gt;
 	var parentScript:Script = childScript.get_base_script()&lt;br /&gt;
 	var parentPath:String = parentScript.resource_path&lt;br /&gt;
 &lt;br /&gt;
 	l(&amp;quot;Installing script extension: %s &amp;lt;- %s&amp;quot; % [parentPath, childPath])&lt;br /&gt;
 &lt;br /&gt;
 	childScript.take_over_path(parentPath)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Helper function to replace scenes&lt;br /&gt;
 # Can either be passed a single path, or two paths&lt;br /&gt;
 # With a single path, it will replace the vanilla scene in the same relative position&lt;br /&gt;
 func replaceScene(newPath:String, oldPath:String = &amp;quot;&amp;quot;):&lt;br /&gt;
 	l(&amp;quot;Updating scene: %s&amp;quot; % newPath)&lt;br /&gt;
 &lt;br /&gt;
 	if oldPath.empty():&lt;br /&gt;
 		oldPath = str(&amp;quot;res://&amp;quot; + newPath)&lt;br /&gt;
 &lt;br /&gt;
 	newPath = str(modPath + newPath)&lt;br /&gt;
 &lt;br /&gt;
 	var scene := load(newPath)&lt;br /&gt;
 	scene.take_over_path(oldPath)&lt;br /&gt;
 	_savedObjects.append(scene)&lt;br /&gt;
 	l(&amp;quot;Finished updating: %s&amp;quot; % oldPath)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Instances Settings.gd, loads DLC, then frees the script.&lt;br /&gt;
 func loadDLC():&lt;br /&gt;
 	l(&amp;quot;Preloading DLC as workaround&amp;quot;)&lt;br /&gt;
 	var DLCLoader:Settings = preload(&amp;quot;res://Settings.gd&amp;quot;).new()&lt;br /&gt;
 	DLCLoader.loadDLC()&lt;br /&gt;
 	DLCLoader.queue_free()&lt;br /&gt;
 	l(&amp;quot;Finished loading DLC&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Func to print messages to the logs&lt;br /&gt;
 func l(msg:String, title:String = MOD_NAME, version:String = MOD_VERSION):&lt;br /&gt;
 	Debug.l(&amp;quot;[%s V%s]: %s&amp;quot; % [title, version, msg])&lt;br /&gt;
The additional functions provided with this script are not necessary, however are used by effectively every mod, and are left for convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;big&amp;gt;Runtime variables&amp;lt;/big&amp;gt; (&amp;#039;&amp;#039;&amp;#039;variables used by the mod menu for the workings of other functions&amp;#039;&amp;#039;&amp;#039;):&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const MOD_PRIORITY = 0&amp;lt;/code&amp;gt;: The load priority of the mod. Zero by default, but can be changed to any integer. If a mod has the same priority, then it will go in alphabetical order of the zip files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const MOD_NAME = &amp;quot;&amp;quot; AND const MOD_VERSION = &amp;quot;1.0.0&amp;quot;&amp;lt;/code&amp;gt;: Mod name and versions. Directly used for logging purposes with the &amp;lt;code&amp;gt;l()&amp;lt;/code&amp;gt; function later down the line, however is also used by the mod menu if you  choose to install it (more on that later)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;var modPath:String = get_script().resource_path.get_base_dir() + &amp;quot;/&amp;quot;&amp;lt;/code&amp;gt;: used to get the ModMain&amp;#039;s file path. Used for other functions so is best leaving alone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;var _savedObjects := []&amp;lt;/code&amp;gt;: variable used by the &amp;lt;code&amp;gt;replaceScene()&amp;lt;/code&amp;gt; function. This should be left blank.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;big&amp;gt;System functions&amp;lt;/big&amp;gt; (&amp;#039;&amp;#039;&amp;#039;static functions that should be where the body of your ModMain are&amp;#039;&amp;#039;&amp;#039;):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;func _init(modLoader = ModLoader):&amp;lt;/code&amp;gt;: Any functions loaded in this function are done as soon as the script is run. The modloader variable is used to load various functions from the modloader as autoloads are not available yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;loadDLC()&amp;lt;/code&amp;gt; should be loaded as early as possible in the &amp;lt;code&amp;gt;_init()&amp;lt;/code&amp;gt; function. Ensures DLC loads properly as it breaks when mods are loaded for whatever reason&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;func _ready():&amp;lt;/code&amp;gt;: Functions loaded here will be loaded once everything else has loaded and all autoloads are available.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;big&amp;gt;Load Functions&amp;lt;/big&amp;gt; (&amp;#039;&amp;#039;&amp;#039;functions used to load resources from your mod&amp;#039;&amp;#039;&amp;#039;):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;replaceScene&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;replaceScene()&amp;lt;/code&amp;gt; overrides or replaces a vanilla scene.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;newPath:String&amp;lt;/code&amp;gt; is the path to your modded scene, relative to the mod folder.&lt;br /&gt;
* &amp;lt;code&amp;gt;oldPath:String&amp;lt;/code&amp;gt; is an optional path to the vanilla scene you are overriding, if no path is provided, the same path as your new scene will be used, but relative to &amp;lt;code&amp;gt;res://&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* Replacing scenes requires loading the scene, which loads any resources present in the scene. Make sure any resources present (e.g. scripts) are modified before the scene is replaced.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Examples:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;replaceScene(&amp;quot;ships/RA-TRTL.tscn&amp;quot;)&amp;lt;/code&amp;gt; loads a scene from your mod at &amp;lt;code&amp;gt;res://ModFolder/ships/RA-TRTL.tscn&amp;lt;/code&amp;gt; that modifies the K37 ship scene at the vanilla location &amp;lt;code&amp;gt;res://ships/RA-TRTL.tscn&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;replaceScene(&amp;quot;modifications/ships/RA-TRTL.tscn&amp;quot;,&amp;quot;res://ships/RA-TRTL.tscn&amp;quot;)&amp;lt;/code&amp;gt; loads a scene in your mod&amp;#039;s folder at &amp;lt;code&amp;gt;res://ModFolder/modifications/ships/RA-TRTL.tscn&amp;lt;/code&amp;gt; which modifies the K37 scene at the vanilla location &amp;lt;code&amp;gt;res://ships/RA-TRTL.tscn&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;installScriptExtension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;installScriptExtension()&amp;lt;/code&amp;gt; is used to override vanilla script behavior.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;path:String&amp;lt;/code&amp;gt; is the path to the new script, relative to the root of the mod folder.&lt;br /&gt;
* The [https://docs.godotengine.org/en/3.5/tutorials/scripting/gdscript/gdscript_basics.html#inheritance inherited] script gets overridden, whenever it is used, your modified script will instead be applied.&lt;br /&gt;
* Inheritance is very powerful, and can be used to override most vanilla behavior, with some exceptions.&lt;br /&gt;
* Scripts must be extended before they are loaded. Once applied to a node, the script is locked in and modifying the script resource will not affect existing instances.&lt;br /&gt;
* It can be used to load new scripts, however it is best used to modify preexisting scripts from the vanilla game.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;installScriptExtension(&amp;quot;ships/Shipyard.gd&amp;quot;)&amp;lt;/code&amp;gt; loads a script from &amp;lt;code&amp;gt;res://ModFolder/ships/Shipyard.gd&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Add Translations ====&lt;br /&gt;
 func _ready():&lt;br /&gt;
 	l(&amp;quot;Readying&amp;quot;)&lt;br /&gt;
 	updateTL(&amp;quot;i18n/en.txt&amp;quot;,&amp;quot;|&amp;quot;)&lt;br /&gt;
 	l(&amp;quot;Ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 # Helper script to load translations using csv format&lt;br /&gt;
 # `path` is the path to the transalation file&lt;br /&gt;
 # `delim` is the symbol used to seperate the values&lt;br /&gt;
 # example usage: updateTL(&amp;quot;i18n/translation.txt&amp;quot;, &amp;quot;|&amp;quot;)&lt;br /&gt;
 func updateTL(path:String, delim:String = &amp;quot;,&amp;quot;):&lt;br /&gt;
 	path = str(modPath + path)&lt;br /&gt;
 	l(&amp;quot;Adding translations from: %s&amp;quot; % path)&lt;br /&gt;
 	var tlFile:File = File.new()&lt;br /&gt;
 	tlFile.open(path, File.READ)&lt;br /&gt;
 &lt;br /&gt;
 	var translations := []&lt;br /&gt;
 &lt;br /&gt;
 	var csvLine := tlFile.get_line().split(delim)&lt;br /&gt;
 	l(&amp;quot;Adding translations as: %s&amp;quot; % csvLine)&lt;br /&gt;
 	for i in range(1, csvLine.size()):&lt;br /&gt;
 		var translationObject := Translation.new()&lt;br /&gt;
 		translationObject.locale = csvLine[i]&lt;br /&gt;
 		translations.append(translationObject)&lt;br /&gt;
 &lt;br /&gt;
 	while not tlFile.eof_reached():&lt;br /&gt;
 		csvLine = tlFile.get_csv_line(delim)&lt;br /&gt;
 &lt;br /&gt;
 		if csvLine.size() &amp;gt; 1:&lt;br /&gt;
 			var translationID := csvLine[0]&lt;br /&gt;
 			for i in range(1, csvLine.size()):&lt;br /&gt;
 				translations[i - 1].add_message(translationID, csvLine[i].c_unescape())&lt;br /&gt;
 			l(&amp;quot;Added translation: %s&amp;quot; % csvLine)&lt;br /&gt;
 &lt;br /&gt;
 	tlFile.close()&lt;br /&gt;
 &lt;br /&gt;
 	for translationObject in translations:&lt;br /&gt;
 		TranslationServer.add_translation(translationObject)&lt;br /&gt;
 &lt;br /&gt;
 	l(&amp;quot;Translations Updated&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Config File ====&lt;br /&gt;
 var modConfig = {} #Initializes the configuration variable for loadSettings.&lt;br /&gt;
&lt;br /&gt;
 func _init(modLoader = ModLoader):&lt;br /&gt;
 	installScriptExtension(&amp;quot;Settings.gd&amp;quot;) # Modify Settings.gd first so we can load config and DLC&lt;br /&gt;
 	loadSettings()&lt;br /&gt;
 # This function is a helper to provide any file configurations to your mod&lt;br /&gt;
 # You may want to replace any &amp;quot;Example&amp;quot; text with your own identifier to make it unique&lt;br /&gt;
 # Check the example Settings.gd file for how to setup that side of it&lt;br /&gt;
 func loadSettings():&lt;br /&gt;
 	l(MOD_NAME + &amp;quot;: Loading mod settings&amp;quot;)&lt;br /&gt;
 	var settings = load(&amp;quot;res://Settings.gd&amp;quot;).new()&lt;br /&gt;
 	settings.loadModMenuFromFile()&lt;br /&gt;
 	settings.saveModMenuToFile()&lt;br /&gt;
 	modConfig = settings.ModMenu&lt;br /&gt;
 	l(MOD_NAME + &amp;quot;: Current settings: %s&amp;quot; % modConfig)&lt;br /&gt;
 	settings.queue_free()&lt;br /&gt;
 	l(MOD_NAME + &amp;quot;: Finished loading settings&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Mod Checking ====&lt;br /&gt;
 # Func to scan the mods folder and return any files. Useful for checking dependancies. &lt;br /&gt;
 var modDependancy = []&lt;br /&gt;
 func modsInstalled():&lt;br /&gt;
 	var gameInstallDirectory = OS.get_executable_path().get_base_dir()&lt;br /&gt;
 	if OS.get_name() == &amp;quot;OSX&amp;quot;:&lt;br /&gt;
 		gameInstallDirectory = gameInstallDirectory.get_base_dir().get_base_dir().get_base_dir()&lt;br /&gt;
 	var modPathPrefix = gameInstallDirectory.plus_file(&amp;quot;mods&amp;quot;)&lt;br /&gt;
 	l(MOD_NAME + &amp;quot;: Registering and verifying contents of the mods folder&amp;quot;)&lt;br /&gt;
 	var dir = Directory.new()&lt;br /&gt;
 	dir.open(modPathPrefix)&lt;br /&gt;
 	var dirName = dir.get_current_dir()&lt;br /&gt;
 	dir.list_dir_begin(true)&lt;br /&gt;
 	while true:&lt;br /&gt;
 		var fileName = dir.get_next()&lt;br /&gt;
 		dirName = dir.get_current_dir()&lt;br /&gt;
 		l(fileName)&lt;br /&gt;
 		if fileName == &amp;quot;&amp;quot;:&lt;br /&gt;
 			break&lt;br /&gt;
 		if dir.current_is_dir():&lt;br /&gt;
 			continue&lt;br /&gt;
 		var modFSPath = modPathPrefix.plus_file(fileName)&lt;br /&gt;
 		var modGlobalPath = ProjectSettings.globalize_path(modFSPath)&lt;br /&gt;
 		if not ProjectSettings.load_resource_pack(modGlobalPath, true):&lt;br /&gt;
 			l(MOD_NAME + &amp;quot;: %s failed to register.&amp;quot; % fileName)&lt;br /&gt;
 			continue&lt;br /&gt;
 		var trueFileName = modFSPath.split(&amp;quot;/&amp;quot;)&lt;br /&gt;
 		var trueFileNameLength = trueFileName.size()&lt;br /&gt;
 		var getTrueFileName = trueFileName[trueFileNameLength - 1]&lt;br /&gt;
 		modDependancy.append(getTrueFileName)&lt;br /&gt;
 		l(MOD_NAME + &amp;quot;: %s registered.&amp;quot; % fileName)&lt;br /&gt;
 	l(MOD_NAME + &amp;quot;: Finished verification of mod folder.&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Hev</name></author>
	</entry>
</feed>