<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hedgedocs.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NextinHKRY</id>
	<title>HedgeDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://hedgedocs.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NextinHKRY"/>
	<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php/Special:Contributions/NextinHKRY"/>
	<updated>2026-04-16T21:25:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HedgeBake&amp;diff=1168</id>
		<title>HedgeBake</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HedgeBake&amp;diff=1168"/>
		<updated>2025-09-12T11:34:43Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Create initial HedgeBake page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=warn|content=This page is unfinished.}}{{ToolInfobox|title=HedgeBake|author=cosagets|website=https://github.com/cosagets/HedgeBake|download=https://github.com/cosagets/HedgeBake/releases/tag/v1.0.0}}&#039;&#039;&#039;HedgeBake&#039;&#039;&#039; is a Blender addon that allows you to bake global illumination and light-field data for Hedgehog Engine 1 games using the Cycles engine.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Tools&amp;diff=1167</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Tools&amp;diff=1167"/>
		<updated>2025-09-12T11:31:44Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Added HedgeBake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains tools that aren&#039;t specific to any Sonic game. Below you can see the tools divided by the engine they target and their purpose.&lt;br /&gt;
&lt;br /&gt;
== Various Engines ==&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicAudioTools]] (.csb / .acb)&lt;br /&gt;
&lt;br /&gt;
== Hedgehog Engine ==&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
* [[Frontiers Animation Tools]] (.skl.pxd / .anm.pxd)&lt;br /&gt;
* [[KwasTools (Hedgehog Engine)|io_kwastools]] (.cam-anim / .uv-anim)&lt;br /&gt;
* [[Havok Animation Exporter]] (.skl.hkx / .anm.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Archives ===&lt;br /&gt;
&lt;br /&gt;
* [[PackCpk]] (.cpk)&lt;br /&gt;
* [[YACpkTool]] (.cpk)&lt;br /&gt;
&lt;br /&gt;
* [[HedgeArchiveEditor]] (.ar / .pfd / .pac)&lt;br /&gt;
* [[HedgeArcPack]] (.ar / .pfd / .pac)&lt;br /&gt;
* [[ar0pack-ar0unpack]] (.ar / .pfd)&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
* [[Havok Converter]] (.phy.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicGLvl]]&lt;br /&gt;
* [[Meta Instancer]] (.mti)&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[GI Atlas Converter]]&lt;br /&gt;
* [[HedgeGI]]&lt;br /&gt;
* [[HedgeBake]]&lt;br /&gt;
* [[SonicLightTools]]&lt;br /&gt;
&lt;br /&gt;
=== Shaders ===&lt;br /&gt;
&lt;br /&gt;
* [[HE2 Shader Compiler]] (.vso / .pso / .cso / .hlsl)&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
* [[Hedgehog Engine Blender I/O]]&lt;br /&gt;
* [[HedgeMatEdit]] (.material)&lt;br /&gt;
* [[Model Converter]] (.model)&lt;br /&gt;
* [[modelfbx]] (.model / .terrain-model / .skl.hkx / .anm.hkx)&lt;br /&gt;
* [[terrain2fbx]] (.terrain-model)&lt;br /&gt;
* [[terrain2fbx-png]] (.terrain-model)&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
&lt;br /&gt;
* [[Hedgehog Converter]]&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
* [[NeedleTextureStreamingUtility]] (.ntsp / .dds)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
* [[Converse]] (.fco / .fte)&lt;br /&gt;
* [[SonicColorsXTBConv]] (.xtb)&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
* [[Shuriken]] (.xncp / .yncp)&lt;br /&gt;
* [[Kunai]] (.xncp / .yncp / .gncp / .sncp)&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Colors&amp;diff=1144</id>
		<title>Sonic Colors</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Colors&amp;diff=1144"/>
		<updated>2025-09-06T13:27:57Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
&lt;br /&gt;
* [[col2fbx]] (*_col.orc)&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
&lt;br /&gt;
* [[llightConverter]] (*_llight.orc)&lt;br /&gt;
&lt;br /&gt;
=== Stages ===&lt;br /&gt;
&lt;br /&gt;
* [[orc2xml]] (*.orc)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicColorsXTBConv]] (.xtb)&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
=== File Formats ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Colors Light Field|Light Field]]&lt;br /&gt;
* [[Sonic Colors Set Object|Set Object]]&lt;br /&gt;
&lt;br /&gt;
== Discoveries ==&lt;br /&gt;
&lt;br /&gt;
=== Objects ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Colors Unused Objects|Unused Objects]]&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=SonicColorsXTBConv&amp;diff=1143</id>
		<title>SonicColorsXTBConv</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=SonicColorsXTBConv&amp;diff=1143"/>
		<updated>2025-09-06T13:27:16Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Created page with &amp;quot;{{ToolInfobox|title=SonicColorsXTBConv|author=TheExentist151|website=https://github.com/TheExentist151/SonicColorsXTBConv|download=https://github.com/TheExentist151/SonicColorsXTBConv/releases/tag/2.1.0|image=}} &amp;#039;&amp;#039;&amp;#039;SonicColorsXTBConv&amp;#039;&amp;#039;&amp;#039; is a tool to edit &amp;lt;code&amp;gt;.xtb&amp;lt;/code&amp;gt; files from &amp;#039;&amp;#039;&amp;#039;Sonic Colors, Sonic Unleashed, Sonic Generations&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Mario &amp;amp; Sonic at the London 2012 Olympic Games&amp;#039;&amp;#039;&amp;#039;.  == Usage == &amp;lt;code&amp;gt;SonicColorsXTBConv.exe &amp;lt;input file&amp;gt; &amp;lt;format version&amp;gt; (or yo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=SonicColorsXTBConv|author=TheExentist151|website=https://github.com/TheExentist151/SonicColorsXTBConv|download=https://github.com/TheExentist151/SonicColorsXTBConv/releases/tag/2.1.0|image=}}&lt;br /&gt;
&#039;&#039;&#039;SonicColorsXTBConv&#039;&#039;&#039; is a tool to edit &amp;lt;code&amp;gt;.xtb&amp;lt;/code&amp;gt; files from &#039;&#039;&#039;Sonic Colors, Sonic Unleashed, Sonic Generations&#039;&#039;&#039; and &#039;&#039;&#039;Mario &amp;amp; Sonic at the London 2012 Olympic Games&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;code&amp;gt;SonicColorsXTBConv.exe &amp;lt;input file&amp;gt; &amp;lt;format version&amp;gt; (or you can just drag and drop a file)&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Tools&amp;diff=1142</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Tools&amp;diff=1142"/>
		<updated>2025-09-06T13:17:27Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains tools that aren&#039;t specific to any Sonic game. Below you can see the tools divided by the engine they target and their purpose.&lt;br /&gt;
&lt;br /&gt;
== Various Engines ==&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicAudioTools]] (.csb / .acb)&lt;br /&gt;
&lt;br /&gt;
== Hedgehog Engine ==&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
* [[Frontiers Animation Tools]] (.skl.pxd / .anm.pxd)&lt;br /&gt;
* [[KwasTools (Hedgehog Engine)|io_kwastools]] (.cam-anim / .uv-anim)&lt;br /&gt;
* [[Havok Animation Exporter]] (.skl.hkx / .anm.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Archives ===&lt;br /&gt;
&lt;br /&gt;
* [[PackCpk]] (.cpk)&lt;br /&gt;
* [[YACpkTool]] (.cpk)&lt;br /&gt;
&lt;br /&gt;
* [[HedgeArchiveEditor]] (.ar / .pfd / .pac)&lt;br /&gt;
* [[HedgeArcPack]] (.ar / .pfd / .pac)&lt;br /&gt;
* [[ar0pack-ar0unpack]] (.ar / .pfd)&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
* [[Havok Converter]] (.phy.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicGLvl]]&lt;br /&gt;
* [[Meta Instancer]] (.mti)&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[GI Atlas Converter]]&lt;br /&gt;
* [[HedgeGI]]&lt;br /&gt;
* [[SonicLightTools]]&lt;br /&gt;
&lt;br /&gt;
=== Shaders ===&lt;br /&gt;
&lt;br /&gt;
* [[HE2 Shader Compiler]] (.vso / .pso / .cso / .hlsl)&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
* [[Hedgehog Engine Blender I/O]]&lt;br /&gt;
* [[HedgeMatEdit]] (.material)&lt;br /&gt;
* [[Model Converter]] (.model)&lt;br /&gt;
* [[modelfbx]] (.model / .terrain-model / .skl.hkx / .anm.hkx)&lt;br /&gt;
* [[terrain2fbx]] (.terrain-model)&lt;br /&gt;
* [[terrain2fbx-png]] (.terrain-model)&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
&lt;br /&gt;
* [[Hedgehog Converter]]&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
* [[NeedleTextureStreamingUtility]] (.ntsp / .dds)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
* [[Converse]] (.fco / .fte)&lt;br /&gt;
* [[SonicColorsXTBConv]] (.xtb)&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
* [[Shuriken]] (.xncp / .yncp)&lt;br /&gt;
* [[Kunai]] (.xncp / .yncp / .gncp / .sncp)&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=ACB_Audio_Injection&amp;diff=1141</id>
		<title>ACB Audio Injection</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=ACB_Audio_Injection&amp;diff=1141"/>
		<updated>2025-09-06T12:21:49Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Formatting consistency changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this tutorial you will learn the basics of injecting audio (&amp;lt;code&amp;gt;HCA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ADX&amp;lt;/code&amp;gt;) into CRIWARE&#039;s &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; files, it helps to cut down the size of mods by not shipping the entire &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt;. The tutorial will be using &amp;lt;code&amp;gt;cri_utf_tool&amp;lt;/code&amp;gt; from [[KwasTools (Hedgehog Engine)|KwasTools]] for ACB conversion to and from XML, additional software will be required such as the &amp;lt;code&amp;gt;HCA&amp;lt;/code&amp;gt; audio converter and a text editor, in this tutorial we&#039;ll use [https://github.com/Thealexbarney/VGAudio VGAudioCli] and [https://notepad-plus-plus.org/ Notepad++]. You should also install [https://www.foobar2000.org/ foobar2000] with [https://vgmstream.org/ vgmstream component] for easy preview of audio, and it will also be useful to pinpoint file indices in the &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; archive.&lt;br /&gt;
&lt;br /&gt;
For this tutorial, we will be replacing Cyber Space 1-1&#039;s music in [[Sonic Frontiers]].&lt;br /&gt;
&lt;br /&gt;
== Converting the ACB to XML ==&lt;br /&gt;
Converting the &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; is as easy as drag and dropping it on the &amp;lt;code&amp;gt;cri_utf_tool&amp;lt;/code&amp;gt; executable, if conversion was successful it&#039;ll create an XML file in the same directory as the &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt;.[[File:Bgm cyber acb in xml form.png|center|638x638px|XML opened in a text editor|alt=XML opened in a text editor|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Creating an internal AWB file ==&lt;br /&gt;
Some &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt;s do not have an internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file, which is required to store audio we want to use. This is the case with &amp;lt;code&amp;gt;bgm_cyber&amp;lt;/code&amp;gt;, it lacks one and we need to create it. The XML structure of &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file is the same as one from &amp;lt;code&amp;gt;cri_awb_tool&amp;lt;/code&amp;gt;. However, I will include a minimal example for Sonic Frontiers below to keep things straightforward.&lt;br /&gt;
{{Notice|type=warn|content=Keep in mind that parameters need to match the external AWB&#039;s, otherwise the game will crash!}}&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;AWB version=&amp;quot;2&amp;quot; offset_size=&amp;quot;4&amp;quot; id_size=&amp;quot;2&amp;quot; alignment=&amp;quot;32&amp;quot; subkey=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;entry id=&amp;quot;0&amp;quot; path=&amp;quot;audio.hca&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/AWB&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Inserting the internal AWB structure ===&lt;br /&gt;
Search for &amp;lt;code&amp;gt;&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AwbFile&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt; and you should find this:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;5456&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AutoModulationTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;StreamAwbTocWorkOld&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AwbFile&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;amp;#10;ACB Format/PC Ver.1.37.0 Build:&amp;amp;#10;&amp;quot; name=&amp;quot;VersionString&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;CueLimitWorkTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;We need to replace the &amp;lt;code&amp;gt;AwbFile&amp;lt;/code&amp;gt; record with our own &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; structure. &lt;br /&gt;
&lt;br /&gt;
After changes you should get something like this:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;5456&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AutoModulationTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;StreamAwbTocWorkOld&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;AWB version=&amp;quot;2&amp;quot; offset_size=&amp;quot;4&amp;quot; id_size=&amp;quot;2&amp;quot; alignment=&amp;quot;32&amp;quot; subkey=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;entry id=&amp;quot;0&amp;quot; path=&amp;quot;my_audio.hca&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;entry id=&amp;quot;1&amp;quot; path=&amp;quot;my_audio_boost.hca&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/AWB&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;amp;#10;ACB Format/PC Ver.1.37.0 Build:&amp;amp;#10;&amp;quot; name=&amp;quot;VersionString&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;CueLimitWorkTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ID starts at 0 and goes up. Paths are relative to XML&#039;s location.&lt;br /&gt;
&lt;br /&gt;
== Modifying Waveform data ==&lt;br /&gt;
Next, we need to change data in the &amp;lt;code&amp;gt;Waveform&amp;lt;/code&amp;gt; table for each track we want to replace, we have to change the &amp;lt;code&amp;gt;MemoryAwbId&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Streaming&amp;lt;/code&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
=== Explanation of parameters ===&lt;br /&gt;
&amp;lt;code&amp;gt;MemoryAwbId&amp;lt;/code&amp;gt; is the index in the internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file. In our case, index &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; is the main track and index &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; is the boost version. Streaming is more interesting, it has three available options:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Streaming values&lt;br /&gt;
!Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Audio is streamed from internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file, which resides in RAM&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Audio is streamed from external &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Short snippet of audio in internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file to initialize the decoder, rest of the audio is streamed from external &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file&lt;br /&gt;
|}&lt;br /&gt;
What we&#039;re looking for is the value of &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - streaming from internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Getting AWB IDs we want to replace ===&lt;br /&gt;
Cyber Space 1-1 stage name is &amp;lt;code&amp;gt;w6d01&amp;lt;/code&amp;gt;. Opening &amp;lt;code&amp;gt;bgm_cyber.awb&amp;lt;/code&amp;gt; in foobar2000 reveals that first two tracks are what we&#039;re looking for. However, foobar2000 lists all item indexes starting from &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, so we need to subtract &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; from the desired index.&lt;br /&gt;
[[File:Bgm cyber awb in foobar.png|center|thumb|642x642px|&amp;lt;code&amp;gt;bgm_cyber.awb&amp;lt;/code&amp;gt; playing in foobar2000, with Cyber Space 1-1 audio tracks selected.]]&lt;br /&gt;
So our IDs are &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; for main track and &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for boost. With that we can finally proceed.&lt;br /&gt;
&lt;br /&gt;
=== Modifying the parameters ===&lt;br /&gt;
Quick and easy way of finding a correct Waveform is searching for a string &amp;lt;code&amp;gt;&amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbId&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is the external &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; track ID.&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;812&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;row&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;65535&amp;quot; name=&amp;quot;MemoryAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;EncodeType&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;1&amp;quot; name=&amp;quot;Streaming&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;NumChannels&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;LoopFlag&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;48000&amp;quot; name=&amp;quot;SamplingRate&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;4999086&amp;quot; name=&amp;quot;NumSamples&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;8&amp;quot; name=&amp;quot;ExtensionData&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbPortNo&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;65535&amp;quot; name=&amp;quot;LipMorthIndex&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Waveform data for track &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. After modifications (that is, changing &amp;lt;code&amp;gt;MemoryAwbId&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Streaming&amp;lt;/code&amp;gt; value) we get the following:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;812&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;row&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;MemoryAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;EncodeType&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;Streaming&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;NumChannels&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;LoopFlag&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;48000&amp;quot; name=&amp;quot;SamplingRate&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;4999086&amp;quot; name=&amp;quot;NumSamples&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;8&amp;quot; name=&amp;quot;ExtensionData&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbPortNo&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;65535&amp;quot; name=&amp;quot;LipMorthIndex&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After repeating the process for the boost track, we can now finally convert back to &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; and check results ingame.&lt;br /&gt;
&lt;br /&gt;
== Converting the XML to ACB ==&lt;br /&gt;
Same as before, drag and drop the XML on the &amp;lt;code&amp;gt;cri_utf_tool&amp;lt;/code&amp;gt;. It should output a big &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; file that&#039;s ready to be copied into a mod. The &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; we created should be playable in foobar2000 and will only show the audio files we injected into it.[[File:ACB with injected audio.png|center|thumb|660x660px|Resulting &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; playing in foobar2000]]&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
[[File:ACB Injection Result.webm|center|thumb|Result of ACB Injection|0x0px]]&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=ACB_Audio_Injection&amp;diff=1140</id>
		<title>ACB Audio Injection</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=ACB_Audio_Injection&amp;diff=1140"/>
		<updated>2025-09-06T12:20:42Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Wording and spacing changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this tutorial you will learn the basics of injecting audio (HCA, ADX) into CRIWARE&#039;s ACB files, it helps to cut down the size of mods by not shipping the entire ACB+AWB. The tutorial will be using &amp;lt;code&amp;gt;cri_utf_tool&amp;lt;/code&amp;gt; from [[KwasTools (Hedgehog Engine)|KwasTools]] for ACB conversion to and from XML, additional software will be required such as the HCA audio converter and a text editor, in this tutorial we&#039;ll use [https://github.com/Thealexbarney/VGAudio VGAudioCli] and [https://notepad-plus-plus.org/ Notepad++]. You should also install [https://www.foobar2000.org/ foobar2000] with [https://vgmstream.org/ vgmstream component] for easy preview of audio, and it will also be useful to pinpoint file indices in the AWB archive.&lt;br /&gt;
&lt;br /&gt;
For this tutorial, we will be replacing Cyber Space 1-1&#039;s music in [[Sonic Frontiers]].&lt;br /&gt;
&lt;br /&gt;
== Converting the ACB to XML ==&lt;br /&gt;
Converting the &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; is as easy as drag and dropping it on the &amp;lt;code&amp;gt;cri_utf_tool&amp;lt;/code&amp;gt; executable, if conversion was successful it&#039;ll create an XML file in the same directory as the &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt;.[[File:Bgm cyber acb in xml form.png|center|638x638px|XML opened in a text editor|alt=XML opened in a text editor|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Creating an internal AWB file ==&lt;br /&gt;
Some &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt;s do not have an internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file, which is required to store audio we want to use. This is the case with &amp;lt;code&amp;gt;bgm_cyber&amp;lt;/code&amp;gt;, it lacks one and we need to create it. The XML structure of &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file is the same as one from &amp;lt;code&amp;gt;cri_awb_tool&amp;lt;/code&amp;gt;. However, I will include a minimal example for Sonic Frontiers below to keep things straightforward.&lt;br /&gt;
{{Notice|type=warn|content=Keep in mind that parameters need to match the external AWB&#039;s, otherwise the game will crash!}}&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;AWB version=&amp;quot;2&amp;quot; offset_size=&amp;quot;4&amp;quot; id_size=&amp;quot;2&amp;quot; alignment=&amp;quot;32&amp;quot; subkey=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;entry id=&amp;quot;0&amp;quot; path=&amp;quot;audio.hca&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/AWB&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Inserting the internal AWB structure ===&lt;br /&gt;
Search for &amp;lt;code&amp;gt;&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AwbFile&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt; and you should find this:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;5456&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AutoModulationTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;StreamAwbTocWorkOld&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AwbFile&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;amp;#10;ACB Format/PC Ver.1.37.0 Build:&amp;amp;#10;&amp;quot; name=&amp;quot;VersionString&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;CueLimitWorkTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;We need to replace the &amp;lt;code&amp;gt;AwbFile&amp;lt;/code&amp;gt; record with our own &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; structure. &lt;br /&gt;
&lt;br /&gt;
After changes you should get something like this:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;5456&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;AutoModulationTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;StreamAwbTocWorkOld&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;AWB version=&amp;quot;2&amp;quot; offset_size=&amp;quot;4&amp;quot; id_size=&amp;quot;2&amp;quot; alignment=&amp;quot;32&amp;quot; subkey=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;entry id=&amp;quot;0&amp;quot; path=&amp;quot;my_audio.hca&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;entry id=&amp;quot;1&amp;quot; path=&amp;quot;my_audio_boost.hca&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/AWB&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;amp;#10;ACB Format/PC Ver.1.37.0 Build:&amp;amp;#10;&amp;quot; name=&amp;quot;VersionString&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;record value=&amp;quot;&amp;quot; name=&amp;quot;CueLimitWorkTable&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ID starts at 0 and goes up. Paths are relative to XML&#039;s location.&lt;br /&gt;
&lt;br /&gt;
== Modifying Waveform data ==&lt;br /&gt;
Next, we need to change data in the &amp;lt;code&amp;gt;Waveform&amp;lt;/code&amp;gt; table for each track we want to replace, we have to change the &amp;lt;code&amp;gt;MemoryAwbId&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Streaming&amp;lt;/code&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
=== Explanation of parameters ===&lt;br /&gt;
&amp;lt;code&amp;gt;MemoryAwbId&amp;lt;/code&amp;gt; is the index in the internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file. In our case, index &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; is the main track and index &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; is the boost version. Streaming is more interesting, it has three available options:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Streaming values&lt;br /&gt;
!Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Audio is streamed from internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file, which resides in RAM&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Audio is streamed from external &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Short snippet of audio in internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file to initialize the decoder, rest of the audio is streamed from external &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; file&lt;br /&gt;
|}&lt;br /&gt;
What we&#039;re looking for is the value of &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - streaming from internal &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Getting AWB IDs we want to replace ===&lt;br /&gt;
Cyber Space 1-1 stage name is &amp;lt;code&amp;gt;w6d01&amp;lt;/code&amp;gt;. Opening &amp;lt;code&amp;gt;bgm_cyber.awb&amp;lt;/code&amp;gt; in foobar2000 reveals that first two tracks are what we&#039;re looking for. However, foobar2000 lists all item indexes starting from &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, so we need to subtract &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; from the desired index.&lt;br /&gt;
[[File:Bgm cyber awb in foobar.png|center|thumb|642x642px|&amp;lt;code&amp;gt;bgm_cyber.awb&amp;lt;/code&amp;gt; playing in foobar2000, with Cyber Space 1-1 audio tracks selected.]]&lt;br /&gt;
So our IDs are &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; for main track and &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for boost. With that we can finally proceed.&lt;br /&gt;
&lt;br /&gt;
=== Modifying the parameters ===&lt;br /&gt;
Quick and easy way of finding a correct Waveform is searching for a string &amp;lt;code&amp;gt;&amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbId&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is the external &amp;lt;code&amp;gt;AWB&amp;lt;/code&amp;gt; track ID.&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;812&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;row&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;65535&amp;quot; name=&amp;quot;MemoryAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;EncodeType&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;1&amp;quot; name=&amp;quot;Streaming&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;NumChannels&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;LoopFlag&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;48000&amp;quot; name=&amp;quot;SamplingRate&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;4999086&amp;quot; name=&amp;quot;NumSamples&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;8&amp;quot; name=&amp;quot;ExtensionData&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbPortNo&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;65535&amp;quot; name=&amp;quot;LipMorthIndex&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Waveform data for track &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. After modifications (that is, changing &amp;lt;code&amp;gt;MemoryAwbId&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Streaming&amp;lt;/code&amp;gt; value) we get the following:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;812&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;row&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;MemoryAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;EncodeType&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;Streaming&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;NumChannels&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;2&amp;quot; name=&amp;quot;LoopFlag&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;48000&amp;quot; name=&amp;quot;SamplingRate&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;4999086&amp;quot; name=&amp;quot;NumSamples&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;8&amp;quot; name=&amp;quot;ExtensionData&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbPortNo&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;0&amp;quot; name=&amp;quot;StreamAwbId&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;record value=&amp;quot;65535&amp;quot; name=&amp;quot;LipMorthIndex&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After repeating the process for the boost track, we can now finally convert back to &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; and check results ingame.&lt;br /&gt;
&lt;br /&gt;
== Converting the XML to ACB ==&lt;br /&gt;
Same as before, drag and drop the XML on the &amp;lt;code&amp;gt;cri_utf_tool&amp;lt;/code&amp;gt;. It should output a big &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; file that&#039;s ready to be copied into a mod. The &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; we created should be playable in foobar2000 and will only show the audio files we injected into it.[[File:ACB with injected audio.png|center|thumb|660x660px|Resulting &amp;lt;code&amp;gt;ACB&amp;lt;/code&amp;gt; playing in foobar2000]]&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
[[File:ACB Injection Result.webm|center|thumb|Result of ACB Injection|0x0px]]&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Meta_Instancer&amp;diff=930</id>
		<title>Meta Instancer</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Meta_Instancer&amp;diff=930"/>
		<updated>2025-08-16T16:22:22Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=warn|content=This Addon is not yet finished, as there are some issues with exporting rotations and the import function has not yet been implemented.}}&lt;br /&gt;
{{ToolInfobox|title=Meta Instancer|author=Hedgeturd|website=https://github.com/Hedgeturd/MetaInstancer-Blender/|image=|download=https://github.com/Hedgeturd/MetaInstancer-Blender/releases/latest}}&lt;br /&gt;
&#039;&#039;&#039;Meta Instancer&#039;&#039;&#039; is a Blender addon to modify meta-instancer files (.mti) from &#039;&#039;&#039;Hedgehog Engine 1&#039;&#039;&#039;, which are primarily used for grass in levels.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Scene Setup ===&lt;br /&gt;
Make a surface which has a Particle System set on it, use the settings from this image.&lt;br /&gt;
[[File:MetaInstancersettings1.png|thumb|Scene Setup|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have more randomized patches of grass, use these settings below.&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;360&amp;quot; heights=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Metainstancersetting-2.png|Take note here that &amp;quot;Hair Length&amp;quot; is 4 metres, only use this value for previewing!&lt;br /&gt;
File:Metainstancersettings3.png|alt=&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Painting ===&lt;br /&gt;
&lt;br /&gt;
If you want more control over the placement you can add weight paints to the Particle Settings, use the settings below; &amp;quot;Group&amp;quot; being the vertex group that will be used to paint the grass onto the surface. After you set this up, you can now begin painting.&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;360&amp;quot; heights=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
File:Metainstancersettings4.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you&#039;re ready to export, make sure to go back to your Particle Emission Settings and reduce the Hair Length to 0, then go to &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Meta Instancer (.mti)&#039;&#039;&#039; and finally name and export your MTI file.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Meta_Instancer&amp;diff=929</id>
		<title>Meta Instancer</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Meta_Instancer&amp;diff=929"/>
		<updated>2025-08-16T16:19:58Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=Meta Instancer|author=Hedgeturd|website=https://github.com/Hedgeturd/MetaInstancer-Blender/|image=|download=https://github.com/Hedgeturd/MetaInstancer-Blender/releases/latest}}&lt;br /&gt;
&#039;&#039;&#039;Meta Instancer&#039;&#039;&#039; is a Blender addon to modify meta-instancer files (.mti) from &#039;&#039;&#039;Hedgehog Engine 1&#039;&#039;&#039;, which are primarily used for grass in levels.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Scene Setup ===&lt;br /&gt;
Make a surface which has a Particle System set on it, use the settings from this image.&lt;br /&gt;
[[File:MetaInstancersettings1.png|thumb|Scene Setup|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have more randomized patches of grass, use these settings below.&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;360&amp;quot; heights=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Metainstancersetting-2.png|Take note here that &amp;quot;Hair Length&amp;quot; is 4 metres, only use this value for previewing!&lt;br /&gt;
File:Metainstancersettings3.png|alt=&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Painting ===&lt;br /&gt;
&lt;br /&gt;
If you want more control over the placement you can add weight paints to the Particle Settings, use the settings below; &amp;quot;Group&amp;quot; being the vertex group that will be used to paint the grass onto the surface. After you set this up, you can now begin painting.&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;360&amp;quot; heights=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
File:Metainstancersettings4.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you&#039;re ready to export, make sure to go back to your Particle Emission Settings and reduce the Hair Length to 0, then go to &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Meta Instancer (.mti)&#039;&#039;&#039; and finally name and export your MTI file.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Meta_Instancer&amp;diff=928</id>
		<title>Meta Instancer</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Meta_Instancer&amp;diff=928"/>
		<updated>2025-08-16T16:18:56Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Created page with &amp;quot;{{ToolInfobox|title=Meta Instancer|author=Hedgeturd|website=https://github.com/Hedgeturd/MetaInstancer-Blender/|image=|download=https://github.com/Hedgeturd/MetaInstancer-Blender/releases/latest}} &amp;#039;&amp;#039;&amp;#039;Meta Instancer&amp;#039;&amp;#039;&amp;#039; is a Blender addon to modify meta-instancer files (.mti) from &amp;#039;&amp;#039;&amp;#039;Hedgehog Engine 1&amp;#039;&amp;#039;&amp;#039;, which are used primarily for grass in levels.  == Usage ==  === Scene Setup === Make a surface which has a Particle System set on it, use the settings from this image. ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=Meta Instancer|author=Hedgeturd|website=https://github.com/Hedgeturd/MetaInstancer-Blender/|image=|download=https://github.com/Hedgeturd/MetaInstancer-Blender/releases/latest}}&lt;br /&gt;
&#039;&#039;&#039;Meta Instancer&#039;&#039;&#039; is a Blender addon to modify meta-instancer files (.mti) from &#039;&#039;&#039;Hedgehog Engine 1&#039;&#039;&#039;, which are used primarily for grass in levels.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Scene Setup ===&lt;br /&gt;
Make a surface which has a Particle System set on it, use the settings from this image.&lt;br /&gt;
[[File:MetaInstancersettings1.png|thumb|Scene Setup|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have more randomized patches of grass, use these settings below.&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;360&amp;quot; heights=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Metainstancersetting-2.png|Take note here that &amp;quot;Hair Length&amp;quot; is 4 metres, only use this value for previewing!&lt;br /&gt;
File:Metainstancersettings3.png|alt=&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Painting ===&lt;br /&gt;
&lt;br /&gt;
If you want more control over the placement you can add weight paints to the Particle Settings, use the settings below; &amp;quot;Group&amp;quot; being the vertex group that will be used to paint the grass onto the surface. After you set this up, you can now begin painting.&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;360&amp;quot; heights=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
File:Metainstancersettings4.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you&#039;re ready to export, make sure to go back to your Particle Emission Settings and reduce the Hair Length to 0, then go to &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Meta Instancer (.mti)&#039;&#039;&#039; and finally name and export your MTI file.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=File:Metainstancersettings4.png&amp;diff=927</id>
		<title>File:Metainstancersettings4.png</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=File:Metainstancersettings4.png&amp;diff=927"/>
		<updated>2025-08-16T16:17:00Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Painting settings for metainstancer&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=File:Metainstancersettings3.png&amp;diff=926</id>
		<title>File:Metainstancersettings3.png</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=File:Metainstancersettings3.png&amp;diff=926"/>
		<updated>2025-08-16T16:12:07Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Randomness settings for Metainstancer 2&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=File:Metainstancersetting-2.png&amp;diff=925</id>
		<title>File:Metainstancersetting-2.png</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=File:Metainstancersetting-2.png&amp;diff=925"/>
		<updated>2025-08-16T16:10:44Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Randomness for Metainstancer&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=File:MetaInstancersettings1.png&amp;diff=924</id>
		<title>File:MetaInstancersettings1.png</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=File:MetaInstancersettings1.png&amp;diff=924"/>
		<updated>2025-08-16T16:06:21Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scene setup for Meta-instancer&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Tools&amp;diff=923</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Tools&amp;diff=923"/>
		<updated>2025-08-16T15:56:07Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Add Meta instancer tool page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains tools that aren&#039;t specific to any Sonic game. Below you can see the tools divided by the engine they target and their purpose.&lt;br /&gt;
&lt;br /&gt;
== Various Engines ==&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicAudioTools]] (.csb / .acb)&lt;br /&gt;
&lt;br /&gt;
== Hedgehog Engine ==&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
* [[Frontiers Animation Tools]] (.skl.pxd / .anm.pxd)&lt;br /&gt;
* [[KwasTools (Hedgehog Engine)|io_kwastools]] (.cam-anim / .uv-anim)&lt;br /&gt;
* [[Havok Animation Exporter]] (.skl.hkx / .anm.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Archives ===&lt;br /&gt;
&lt;br /&gt;
* [[PackCpk]] (.cpk)&lt;br /&gt;
* [[YACpkTool]] (.cpk)&lt;br /&gt;
&lt;br /&gt;
* [[HedgeArchiveEditor]] (.ar / .pfd / .pac)&lt;br /&gt;
* [[HedgeArcPack]] (.ar / .pfd / .pac)&lt;br /&gt;
* [[ar0pack-ar0unpack]] (.ar / .pfd)&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
* [[Havok Converter]] (.phy.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicGLvl]]&lt;br /&gt;
* [[Meta Instancer]] (.mti)&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[GI Atlas Converter]]&lt;br /&gt;
* [[HedgeGI]]&lt;br /&gt;
* [[SonicLightTools]]&lt;br /&gt;
&lt;br /&gt;
=== Shaders ===&lt;br /&gt;
&lt;br /&gt;
* [[HE2 Shader Compiler]] (.vso / .pso / .cso / .hlsl)&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
* [[Hedgehog Engine Blender I/O]]&lt;br /&gt;
* [[Model Converter]] (.model)&lt;br /&gt;
* [[modelfbx]] (.model / .terrain-model / .skl.hkx / .anm.hkx)&lt;br /&gt;
* [[terrain2fbx]] (.terrain-model)&lt;br /&gt;
* [[terrain2fbx-png]] (.terrain-model)&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
&lt;br /&gt;
* [[Hedgehog Converter]]&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
* [[NeedleTextureStreamingUtility]] (.ntsp / .dds)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
* [[Converse]] (.fco / .fte)&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
* [[Shuriken]] (.xncp / .yncp)&lt;br /&gt;
* [[Kunai]] (.xncp / .yncp / .gncp / .sncp)&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=922</id>
		<title>Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=922"/>
		<updated>2025-08-16T15:51:32Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[pfdpackUnleashed]] (*.pfd)&lt;br /&gt;
&lt;br /&gt;
=== Particles ===&lt;br /&gt;
&lt;br /&gt;
* [[SU Particle Tool]] (*.part-bin, *.p-mat-bin, *.particle, *.p-material)&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[How To Use Sonic GLvl with Sonic Unleashed|SonicGLvl]]&lt;br /&gt;
* [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|Importing Terrain]]&lt;br /&gt;
* [[How To Import Custom Collision in Sonic Generations/Sonic Unleashed|Importing Collision]]&lt;br /&gt;
* [[Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
=== Game ===&lt;br /&gt;
* [[Sonic Unleashed Stage IDs|Stage IDs]]&lt;br /&gt;
* [[Sonic Unleashed Event IDs|Event IDs]]&lt;br /&gt;
* [[Unleashed-Generations Havok Collision Attributes|Havok Collision Attributes]]&lt;br /&gt;
* [[Sonic Unleashed Shaders|Shaders]]&lt;br /&gt;
&lt;br /&gt;
== Discoveries ==&lt;br /&gt;
&lt;br /&gt;
=== PlayStation 3 ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Unleashed Install Screen|Install Screen]]&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=SU_Particle_Tool&amp;diff=921</id>
		<title>SU Particle Tool</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=SU_Particle_Tool&amp;diff=921"/>
		<updated>2025-08-16T15:50:44Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=SU Particle Tool|author=Hedgeturd, NextinHKRY|website=https://github.com/Hedgeturd/SU-Particle-Tool|download=https://github.com/Hedgeturd/SU-Particle-Tool/releases/latest}}&lt;br /&gt;
&#039;&#039;&#039;SU Particle Tool&#039;&#039;&#039; is a command-line tool used to convert binary particle files from &#039;&#039;&#039;Sonic Unleashed&#039;&#039;&#039; (&amp;lt;code&amp;gt;.part-bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.p-mat-bin&amp;lt;/code&amp;gt;) into editable text files (&amp;lt;code&amp;gt;.particle&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.p-material&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&#039;&#039;&#039;SU Particle Tool&#039;&#039;&#039; can convert from binary files to text files and vice-versa by dragging and dropping the corresponding files onto the tool, or by passing the path to the file in a command prompt. Converting text files back to binary files is not necessary, as the game recognizes both formats and will load them.&lt;br /&gt;
{{Notice|type=note|content=Using append archives (+Archive) with .particle and .p-material files is not recommended, as the game will sometimes load the binary variants instead based on when the append archive was loaded.}}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=SU_Particle_Tool&amp;diff=920</id>
		<title>SU Particle Tool</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=SU_Particle_Tool&amp;diff=920"/>
		<updated>2025-08-16T15:50:13Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Create SU-Particle-Tool page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=SU Particle Tool|author=Hedgeturd, NextinHKRY|website=https://github.com/Hedgeturd/SU-Particle-Tool|download=https://github.com/Hedgeturd/SU-Particle-Tool/releases/latest}}&lt;br /&gt;
&#039;&#039;&#039;SU Particle Tool&#039;&#039;&#039; is a command-line tool used to convert binary particle files from &#039;&#039;&#039;Sonic Unleashed&#039;&#039;&#039; (&amp;lt;code&amp;gt;.part-bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.p-mat-bin&amp;lt;/code&amp;gt;) into editable text files (&amp;lt;code&amp;gt;.particle&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.p-material&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&#039;&#039;&#039;SU Particle Tool&#039;&#039;&#039; can convert from binary files to text files and vice-versa by dragging and dropping the corresponding files onto the tool, or by passing the path to the file in a command prompt. Converting text-based files back to binary files is not necessary, as the game recognizes both formats and will load them.&lt;br /&gt;
{{Notice|type=note|content=Using append archives (+Archive) with .particle and .p-material files is not recommended, as the game will sometimes load the binary variants instead based on when the append archive was loaded.}}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=919</id>
		<title>Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=919"/>
		<updated>2025-08-16T15:37:13Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Add SU particle tool&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[pfdpackUnleashed]] (*.pfd)&lt;br /&gt;
&lt;br /&gt;
=== Particles ===&lt;br /&gt;
&lt;br /&gt;
* [[SU Particle Tool]]&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[How To Use Sonic GLvl with Sonic Unleashed|SonicGLvl]]&lt;br /&gt;
* [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|Importing Terrain]]&lt;br /&gt;
* [[How To Import Custom Collision in Sonic Generations/Sonic Unleashed|Importing Collision]]&lt;br /&gt;
* [[Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
=== Game ===&lt;br /&gt;
* [[Sonic Unleashed Stage IDs|Stage IDs]]&lt;br /&gt;
* [[Sonic Unleashed Event IDs|Event IDs]]&lt;br /&gt;
* [[Unleashed-Generations Havok Collision Attributes|Havok Collision Attributes]]&lt;br /&gt;
* [[Sonic Unleashed Shaders|Shaders]]&lt;br /&gt;
&lt;br /&gt;
== Discoveries ==&lt;br /&gt;
&lt;br /&gt;
=== PlayStation 3 ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Unleashed Install Screen|Install Screen]]&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=591</id>
		<title>Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=591"/>
		<updated>2025-05-03T10:40:17Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page covers possible troubleshooting steps for custom levels in &#039;&#039;&#039;Sonic Generations&#039;&#039;&#039; and &#039;&#039;&#039;Sonic Unleashed.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Visual Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Black Textures ====&lt;br /&gt;
Textures must have power-of-two resolutions &#039;&#039;(e.g. 512x512, 1024x1024, 2048x2048, etc)&#039;&#039;. Arbitrary resolutions like 507x631 are not supported when using compressed textures. &lt;br /&gt;
&lt;br /&gt;
==== Randomly Switching Textures ====&lt;br /&gt;
The material doesn&#039;t have any textures assigned. The game expects at least a diffuse texture to be present for nearly every shader.&lt;br /&gt;
&lt;br /&gt;
==== Missing Transparency On Textures ====&lt;br /&gt;
You might need &amp;lt;code&amp;gt;@LYR(trans)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;@LYR(punch)&amp;lt;/code&amp;gt; tags on your material names. See the [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|terrain importing guide]] for more info. Your texture might be compressed using &amp;lt;code&amp;gt;BC1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT1&amp;lt;/code&amp;gt;, which doesn&#039;t support alpha channels, you should use &amp;lt;code&amp;gt;BC3&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT5&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
==== Missing Direct Light ====&lt;br /&gt;
&lt;br /&gt;
If you add a new direct light, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the light:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Light&amp;gt;&lt;br /&gt;
  &amp;lt;DataName&amp;gt;MyDirectLight&amp;lt;/DataName&amp;gt;&lt;br /&gt;
&amp;lt;/Light&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Missing Sky Model ====&lt;br /&gt;
&lt;br /&gt;
If you made a new sky model, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the sky model:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
  &amp;lt;Model&amp;gt;MySkyModel&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;/Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Make sure the sky model&#039;s materials use sky shaders like &amp;lt;code&amp;gt;Sky_d&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Enemies From Other Stages Not Appearing ====&lt;br /&gt;
&lt;br /&gt;
Some enemies are only loaded in specific stages. You can fix that by editing &amp;lt;code&amp;gt;EnemyArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;ghz_cmn&amp;lt;/code&amp;gt; entry was modified to include data from &amp;lt;code&amp;gt;EnemyEFighter&amp;lt;/code&amp;gt;, allowing egg fighters to be used in both &amp;lt;code&amp;gt;ghz100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;ghz_cmn&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyCommon&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBeeton&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBatabata&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyGanigani&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyMotora&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyEFighter&amp;lt;/Archive&amp;gt;&lt;br /&gt;
&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The same method applies to Sonic Unleashed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values like &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;bytes&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;bytes&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999999&#039;&#039;&#039; are not going to work correctly. If editing the memory sizes does not work, you can try changing &amp;lt;code&amp;gt;g_EnableFrustumCulling&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_EnableOcclusionCulling&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; as a last resort. Note that disabling these two options might cause a performance hit in-game! &lt;br /&gt;
&lt;br /&gt;
==== File Replacements Not Working ====&lt;br /&gt;
The title update and DLC override files in the base game archives by including them in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder. These files are going to always take priority over your modded files. This is a common problem with &amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;.set.xml&amp;lt;/code&amp;gt; files. To override them, include the modified files in your mod in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder using the same file structure.&lt;br /&gt;
&lt;br /&gt;
==== Invisible Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader.ar&amp;lt;/code&amp;gt; in the base game directory and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;bytes&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;bytes&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly. When DLC is enabled, the game looks inside the &amp;lt;code&amp;gt;Additional&amp;lt;/code&amp;gt; folder to load HD GI, the parameter for it is named &amp;lt;code&amp;gt;g_Xbox360LimitSizeWithAdditional&amp;lt;/code&amp;gt;, which you also should try to increase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Rainbow Flashing Textures ====&lt;br /&gt;
A rainbow flashing texture is displayed when a texture assigned to a material is missing. Ensure you included the texture in the archive and didn&#039;t make a typo in the material. Texture names are &#039;&#039;&#039;case-sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_TerrainModelLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_TerrainModelLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.  &lt;br /&gt;
&lt;br /&gt;
==== Red Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader_r_add.ar.00&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;bb3.cpk&amp;lt;/code&amp;gt; and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_GITextureLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_GITextureLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.&lt;br /&gt;
&lt;br /&gt;
== Crashes or Infinite Loading ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Material Files ====&lt;br /&gt;
Unlike newer games, missing materials can crash Generations/Unleashed. For Sonic Unleashed, only having the &amp;lt;code&amp;gt;.material&amp;lt;/code&amp;gt; file isn&#039;t enough, you also need the matching &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Periods in File Names ====&lt;br /&gt;
File names with extra periods break stuff. For example, &amp;lt;code&amp;gt;Material.000.material&amp;lt;/code&amp;gt; gets read as &amp;lt;code&amp;gt;.000.material&amp;lt;/code&amp;gt;, and the game won&#039;t recognize it properly.&lt;br /&gt;
&lt;br /&gt;
==== Instance Names Starting with &amp;quot;ins&amp;quot; ====&lt;br /&gt;
Instances starting with &amp;lt;code&amp;gt;ins&amp;lt;/code&amp;gt; are treated differently, and require specialized material shaders. Using any other shader causes a crash. Ensure that none of the instances in your stage start with this word.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;gi-texture.gi-texture-group-info&amp;quot; File ====&lt;br /&gt;
Run [[GI Atlas Converter]] on Pre-Render mode to have this file created automatically.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;light-list.light-list&amp;quot; File ====&lt;br /&gt;
Copy paste &amp;lt;code&amp;gt;.light&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.light-list&amp;lt;/code&amp;gt; files from another stage, or add a direct light to your level in the 3D software you use. Latest [[Hedgehog Converter]] can import direct lights, so ensure your tools are up to date. Use [[HedgeGI]] for advanced light editing.&lt;br /&gt;
&lt;br /&gt;
==== Mismatching PFD/PFI Files ====&lt;br /&gt;
PFD files are loaded through PFI files. If the &amp;lt;code&amp;gt;Stage.pfi&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfi&amp;lt;/code&amp;gt; files don&#039;t match with the &amp;lt;code&amp;gt;Stage.pfd&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfd&amp;lt;/code&amp;gt; files in the stage, this causes a crash. Unpack the PFD files, and repack them back with [[HedgeArcPack]] using &amp;lt;code&amp;gt;-T=pfd&amp;lt;/code&amp;gt; command-line option to generate matching PFI files.&lt;br /&gt;
&lt;br /&gt;
==== Light Field File Too Large ====&lt;br /&gt;
Your game might crash randomly when booting your level if the level&#039;s light field (.lft) file is too large. Try increasing the minimum cell radius in HedgeGI to reduce the light field&#039;s file size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Incorrect Material Format ====&lt;br /&gt;
Unleashed uses a different material version (V1) compared to Generations (V3), and if you try to load a material from Generations in Unleashed, it&#039;ll crash. Check the version in a hex editor (7th byte), or look for &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt;, those usually mean it&#039;s V1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Unloaded Sonic Animations ====&lt;br /&gt;
&lt;br /&gt;
The game doesn&#039;t load certain Sonic animations to save memory if the gimmick in question is never used. For example, diving animations stored in &amp;lt;code&amp;gt;SonicDiving.ar.00&amp;lt;/code&amp;gt; are only loaded in Chemical Plant, Speed Highway and Planet Wisp. If diving is used in any other stage, the game is going to crash due to unloaded animations. This behavior can be configured by editing &amp;lt;code&amp;gt;ArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;SonicDiving&amp;lt;/code&amp;gt; entry was edited to load in the &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt; stage slot:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Node&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;SonicDiving&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;SonicDiving&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;DefAppend&amp;gt;SonicDiving&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;bne&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;bne&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;cpz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;cpz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;pla200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;pla200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;sph200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;sph200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;ghz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;ghz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;  &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=590</id>
		<title>Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=590"/>
		<updated>2025-05-02T20:30:59Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page covers possible troubleshooting steps for custom levels in &#039;&#039;&#039;Sonic Generations&#039;&#039;&#039; and &#039;&#039;&#039;Sonic Unleashed.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Visual Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Black Textures ====&lt;br /&gt;
Textures must have power-of-two resolutions &#039;&#039;(e.g. 512x512, 1024x1024, 2048x2048, etc)&#039;&#039;. Arbitrary resolutions like 507x631 are not supported when using compressed textures. &lt;br /&gt;
&lt;br /&gt;
==== Randomly Switching Textures ====&lt;br /&gt;
The material doesn&#039;t have any textures assigned. The game expects at least a diffuse texture to be present for nearly every shader.&lt;br /&gt;
&lt;br /&gt;
==== Missing Transparency On Textures ====&lt;br /&gt;
You might need &amp;lt;code&amp;gt;@LYR(trans)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;@LYR(punch)&amp;lt;/code&amp;gt; tags on your material names. See the [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|terrain importing guide]] for more info. Your texture might be compressed using &amp;lt;code&amp;gt;BC1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT1&amp;lt;/code&amp;gt;, which doesn&#039;t support alpha channels, you should use &amp;lt;code&amp;gt;BC3&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT5&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
==== Missing Direct Light ====&lt;br /&gt;
&lt;br /&gt;
If you add a new direct light, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the light:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Light&amp;gt;&lt;br /&gt;
  &amp;lt;DataName&amp;gt;MyDirectLight&amp;lt;/DataName&amp;gt;&lt;br /&gt;
&amp;lt;/Light&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Missing Sky Model ====&lt;br /&gt;
&lt;br /&gt;
If you made a new sky model, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the sky model:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
  &amp;lt;Model&amp;gt;MySkyModel&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;/Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Make sure the sky model&#039;s materials use sky shaders like &amp;lt;code&amp;gt;Sky_d&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Enemies From Other Stages Not Appearing ====&lt;br /&gt;
&lt;br /&gt;
Some enemies are only loaded in specific stages. You can fix that by editing &amp;lt;code&amp;gt;EnemyArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;ghz_cmn&amp;lt;/code&amp;gt; entry was modified to include data from &amp;lt;code&amp;gt;EnemyEFighter&amp;lt;/code&amp;gt;, allowing egg fighters to be used in both &amp;lt;code&amp;gt;ghz100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;ghz_cmn&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyCommon&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBeeton&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBatabata&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyGanigani&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyMotora&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyEFighter&amp;lt;/Archive&amp;gt;&lt;br /&gt;
&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The same method applies to Sonic Unleashed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values like &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999999&#039;&#039;&#039; are not going to work correctly. If editing the memory sizes does not work, you can try changing &amp;lt;code&amp;gt;g_EnableFrustumCulling&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_EnableOcclusionCulling&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; as a last resort. Note that disabling these two options might cause a performance hit in-game! &lt;br /&gt;
&lt;br /&gt;
==== File Replacements Not Working ====&lt;br /&gt;
The title update and DLC override files in the base game archives by including them in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder. These files are going to always take priority over your modded files. This is a common problem with &amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;.set.xml&amp;lt;/code&amp;gt; files. To override them, include the modified files in your mod in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder using the same file structure.&lt;br /&gt;
&lt;br /&gt;
==== Invisible Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader.ar&amp;lt;/code&amp;gt; in the base game directory and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly. When DLC is enabled, the game looks inside the &amp;lt;code&amp;gt;Additional&amp;lt;/code&amp;gt; folder to load HD GI, the parameter for it is named &amp;lt;code&amp;gt;g_Xbox360LimitSizeWithAdditional&amp;lt;/code&amp;gt;, which you also should try to increase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Rainbow Flashing Textures ====&lt;br /&gt;
A rainbow flashing texture is displayed when a texture assigned to a material is missing. Ensure you included the texture in the archive and didn&#039;t make a typo in the material. Texture names are &#039;&#039;&#039;case-sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_TerrainModelLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_TerrainModelLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.  &lt;br /&gt;
&lt;br /&gt;
==== Red Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader_r_add.ar.00&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;bb3.cpk&amp;lt;/code&amp;gt; and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_GITextureLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_GITextureLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.&lt;br /&gt;
&lt;br /&gt;
== Crashes or Infinite Loading ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Material Files ====&lt;br /&gt;
Unlike newer games, missing materials can crash Generations/Unleashed. For Sonic Unleashed, only having the &amp;lt;code&amp;gt;.material&amp;lt;/code&amp;gt; file isn&#039;t enough, you also need the matching &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Periods in File Names ====&lt;br /&gt;
File names with extra periods break stuff. For example, &amp;lt;code&amp;gt;Material.000.material&amp;lt;/code&amp;gt; gets read as &amp;lt;code&amp;gt;.000.material&amp;lt;/code&amp;gt;, and the game won&#039;t recognize it properly.&lt;br /&gt;
&lt;br /&gt;
==== Instance Names Starting with &amp;quot;ins&amp;quot; ====&lt;br /&gt;
Instances starting with &amp;lt;code&amp;gt;ins&amp;lt;/code&amp;gt; are treated differently, and require specialized material shaders. Using any other shader causes a crash. Ensure that none of the instances in your stage start with this word.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;gi-texture.gi-texture-group-info&amp;quot; File ====&lt;br /&gt;
Run [[GI Atlas Converter]] on Pre-Render mode to have this file created automatically.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;light-list.light-list&amp;quot; File ====&lt;br /&gt;
Copy paste &amp;lt;code&amp;gt;.light&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.light-list&amp;lt;/code&amp;gt; files from another stage, or add a direct light to your level in the 3D software you use. Latest [[Hedgehog Converter]] can import direct lights, so ensure your tools are up to date. Use [[HedgeGI]] for advanced light editing.&lt;br /&gt;
&lt;br /&gt;
==== Mismatching PFD/PFI Files ====&lt;br /&gt;
PFD files are loaded through PFI files. If the &amp;lt;code&amp;gt;Stage.pfi&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfi&amp;lt;/code&amp;gt; files don&#039;t match with the &amp;lt;code&amp;gt;Stage.pfd&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfd&amp;lt;/code&amp;gt; files in the stage, this causes a crash. Unpack the PFD files, and repack them back with [[HedgeArcPack]] using &amp;lt;code&amp;gt;-T=pfd&amp;lt;/code&amp;gt; command-line option to generate matching PFI files.&lt;br /&gt;
&lt;br /&gt;
==== Light Field File Too Large ====&lt;br /&gt;
Your game might crash randomly when booting your level if the level&#039;s light field (.lft) file is too large. Try increasing the minimum cell radius in HedgeGI to reduce the light field&#039;s file size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Incorrect Material Format ====&lt;br /&gt;
Unleashed uses a different material version (V1) compared to Generations (V3), and if you try to load a material from Generations in Unleashed, it&#039;ll crash. Check the version in a hex editor (7th byte), or look for &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt;, those usually mean it&#039;s V1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Unloaded Sonic Animations ====&lt;br /&gt;
&lt;br /&gt;
The game doesn&#039;t load certain Sonic animations to save memory if the gimmick in question is never used. For example, diving animations stored in &amp;lt;code&amp;gt;SonicDiving.ar.00&amp;lt;/code&amp;gt; are only loaded in Chemical Plant, Speed Highway and Planet Wisp. If diving is used in any other stage, the game is going to crash due to unloaded animations. This behavior can be configured by editing &amp;lt;code&amp;gt;ArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;SonicDiving&amp;lt;/code&amp;gt; entry was edited to load in the &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt; stage slot:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Node&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;SonicDiving&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;SonicDiving&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;DefAppend&amp;gt;SonicDiving&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;bne&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;bne&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;cpz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;cpz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;pla200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;pla200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;sph200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;sph200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;ghz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;ghz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;  &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=589</id>
		<title>Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=589"/>
		<updated>2025-05-02T20:27:28Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page covers possible troubleshooting steps for custom levels in &#039;&#039;&#039;Sonic Generations&#039;&#039;&#039; and &#039;&#039;&#039;Sonic Unleashed.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Visual Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Black Textures ====&lt;br /&gt;
Textures must have power-of-two resolutions (like 512x512, 1024x1024, 2048x2048, etc). Arbitrary resolutions like 507x631 are not supported when using compressed textures. &lt;br /&gt;
&lt;br /&gt;
==== Randomly Switching Textures ====&lt;br /&gt;
The material doesn&#039;t have any textures assigned. The game expects at least a diffuse texture to be present for nearly every shader.&lt;br /&gt;
&lt;br /&gt;
==== Missing Transparency On Textures ====&lt;br /&gt;
You might need &amp;lt;code&amp;gt;@LYR(trans)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;@LYR(punch)&amp;lt;/code&amp;gt; tags on your material names. See the [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|terrain importing guide]] for more info. Your texture might be compressed using &amp;lt;code&amp;gt;BC1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT1&amp;lt;/code&amp;gt;, which doesn&#039;t support alpha channels, you should use &amp;lt;code&amp;gt;BC3&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT5&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
==== Missing Direct Light ====&lt;br /&gt;
&lt;br /&gt;
If you add a new direct light, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the light:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Light&amp;gt;&lt;br /&gt;
  &amp;lt;DataName&amp;gt;MyDirectLight&amp;lt;/DataName&amp;gt;&lt;br /&gt;
&amp;lt;/Light&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Missing Sky Model ====&lt;br /&gt;
&lt;br /&gt;
If you made a new sky model, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the sky model:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
  &amp;lt;Model&amp;gt;MySkyModel&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;/Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Make sure the sky model&#039;s materials use sky shaders like &amp;lt;code&amp;gt;Sky_d&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Enemies From Other Stages Not Appearing ====&lt;br /&gt;
&lt;br /&gt;
Some enemies are only loaded in specific stages. You can fix that by editing &amp;lt;code&amp;gt;EnemyArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;ghz_cmn&amp;lt;/code&amp;gt; entry was modified to include data from &amp;lt;code&amp;gt;EnemyEFighter&amp;lt;/code&amp;gt;, allowing egg fighters to be used in both &amp;lt;code&amp;gt;ghz100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;ghz_cmn&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyCommon&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBeeton&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBatabata&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyGanigani&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyMotora&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyEFighter&amp;lt;/Archive&amp;gt;&lt;br /&gt;
&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The same method applies to Sonic Unleashed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values like &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999999&#039;&#039;&#039; are not going to work correctly. If editing the memory sizes does not work, you can try changing &amp;lt;code&amp;gt;g_EnableFrustumCulling&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_EnableOcclusionCulling&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; as a last resort. Note that disabling these two options might cause a performance hit in-game! &lt;br /&gt;
&lt;br /&gt;
==== File Replacements Not Working ====&lt;br /&gt;
The title update and DLC override files in the base game archives by including them in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder. These files are going to always take priority over your modded files. This is a common problem with &amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;.set.xml&amp;lt;/code&amp;gt; files. To override them, include the modified files in your mod in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder using the same file structure.&lt;br /&gt;
&lt;br /&gt;
==== Invisible Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader.ar&amp;lt;/code&amp;gt; in the base game directory and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly. When DLC is enabled, the game looks inside the &amp;lt;code&amp;gt;Additional&amp;lt;/code&amp;gt; folder to load HD GI, the parameter for it is named &amp;lt;code&amp;gt;g_Xbox360LimitSizeWithAdditional&amp;lt;/code&amp;gt;, which you also should try to increase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Rainbow Flashing Textures ====&lt;br /&gt;
A rainbow flashing texture is displayed when a texture assigned to a material is missing. Ensure you included the texture in the archive and didn&#039;t make a typo in the material. Texture names are &#039;&#039;&#039;case-sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_TerrainModelLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_TerrainModelLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.  &lt;br /&gt;
&lt;br /&gt;
==== Red Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader_r_add.ar.00&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;bb3.cpk&amp;lt;/code&amp;gt; and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_GITextureLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_GITextureLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.&lt;br /&gt;
&lt;br /&gt;
== Crashes or Infinite Loading ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Material Files ====&lt;br /&gt;
Unlike newer games, missing materials can crash Generations/Unleashed. For Sonic Unleashed, only having the &amp;lt;code&amp;gt;.material&amp;lt;/code&amp;gt; file isn&#039;t enough, you also need the matching &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Periods in File Names ====&lt;br /&gt;
File names with extra periods break stuff. For example, &amp;lt;code&amp;gt;Material.000.material&amp;lt;/code&amp;gt; gets read as &amp;lt;code&amp;gt;.000.material&amp;lt;/code&amp;gt;, and the game won&#039;t recognize it properly.&lt;br /&gt;
&lt;br /&gt;
==== Instance Names Starting with &amp;quot;ins&amp;quot; ====&lt;br /&gt;
Instances starting with &amp;lt;code&amp;gt;ins&amp;lt;/code&amp;gt; are treated differently, and require specialized material shaders. Using any other shader causes a crash. Ensure that none of the instances in your stage start with this word.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;gi-texture.gi-texture-group-info&amp;quot; File ====&lt;br /&gt;
Run [[GI Atlas Converter]] on Pre-Render mode to have this file created automatically.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;light-list.light-list&amp;quot; File ====&lt;br /&gt;
Copy paste &amp;lt;code&amp;gt;.light&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.light-list&amp;lt;/code&amp;gt; files from another stage, or add a direct light to your level in the 3D software you use. Latest [[Hedgehog Converter]] can import direct lights, so ensure your tools are up to date. Use [[HedgeGI]] for advanced light editing.&lt;br /&gt;
&lt;br /&gt;
==== Mismatching PFD/PFI Files ====&lt;br /&gt;
PFD files are loaded through PFI files. If the &amp;lt;code&amp;gt;Stage.pfi&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfi&amp;lt;/code&amp;gt; files don&#039;t match with the &amp;lt;code&amp;gt;Stage.pfd&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfd&amp;lt;/code&amp;gt; files in the stage, this causes a crash. Unpack the PFD files, and repack them back with [[HedgeArcPack]] using &amp;lt;code&amp;gt;-T=pfd&amp;lt;/code&amp;gt; command-line option to generate matching PFI files.&lt;br /&gt;
&lt;br /&gt;
==== Light Field File Too Large ====&lt;br /&gt;
Your game might crash randomly when booting your level if the level&#039;s light field (.lft) file is too large. Try increasing the minimum cell radius in HedgeGI to reduce the light field&#039;s file size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Incorrect Material Format ====&lt;br /&gt;
Unleashed uses a different material version (V1) compared to Generations (V3), and if you try to load a material from Generations in Unleashed, it&#039;ll crash. Check the version in a hex editor (7th byte), or look for &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt;, those usually mean it&#039;s V1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Unloaded Sonic Animations ====&lt;br /&gt;
&lt;br /&gt;
The game doesn&#039;t load certain Sonic animations to save memory if the gimmick in question is never used. For example, diving animations stored in &amp;lt;code&amp;gt;SonicDiving.ar.00&amp;lt;/code&amp;gt; are only loaded in Chemical Plant, Speed Highway and Planet Wisp. If diving is used in any other stage, the game is going to crash due to unloaded animations. This behavior can be configured by editing &amp;lt;code&amp;gt;ArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;SonicDiving&amp;lt;/code&amp;gt; entry was edited to load in the &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt; stage slot:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Node&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;SonicDiving&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;SonicDiving&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;DefAppend&amp;gt;SonicDiving&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;bne&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;bne&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;cpz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;cpz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;pla200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;pla200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;sph200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;sph200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;ghz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;ghz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;  &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=588</id>
		<title>Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=588"/>
		<updated>2025-05-02T18:53:56Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page covers possible troubleshooting steps for custom levels in &#039;&#039;&#039;Sonic Generations&#039;&#039;&#039; and &#039;&#039;&#039;Sonic Unleashed.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Visual Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Black Textures ====&lt;br /&gt;
Textures must have power-of-two resolutions (like 512x512, 1024x1024, 2048x2048, etc). Arbitrary resolutions like 507x631 are not supported when using compressed textures. &lt;br /&gt;
&lt;br /&gt;
==== Randomly Switching Textures ====&lt;br /&gt;
The material doesn&#039;t have any textures assigned. The game expects at least a diffuse texture to be present for nearly every shader.&lt;br /&gt;
&lt;br /&gt;
==== Missing Transparency On Textures ====&lt;br /&gt;
You might need &amp;lt;code&amp;gt;@LYR(trans)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;@LYR(punch)&amp;lt;/code&amp;gt; tags on your material names. See the [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|terrain importing guide]] for more info. Your texture might be compressed using &amp;lt;code&amp;gt;BC1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT1&amp;lt;/code&amp;gt;, which doesn&#039;t support alpha channels, you should use &amp;lt;code&amp;gt;BC3&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT5&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
==== Missing Direct Light ====&lt;br /&gt;
&lt;br /&gt;
If you add a new direct light, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the light:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Light&amp;gt;&lt;br /&gt;
  &amp;lt;DataName&amp;gt;MyDirectLight&amp;lt;/DataName&amp;gt;&lt;br /&gt;
&amp;lt;/Light&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Missing Sky Model ====&lt;br /&gt;
&lt;br /&gt;
If you made a new sky model, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the sky model:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
  &amp;lt;Model&amp;gt;MySkyModel&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;/Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Make sure the sky model&#039;s materials use sky shaders like &amp;lt;code&amp;gt;Sky_d&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Enemies From Other Stages Not Appearing ====&lt;br /&gt;
&lt;br /&gt;
Some enemies are only loaded in specific stages. You can fix that by editing &amp;lt;code&amp;gt;EnemyArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;ghz_cmn&amp;lt;/code&amp;gt; entry was modified to include data from &amp;lt;code&amp;gt;EnemyEFighter&amp;lt;/code&amp;gt;, allowing egg fighters to be used in both &amp;lt;code&amp;gt;ghz100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;ghz_cmn&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyCommon&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBeeton&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBatabata&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyGanigani&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyMotora&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyEFighter&amp;lt;/Archive&amp;gt;&lt;br /&gt;
&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The same method applies to Sonic Unleashed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values like &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999999&#039;&#039;&#039; are not going to work correctly. If editing the memory sizes does not work, you can try changing &amp;lt;code&amp;gt;g_EnableFrustumCulling&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_EnableOcclusionCulling&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; as a last resort. Note that disabling these two options might cause a performance hit in-game! &lt;br /&gt;
&lt;br /&gt;
==== File Replacements Not Working ====&lt;br /&gt;
The title update and DLC override files in the base game archives by including them in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder. These files are going to always take priority over your modded files. This is a common problem with &amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;.set.xml&amp;lt;/code&amp;gt; files. To override them, include the modified files in your mod in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder using the same file structure.&lt;br /&gt;
&lt;br /&gt;
==== Invisible Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader.ar&amp;lt;/code&amp;gt; in the base game directory and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly. When DLC is enabled, the game looks inside the &amp;lt;code&amp;gt;Additional&amp;lt;/code&amp;gt; folder to load HD GI, the parameter for it is named &amp;lt;code&amp;gt;g_Xbox360LimitSizeWithAdditional&amp;lt;/code&amp;gt;, which you also should try to increase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Rainbow Flashing Textures ====&lt;br /&gt;
A rainbow flashing texture is displayed when a texture assigned to a material is missing. Ensure you included the texture in the archive and didn&#039;t make a typo in the material. Texture names are &#039;&#039;&#039;case-sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_TerrainModelLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_TerrainModelLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.  &lt;br /&gt;
&lt;br /&gt;
==== Red Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader_r_add.ar.00&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;bb3.cpk&amp;lt;/code&amp;gt; and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_GITextureLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_GITextureLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.&lt;br /&gt;
&lt;br /&gt;
== Crashes or Infinite Loading ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Material Files ====&lt;br /&gt;
Unlike newer games, missing materials can crash Generations/Unleashed. For Sonic Unleashed, only having the &amp;lt;code&amp;gt;.material&amp;lt;/code&amp;gt; file isn&#039;t enough, you also need the matching &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Periods in File Names ====&lt;br /&gt;
File names with extra periods break stuff. For example, &amp;lt;code&amp;gt;Material.000.material&amp;lt;/code&amp;gt; gets read as &amp;lt;code&amp;gt;.000.material&amp;lt;/code&amp;gt;, and the game won&#039;t recognize it properly.&lt;br /&gt;
&lt;br /&gt;
==== Instance Names Starting with &amp;quot;ins&amp;quot; ====&lt;br /&gt;
Instances starting with &amp;lt;code&amp;gt;ins&amp;lt;/code&amp;gt; are treated differently, and require specialized material shaders. Using any other shader causes a crash. Ensure that none of the instances in your stage start with this word.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;gi-texture.gi-texture-group-info&amp;quot; File ====&lt;br /&gt;
Run [[GI Atlas Converter]] on Pre-Render mode to have this file created automatically.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;light-list.light-list&amp;quot; File ====&lt;br /&gt;
Copy paste &amp;lt;code&amp;gt;.light&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.light-list&amp;lt;/code&amp;gt; files from another stage, or add a direct light to your level in the 3D software you use. Latest [[Hedgehog Converter]] can import direct lights, so ensure your tools are up to date. Use [[HedgeGI]] for advanced light editing.&lt;br /&gt;
&lt;br /&gt;
==== Mismatching PFD/PFI Files ====&lt;br /&gt;
PFD files are loaded through PFI files. If the &amp;lt;code&amp;gt;Stage.pfi&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfi&amp;lt;/code&amp;gt; files don&#039;t match with the &amp;lt;code&amp;gt;Stage.pfd&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfd&amp;lt;/code&amp;gt; files in the stage, this causes a crash. Unpack the PFD files, and repack them back with [[HedgeArcPack]] using &amp;lt;code&amp;gt;-T=pfd&amp;lt;/code&amp;gt; command-line option to generate matching PFI files.&lt;br /&gt;
&lt;br /&gt;
==== Light Field File Too Large ====&lt;br /&gt;
Your game might crash randomly when booting your level if the level&#039;s light field (.lft) file is too large. Try increasing the minimum cell radius in HedgeGI to reduce the light field&#039;s file size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Incorrect Material Format ====&lt;br /&gt;
Unleashed uses V1 materials while Generations uses V3. If you try to load a V3 material in Unleashed, it&#039;ll crash. Check the version in a hex editor (7th byte), or look for &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt;, those usually mean it&#039;s V1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Unloaded Sonic Animations ====&lt;br /&gt;
&lt;br /&gt;
The game doesn&#039;t load certain Sonic animations to save memory if the gimmick in question is never used. For example, diving animations stored in &amp;lt;code&amp;gt;SonicDiving.ar.00&amp;lt;/code&amp;gt; are only loaded in Chemical Plant, Speed Highway and Planet Wisp. If diving is used in any other stage, the game is going to crash due to unloaded animations. This behavior can be configured by editing &amp;lt;code&amp;gt;ArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;SonicDiving&amp;lt;/code&amp;gt; entry was edited to load in the &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt; stage slot:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Node&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;SonicDiving&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;SonicDiving&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;DefAppend&amp;gt;SonicDiving&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;bne&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;bne&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;cpz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;cpz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;pla200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;pla200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;sph200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;sph200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;ghz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;ghz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;  &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=587</id>
		<title>Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=587"/>
		<updated>2025-05-02T18:50:04Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page covers both &#039;&#039;&#039;Sonic Generations&#039;&#039;&#039; and &#039;&#039;&#039;Sonic Unleashed&#039;&#039;&#039;. If no game is specified, the explanation applies to both games.&lt;br /&gt;
&lt;br /&gt;
== Visual Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Black Textures ====&lt;br /&gt;
Textures must have power-of-two resolutions (like 512x512, 1024x1024, 2048x2048, etc). Arbitrary resolutions like 507x631 are not supported when using compressed textures. &lt;br /&gt;
&lt;br /&gt;
==== Randomly Switching Textures ====&lt;br /&gt;
The material doesn&#039;t have any textures assigned. The game expects at least a diffuse texture to be present for nearly every shader.&lt;br /&gt;
&lt;br /&gt;
==== Missing Transparency On Textures ====&lt;br /&gt;
You might need &amp;lt;code&amp;gt;@LYR(trans)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;@LYR(punch)&amp;lt;/code&amp;gt; tags on your material names. See the [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|terrain importing guide]] for more info. Your texture might be compressed using &amp;lt;code&amp;gt;BC1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT1&amp;lt;/code&amp;gt;, which doesn&#039;t support alpha channels, you should use &amp;lt;code&amp;gt;BC3&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT5&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
==== Missing Direct Light ====&lt;br /&gt;
&lt;br /&gt;
If you add a new direct light, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the light:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Light&amp;gt;&lt;br /&gt;
  &amp;lt;DataName&amp;gt;MyDirectLight&amp;lt;/DataName&amp;gt;&lt;br /&gt;
&amp;lt;/Light&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Missing Sky Model ====&lt;br /&gt;
&lt;br /&gt;
If you made a new sky model, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the sky model:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
  &amp;lt;Model&amp;gt;MySkyModel&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;/Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Make sure the sky model&#039;s materials use sky shaders like &amp;lt;code&amp;gt;Sky_d&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Enemies From Other Stages Not Appearing ====&lt;br /&gt;
&lt;br /&gt;
Some enemies are only loaded in specific stages. You can fix that by editing &amp;lt;code&amp;gt;EnemyArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;ghz_cmn&amp;lt;/code&amp;gt; entry was modified to include data from &amp;lt;code&amp;gt;EnemyEFighter&amp;lt;/code&amp;gt;, allowing egg fighters to be used in both &amp;lt;code&amp;gt;ghz100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;ghz_cmn&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyCommon&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBeeton&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBatabata&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyGanigani&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyMotora&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyEFighter&amp;lt;/Archive&amp;gt;&lt;br /&gt;
&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The same method applies to Sonic Unleashed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values like &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999999&#039;&#039;&#039; are not going to work correctly. If editing the memory sizes does not work, you can try changing &amp;lt;code&amp;gt;g_EnableFrustumCulling&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_EnableOcclusionCulling&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; as a last resort. Note that disabling these two options might cause a performance hit in-game! &lt;br /&gt;
&lt;br /&gt;
==== File Replacements Not Working ====&lt;br /&gt;
The title update and DLC override files in the base game archives by including them in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder. These files are going to always take priority over your modded files. This is a common problem with &amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;.set.xml&amp;lt;/code&amp;gt; files. To override them, include the modified files in your mod in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder using the same file structure.&lt;br /&gt;
&lt;br /&gt;
==== Invisible Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader.ar&amp;lt;/code&amp;gt; in the base game directory and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly. When DLC is enabled, the game looks inside the &amp;lt;code&amp;gt;Additional&amp;lt;/code&amp;gt; folder to load HD GI, the parameter for it is named &amp;lt;code&amp;gt;g_Xbox360LimitSizeWithAdditional&amp;lt;/code&amp;gt;, which you also should try to increase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Rainbow Flashing Textures ====&lt;br /&gt;
A rainbow flashing texture is displayed when a texture assigned to a material is missing. Ensure you included the texture in the archive and didn&#039;t make a typo in the material. Texture names are &#039;&#039;&#039;case-sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_TerrainModelLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_TerrainModelLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.  &lt;br /&gt;
&lt;br /&gt;
==== Red Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader_r_add.ar.00&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;bb3.cpk&amp;lt;/code&amp;gt; and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_GITextureLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_GITextureLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.&lt;br /&gt;
&lt;br /&gt;
== Crashes or Infinite Loading ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Material Files ====&lt;br /&gt;
Unlike newer games, missing materials can crash Generations/Unleashed. For Sonic Unleashed, only having the &amp;lt;code&amp;gt;.material&amp;lt;/code&amp;gt; file isn&#039;t enough, you also need the matching &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Periods in File Names ====&lt;br /&gt;
File names with extra periods break stuff. For example, &amp;lt;code&amp;gt;Material.000.material&amp;lt;/code&amp;gt; gets read as &amp;lt;code&amp;gt;.000.material&amp;lt;/code&amp;gt;, and the game won&#039;t recognize it properly.&lt;br /&gt;
&lt;br /&gt;
==== Instance Names Starting with &amp;quot;ins&amp;quot; ====&lt;br /&gt;
Instances starting with &amp;lt;code&amp;gt;ins&amp;lt;/code&amp;gt; are treated differently, and require specialized material shaders. Using any other shader causes a crash. Ensure that none of the instances in your stage start with this word.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;gi-texture.gi-texture-group-info&amp;quot; File ====&lt;br /&gt;
Run [[GI Atlas Converter]] on Pre-Render mode to have this file created automatically.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;light-list.light-list&amp;quot; File ====&lt;br /&gt;
Copy paste &amp;lt;code&amp;gt;.light&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.light-list&amp;lt;/code&amp;gt; files from another stage, or add a direct light to your level in the 3D software you use. Latest [[Hedgehog Converter]] can import direct lights, so ensure your tools are up to date. Use [[HedgeGI]] for advanced light editing.&lt;br /&gt;
&lt;br /&gt;
==== Mismatching PFD/PFI Files ====&lt;br /&gt;
PFD files are loaded through PFI files. If the &amp;lt;code&amp;gt;Stage.pfi&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfi&amp;lt;/code&amp;gt; files don&#039;t match with the &amp;lt;code&amp;gt;Stage.pfd&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfd&amp;lt;/code&amp;gt; files in the stage, this causes a crash. Unpack the PFD files, and repack them back with [[HedgeArcPack]] using &amp;lt;code&amp;gt;-T=pfd&amp;lt;/code&amp;gt; command-line option to generate matching PFI files.&lt;br /&gt;
&lt;br /&gt;
==== Light Field File Too Large ====&lt;br /&gt;
Your game might crash randomly when booting your level if the level&#039;s light field (.lft) file is too large. Try increasing the minimum cell radius in HedgeGI to reduce the light field&#039;s file size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Incorrect Material Format ====&lt;br /&gt;
Unleashed uses V1 materials while Generations uses V3. If you try to load a V3 material in Unleashed, it&#039;ll crash. Check the version in a hex editor (7th byte), or look for &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt;, those usually mean it&#039;s V1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Unloaded Sonic Animations ====&lt;br /&gt;
&lt;br /&gt;
The game doesn&#039;t load certain Sonic animations to save memory if the gimmick in question is never used. For example, diving animations stored in &amp;lt;code&amp;gt;SonicDiving.ar.00&amp;lt;/code&amp;gt; are only loaded in Chemical Plant, Speed Highway and Planet Wisp. If diving is used in any other stage, the game is going to crash due to unloaded animations. This behavior can be configured by editing &amp;lt;code&amp;gt;ArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;SonicDiving&amp;lt;/code&amp;gt; entry was edited to load in the &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt; stage slot:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Node&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;SonicDiving&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;SonicDiving&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;DefAppend&amp;gt;SonicDiving&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;bne&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;bne&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;cpz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;cpz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;pla200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;pla200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;sph200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;sph200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;ghz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;ghz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;  &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=586</id>
		<title>Troubleshooting Custom Level Issues in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Troubleshooting_Custom_Level_Issues_in_Sonic_Generations/Sonic_Unleashed&amp;diff=586"/>
		<updated>2025-05-02T18:45:33Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Formatting fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page covers both &#039;&#039;&#039;Sonic Generations&#039;&#039;&#039; and &#039;&#039;&#039;Sonic Unleashed&#039;&#039;&#039;. If no game is specified, the explanation applies to both games.&lt;br /&gt;
&lt;br /&gt;
== Visual Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Black Textures ====&lt;br /&gt;
Textures must have power-of-two resolutions (like 512x512, 1024x1024, 2048x2048, etc). Arbitrary resolutions like 507x631 are not supported when using compressed textures. &lt;br /&gt;
&lt;br /&gt;
==== Randomly Switching Textures ====&lt;br /&gt;
The material doesn&#039;t have any textures assigned. The game expects at least a diffuse texture to be present for nearly every shader.&lt;br /&gt;
&lt;br /&gt;
==== Missing Transparency On Textures ====&lt;br /&gt;
You might need &amp;lt;code&amp;gt;@LYR(trans)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;@LYR(punch)&amp;lt;/code&amp;gt; tags on your material names. See the [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|terrain importing guide]] for more info. Your texture might be compressed using &amp;lt;code&amp;gt;BC1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT1&amp;lt;/code&amp;gt;, which doesn&#039;t support alpha channels, you should use &amp;lt;code&amp;gt;BC3&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;DXT5&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
==== Missing Direct Light ====&lt;br /&gt;
&lt;br /&gt;
If you add a new direct light, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the light:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Light&amp;gt;&lt;br /&gt;
  &amp;lt;DataName&amp;gt;MyDirectLight&amp;lt;/DataName&amp;gt;&lt;br /&gt;
&amp;lt;/Light&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Missing Sky Model ====&lt;br /&gt;
&lt;br /&gt;
If you made a new sky model, update &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt; in Sonic Unleashed) with the name of the sky model:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
  &amp;lt;Model&amp;gt;MySkyModel&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;/Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Make sure the sky model&#039;s materials use sky shaders like &amp;lt;code&amp;gt;Sky_d&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Enemies From Other Stages Not Appearing ====&lt;br /&gt;
&lt;br /&gt;
Some enemies are only loaded in specific stages. You can fix that by editing &amp;lt;code&amp;gt;EnemyArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;ghz_cmn&amp;lt;/code&amp;gt; entry was modified to include data from &amp;lt;code&amp;gt;EnemyEFighter&amp;lt;/code&amp;gt;, allowing egg fighters to be used in both &amp;lt;code&amp;gt;ghz100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;ghz_cmn&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyCommon&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBeeton&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyBatabata&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyGanigani&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyMotora&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;EnemyEFighter&amp;lt;/Archive&amp;gt;&lt;br /&gt;
&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The same method applies to Sonic Unleashed.&lt;br /&gt;
&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values like &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999999&#039;&#039;&#039; are not going to work correctly. If editing the memory sizes does not work, you can try changing &amp;lt;code&amp;gt;g_EnableFrustumCulling&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_EnableOcclusionCulling&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; as a last resort. Note that disabling these two options might cause a performance hit in-game! &lt;br /&gt;
&lt;br /&gt;
==== File Replacements Not Working ====&lt;br /&gt;
The title update and DLC override files in the base game archives by including them in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder. These files are going to always take priority over your modded files. This is a common problem with &amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;.set.xml&amp;lt;/code&amp;gt; files. To override them, include the modified files in your mod in a &amp;lt;code&amp;gt;work&amp;lt;/code&amp;gt; folder using the same file structure.&lt;br /&gt;
&lt;br /&gt;
==== Invisible Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader.ar&amp;lt;/code&amp;gt; in the base game directory and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_LimitSize&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250000000&#039;&#039;&#039;&amp;lt;small&amp;gt;b&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly. When DLC is enabled, the game looks inside the &amp;lt;code&amp;gt;Additional&amp;lt;/code&amp;gt; folder to load HD GI, the parameter for it is named &amp;lt;code&amp;gt;g_Xbox360LimitSizeWithAdditional&amp;lt;/code&amp;gt;, which you also should try to increase.&lt;br /&gt;
&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Rainbow Flashing Textures ====&lt;br /&gt;
A rainbow flashing texture is displayed when a texture assigned to a material is missing. Ensure you included the texture in the archive and didn&#039;t make a typo in the material. Texture names are &#039;&#039;&#039;case-sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Missing Terrain Models ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_TerrainModelLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_TerrainModelLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Terrain-Model&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.  &lt;br /&gt;
&lt;br /&gt;
==== Red Materials ====&lt;br /&gt;
This happens when a material points to a shader that doesn&#039;t exist. To see all available shaders, unpack &amp;lt;code&amp;gt;shader_r_add.ar.00&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;bb3.cpk&amp;lt;/code&amp;gt; and check for &amp;lt;code&amp;gt;.shader-list&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Low Quality or Missing GI Textures ====&lt;br /&gt;
&amp;lt;code&amp;gt;Terrain.prm.xml&amp;lt;/code&amp;gt; likely requires memory sizes to be higher. To fix this, edit &amp;lt;code&amp;gt;g_GITextureLimitSizeDefault&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;g_GITextureLimitSizeWin32&amp;lt;/code&amp;gt; under &amp;lt;code&amp;gt;DynamicLoad&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GI-Texture&amp;lt;/code&amp;gt; to values such as &#039;&#039;&#039;100&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt; or &#039;&#039;&#039;250&#039;&#039;&#039;&amp;lt;small&amp;gt;mb&amp;lt;/small&amp;gt;. Make sure to use sensible values as absurd values like &#039;&#039;&#039;999999999&#039;&#039;&#039; are not going to work correctly.&lt;br /&gt;
&lt;br /&gt;
== Crashes or Infinite Loading ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
==== Missing Material Files ====&lt;br /&gt;
Unlike newer games, missing materials can crash Generations/Unleashed. For Sonic Unleashed, only having the &amp;lt;code&amp;gt;.material&amp;lt;/code&amp;gt; file isn&#039;t enough, you also need the matching &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== Periods in File Names ====&lt;br /&gt;
File names with extra periods break stuff. For example, &amp;lt;code&amp;gt;Material.000.material&amp;lt;/code&amp;gt; gets read as &amp;lt;code&amp;gt;.000.material&amp;lt;/code&amp;gt;, and the game won&#039;t recognize it properly.&lt;br /&gt;
&lt;br /&gt;
==== Instance Names Starting with &amp;quot;ins&amp;quot; ====&lt;br /&gt;
Instances starting with &amp;lt;code&amp;gt;ins&amp;lt;/code&amp;gt; are treated differently, and require specialized material shaders. Using any other shader causes a crash. Ensure that none of the instances in your stage start with this word.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;gi-texture.gi-texture-group-info&amp;quot; File ====&lt;br /&gt;
Run [[GI Atlas Converter]] on Pre-Render mode to have this file created automatically.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;quot;light-list.light-list&amp;quot; File ====&lt;br /&gt;
Copy paste &amp;lt;code&amp;gt;.light&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.light-list&amp;lt;/code&amp;gt; files from another stage, or add a direct light to your level in the 3D software you use. Latest [[Hedgehog Converter]] can import direct lights, so ensure your tools are up to date. Use [[HedgeGI]] for advanced light editing.&lt;br /&gt;
&lt;br /&gt;
==== Mismatching PFD/PFI Files ====&lt;br /&gt;
PFD files are loaded through PFI files. If the &amp;lt;code&amp;gt;Stage.pfi&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfi&amp;lt;/code&amp;gt; files don&#039;t match with the &amp;lt;code&amp;gt;Stage.pfd&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Stage-Add.pfd&amp;lt;/code&amp;gt; files in the stage, this causes a crash. Unpack the PFD files, and repack them back with [[HedgeArcPack]] using &amp;lt;code&amp;gt;-T=pfd&amp;lt;/code&amp;gt; command-line option to generate matching PFI files.&lt;br /&gt;
&lt;br /&gt;
==== Light Field File Too Large ====&lt;br /&gt;
Your game might crash randomly when booting your level if the level&#039;s light field (.lft) file is too large. Try increasing the minimum cell radius in HedgeGI to reduce the light field&#039;s file size.&lt;br /&gt;
&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
&lt;br /&gt;
==== Incorrect Material Format ====&lt;br /&gt;
Unleashed uses V1 materials while Generations uses V3. If you try to load a V3 material in Unleashed, it&#039;ll crash. Check the version in a hex editor (7th byte), or look for &amp;lt;code&amp;gt;.texset&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;.texture&amp;lt;/code&amp;gt;, those usually mean it&#039;s V1.&lt;br /&gt;
&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
&lt;br /&gt;
==== Unloaded Sonic Animations ====&lt;br /&gt;
&lt;br /&gt;
The game doesn&#039;t load certain Sonic animations to save memory if the gimmick in question is never used. For example, diving animations stored in &amp;lt;code&amp;gt;SonicDiving.ar.00&amp;lt;/code&amp;gt; are only loaded in Chemical Plant, Speed Highway and Planet Wisp. If diving is used in any other stage, the game is going to crash due to unloaded animations. This behavior can be configured by editing &amp;lt;code&amp;gt;ArchiveTree.xml&amp;lt;/code&amp;gt; inside &amp;lt;code&amp;gt;#Application.ar.00&amp;lt;/code&amp;gt;. In this example, &amp;lt;code&amp;gt;SonicDiving&amp;lt;/code&amp;gt; entry was edited to load in the &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt; stage slot:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Node&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;SonicDiving&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Archive&amp;gt;SonicDiving&amp;lt;/Archive&amp;gt;&lt;br /&gt;
  &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;DefAppend&amp;gt;SonicDiving&amp;lt;/DefAppend&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;bne&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;bne&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;cpz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;cpz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;pla200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;pla200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;sph200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;sph200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;&lt;br /&gt;
  &amp;lt;Node&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;ghz200&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Archive&amp;gt;ghz200&amp;lt;/Archive&amp;gt;&lt;br /&gt;
    &amp;lt;Order&amp;gt;0&amp;lt;/Order&amp;gt;&lt;br /&gt;
  &amp;lt;/Node&amp;gt;  &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed_Event_IDs&amp;diff=580</id>
		<title>Sonic Unleashed Event IDs</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed_Event_IDs&amp;diff=580"/>
		<updated>2025-05-02T16:37:54Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=warn|content=This is a direct port from the old HedgeDocs, a new version of this page is being worked on by archxe.}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Cutscene Name&lt;br /&gt;
!Cutscene ID&lt;br /&gt;
|-&lt;br /&gt;
|Opening&lt;br /&gt;
|M0_01_05&lt;br /&gt;
|-&lt;br /&gt;
|A New Journey&lt;br /&gt;
|M0_06&lt;br /&gt;
|-&lt;br /&gt;
|Special Sundae&lt;br /&gt;
|M1_01&lt;br /&gt;
|-&lt;br /&gt;
|The First Night&lt;br /&gt;
|M1_02&lt;br /&gt;
|-&lt;br /&gt;
|Tails in Trouble!&lt;br /&gt;
|M1_03_1&lt;br /&gt;
|-&lt;br /&gt;
|To Spagonia!&lt;br /&gt;
|M1_03_2&lt;br /&gt;
|-&lt;br /&gt;
|Kidnapped&lt;br /&gt;
|M2_01&lt;br /&gt;
|-&lt;br /&gt;
|Same As Ever&lt;br /&gt;
|M2_02&lt;br /&gt;
|-&lt;br /&gt;
|Gaia Manuscripts&lt;br /&gt;
|M2_03&lt;br /&gt;
|-&lt;br /&gt;
|Eggman Again&lt;br /&gt;
|M3_01&lt;br /&gt;
|-&lt;br /&gt;
|The Egg Beetle&lt;br /&gt;
|M3_02&lt;br /&gt;
|-&lt;br /&gt;
|Temple Activated!&lt;br /&gt;
|M3_03&lt;br /&gt;
|-&lt;br /&gt;
|Planet Pieces&lt;br /&gt;
|M3_04&lt;br /&gt;
|-&lt;br /&gt;
|Tails&#039; Report&lt;br /&gt;
|M3_05&lt;br /&gt;
|-&lt;br /&gt;
|Eggman&#039;s Idea&lt;br /&gt;
|M4_01&lt;br /&gt;
|-&lt;br /&gt;
|Guiding Pulse&lt;br /&gt;
|M5_01&lt;br /&gt;
|-&lt;br /&gt;
|The Dark Gaia Project&lt;br /&gt;
|M5_02&lt;br /&gt;
|-&lt;br /&gt;
|Chip&#039;s Change&lt;br /&gt;
|M6_01&lt;br /&gt;
|-&lt;br /&gt;
|Chip&#039;s Memories&lt;br /&gt;
|M6_02&lt;br /&gt;
|-&lt;br /&gt;
|No Reason&lt;br /&gt;
|M6_03&lt;br /&gt;
|-&lt;br /&gt;
|Eggmanland&lt;br /&gt;
|M7_01&lt;br /&gt;
|-&lt;br /&gt;
|The Final Temple&lt;br /&gt;
|M7_02&lt;br /&gt;
|-&lt;br /&gt;
|The 7&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; Continent&lt;br /&gt;
|M7_03&lt;br /&gt;
|-&lt;br /&gt;
|Congratulations&lt;br /&gt;
|M7_04&lt;br /&gt;
|-&lt;br /&gt;
|Pickle&#039;s Message&lt;br /&gt;
|M8_01&lt;br /&gt;
|-&lt;br /&gt;
|The Egg Dragoon&lt;br /&gt;
|M8_02&lt;br /&gt;
|-&lt;br /&gt;
|Planet&#039;s End&lt;br /&gt;
|M8_03&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Appears&lt;br /&gt;
|M8_04&lt;br /&gt;
|-&lt;br /&gt;
|Shrines in Flight&lt;br /&gt;
|M8_05&lt;br /&gt;
|-&lt;br /&gt;
|Hour of Awakening&lt;br /&gt;
|M8_06_1&lt;br /&gt;
|-&lt;br /&gt;
|Let&#039;s Finish This!&lt;br /&gt;
|M8_06_2&lt;br /&gt;
|-&lt;br /&gt;
|Speading Darkness&lt;br /&gt;
|M8_07&lt;br /&gt;
|-&lt;br /&gt;
|Dark World&lt;br /&gt;
|M8_08&lt;br /&gt;
|-&lt;br /&gt;
|Hope and Despair&lt;br /&gt;
|M8_09&lt;br /&gt;
|-&lt;br /&gt;
|The Final Form&lt;br /&gt;
|M8_10&lt;br /&gt;
|-&lt;br /&gt;
|Darkness and Light&lt;br /&gt;
|M8_11_1&lt;br /&gt;
|-&lt;br /&gt;
|Annihilation&lt;br /&gt;
|M8_11_2&lt;br /&gt;
|-&lt;br /&gt;
|A Score Settled&lt;br /&gt;
|M8_11_3&lt;br /&gt;
|-&lt;br /&gt;
|Rekindled Light&lt;br /&gt;
|M8_12&lt;br /&gt;
|-&lt;br /&gt;
|Begin Anew&lt;br /&gt;
|M8_13&lt;br /&gt;
|-&lt;br /&gt;
|Save the Speech&lt;br /&gt;
|M8_14&lt;br /&gt;
|-&lt;br /&gt;
|To the Surface&lt;br /&gt;
|M8_15&lt;br /&gt;
|-&lt;br /&gt;
|Always&lt;br /&gt;
|M8_16&lt;br /&gt;
|-&lt;br /&gt;
|The Divine Beast&lt;br /&gt;
|S1_03&lt;br /&gt;
|-&lt;br /&gt;
|The Key&lt;br /&gt;
|S1_04&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Temple&lt;br /&gt;
|S1_05&lt;br /&gt;
|-&lt;br /&gt;
|Back to Normal&lt;br /&gt;
|S1_06&lt;br /&gt;
|-&lt;br /&gt;
|Amy&#039;s Mistake&lt;br /&gt;
|S2_01&lt;br /&gt;
|-&lt;br /&gt;
|Midnight Dance&lt;br /&gt;
|S2_03&lt;br /&gt;
|-&lt;br /&gt;
|Rescuing Amy&lt;br /&gt;
|S2_04&lt;br /&gt;
|-&lt;br /&gt;
|A Monster on Ice&lt;br /&gt;
|S3_03&lt;br /&gt;
|-&lt;br /&gt;
|Holoskan Temple&lt;br /&gt;
|S3_04&lt;br /&gt;
|-&lt;br /&gt;
|Spagonian Temple&lt;br /&gt;
|T0_01&lt;br /&gt;
|-&lt;br /&gt;
|Shamaran Temple&lt;br /&gt;
|T0_02&lt;br /&gt;
|-&lt;br /&gt;
|Charge!&lt;br /&gt;
|T0_03&lt;br /&gt;
|-&lt;br /&gt;
|Temple Entrance&lt;br /&gt;
|T0_04&lt;br /&gt;
|-&lt;br /&gt;
|Sonic and Chip (in Chun-nan)&lt;br /&gt;
|CHN&lt;br /&gt;
|-&lt;br /&gt;
|Sonic and Chip (in Adabat)&lt;br /&gt;
|SEA&lt;br /&gt;
|-&lt;br /&gt;
|Sonic and Chip (in Holoska)&lt;br /&gt;
|SNW_gooON&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=579</id>
		<title>Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=579"/>
		<updated>2025-05-02T16:37:30Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[pfdpackUnleashed]] (*.pfd)&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[How To Use Sonic GLvl with Sonic Unleashed|SonicGLvl]]&lt;br /&gt;
* [[How To Import Custom Terrain in Sonic Generations/Sonic Unleashed|Importing Terrain]]&lt;br /&gt;
* [[How To Import Custom Collision in Sonic Generations/Sonic Unleashed|Importing Collision]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Unleashed Stage IDs|Stage IDs]]&lt;br /&gt;
* [[Sonic Unleashed Event IDs|Event IDs]]&lt;br /&gt;
* [[Unleashed-Generations Havok Collision Attributes|Havok Collision Attributes]]&lt;br /&gt;
&lt;br /&gt;
== Discoveries ==&lt;br /&gt;
&lt;br /&gt;
=== PlayStation 3 ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Unleashed Install Screen|Install Screen]]&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed_Event_IDs&amp;diff=578</id>
		<title>Sonic Unleashed Event IDs</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed_Event_IDs&amp;diff=578"/>
		<updated>2025-05-02T16:35:24Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Created page with &amp;quot;{{Notice|type=warn|content=This is a direct port from HedgeDocs, a new version of this page is being worked on by archxe.}} {| class=&amp;quot;wikitable&amp;quot; !Cutscene Name !Cutscene ID |- |Opening |M0_01_05 |- |A New Journey |M0_06 |- |Special Sundae |M1_01 |- |The First Night |M1_02 |- |Tails in Trouble! |M1_03_1 |- |To Spagonia! |M1_03_2 |- |Kidnapped |M2_01 |- |Same As Ever |M2_02 |- |Gaia Manuscripts |M2_03 |- |Eggman Again |M3_01 |- |The Egg Beetle |M3_02 |- |Temple Activated!...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=warn|content=This is a direct port from HedgeDocs, a new version of this page is being worked on by archxe.}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Cutscene Name&lt;br /&gt;
!Cutscene ID&lt;br /&gt;
|-&lt;br /&gt;
|Opening&lt;br /&gt;
|M0_01_05&lt;br /&gt;
|-&lt;br /&gt;
|A New Journey&lt;br /&gt;
|M0_06&lt;br /&gt;
|-&lt;br /&gt;
|Special Sundae&lt;br /&gt;
|M1_01&lt;br /&gt;
|-&lt;br /&gt;
|The First Night&lt;br /&gt;
|M1_02&lt;br /&gt;
|-&lt;br /&gt;
|Tails in Trouble!&lt;br /&gt;
|M1_03_1&lt;br /&gt;
|-&lt;br /&gt;
|To Spagonia!&lt;br /&gt;
|M1_03_2&lt;br /&gt;
|-&lt;br /&gt;
|Kidnapped&lt;br /&gt;
|M2_01&lt;br /&gt;
|-&lt;br /&gt;
|Same As Ever&lt;br /&gt;
|M2_02&lt;br /&gt;
|-&lt;br /&gt;
|Gaia Manuscripts&lt;br /&gt;
|M2_03&lt;br /&gt;
|-&lt;br /&gt;
|Eggman Again&lt;br /&gt;
|M3_01&lt;br /&gt;
|-&lt;br /&gt;
|The Egg Beetle&lt;br /&gt;
|M3_02&lt;br /&gt;
|-&lt;br /&gt;
|Temple Activated!&lt;br /&gt;
|M3_03&lt;br /&gt;
|-&lt;br /&gt;
|Planet Pieces&lt;br /&gt;
|M3_04&lt;br /&gt;
|-&lt;br /&gt;
|Tails&#039; Report&lt;br /&gt;
|M3_05&lt;br /&gt;
|-&lt;br /&gt;
|Eggman&#039;s Idea&lt;br /&gt;
|M4_01&lt;br /&gt;
|-&lt;br /&gt;
|Guiding Pulse&lt;br /&gt;
|M5_01&lt;br /&gt;
|-&lt;br /&gt;
|The Dark Gaia Project&lt;br /&gt;
|M5_02&lt;br /&gt;
|-&lt;br /&gt;
|Chip&#039;s Change&lt;br /&gt;
|M6_01&lt;br /&gt;
|-&lt;br /&gt;
|Chip&#039;s Memories&lt;br /&gt;
|M6_02&lt;br /&gt;
|-&lt;br /&gt;
|No Reason&lt;br /&gt;
|M6_03&lt;br /&gt;
|-&lt;br /&gt;
|Eggmanland&lt;br /&gt;
|M7_01&lt;br /&gt;
|-&lt;br /&gt;
|The Final Temple&lt;br /&gt;
|M7_02&lt;br /&gt;
|-&lt;br /&gt;
|The 7&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; Continent&lt;br /&gt;
|M7_03&lt;br /&gt;
|-&lt;br /&gt;
|Congratulations&lt;br /&gt;
|M7_04&lt;br /&gt;
|-&lt;br /&gt;
|Pickle&#039;s Message&lt;br /&gt;
|M8_01&lt;br /&gt;
|-&lt;br /&gt;
|The Egg Dragoon&lt;br /&gt;
|M8_02&lt;br /&gt;
|-&lt;br /&gt;
|Planet&#039;s End&lt;br /&gt;
|M8_03&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Appears&lt;br /&gt;
|M8_04&lt;br /&gt;
|-&lt;br /&gt;
|Shrines in Flight&lt;br /&gt;
|M8_05&lt;br /&gt;
|-&lt;br /&gt;
|Hour of Awakening&lt;br /&gt;
|M8_06_1&lt;br /&gt;
|-&lt;br /&gt;
|Let&#039;s Finish This!&lt;br /&gt;
|M8_06_2&lt;br /&gt;
|-&lt;br /&gt;
|Speading Darkness&lt;br /&gt;
|M8_07&lt;br /&gt;
|-&lt;br /&gt;
|Dark World&lt;br /&gt;
|M8_08&lt;br /&gt;
|-&lt;br /&gt;
|Hope and Despair&lt;br /&gt;
|M8_09&lt;br /&gt;
|-&lt;br /&gt;
|The Final Form&lt;br /&gt;
|M8_10&lt;br /&gt;
|-&lt;br /&gt;
|Darkness and Light&lt;br /&gt;
|M8_11_1&lt;br /&gt;
|-&lt;br /&gt;
|Annihilation&lt;br /&gt;
|M8_11_2&lt;br /&gt;
|-&lt;br /&gt;
|A Score Settled&lt;br /&gt;
|M8_11_3&lt;br /&gt;
|-&lt;br /&gt;
|Rekindled Light&lt;br /&gt;
|M8_12&lt;br /&gt;
|-&lt;br /&gt;
|Begin Anew&lt;br /&gt;
|M8_13&lt;br /&gt;
|-&lt;br /&gt;
|Save the Speech&lt;br /&gt;
|M8_14&lt;br /&gt;
|-&lt;br /&gt;
|To the Surface&lt;br /&gt;
|M8_15&lt;br /&gt;
|-&lt;br /&gt;
|Always&lt;br /&gt;
|M8_16&lt;br /&gt;
|-&lt;br /&gt;
|The Divine Beast&lt;br /&gt;
|S1_03&lt;br /&gt;
|-&lt;br /&gt;
|The Key&lt;br /&gt;
|S1_04&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Temple&lt;br /&gt;
|S1_05&lt;br /&gt;
|-&lt;br /&gt;
|Back to Normal&lt;br /&gt;
|S1_06&lt;br /&gt;
|-&lt;br /&gt;
|Amy&#039;s Mistake&lt;br /&gt;
|S2_01&lt;br /&gt;
|-&lt;br /&gt;
|Midnight Dance&lt;br /&gt;
|S2_03&lt;br /&gt;
|-&lt;br /&gt;
|Rescuing Amy&lt;br /&gt;
|S2_04&lt;br /&gt;
|-&lt;br /&gt;
|A Monster on Ice&lt;br /&gt;
|S3_03&lt;br /&gt;
|-&lt;br /&gt;
|Holoskan Temple&lt;br /&gt;
|S3_04&lt;br /&gt;
|-&lt;br /&gt;
|Spagonian Temple&lt;br /&gt;
|T0_01&lt;br /&gt;
|-&lt;br /&gt;
|Shamaran Temple&lt;br /&gt;
|T0_02&lt;br /&gt;
|-&lt;br /&gt;
|Charge!&lt;br /&gt;
|T0_03&lt;br /&gt;
|-&lt;br /&gt;
|Temple Entrance&lt;br /&gt;
|T0_04&lt;br /&gt;
|-&lt;br /&gt;
|Sonic and Chip (in Chun-nan)&lt;br /&gt;
|CHN&lt;br /&gt;
|-&lt;br /&gt;
|Sonic and Chip (in Adabat)&lt;br /&gt;
|SEA&lt;br /&gt;
|-&lt;br /&gt;
|Sonic and Chip (in Holoska)&lt;br /&gt;
|SNW_gooON&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Import_Custom_Terrain_in_Sonic_Generations/Sonic_Unleashed&amp;diff=571</id>
		<title>How To Import Custom Terrain in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Import_Custom_Terrain_in_Sonic_Generations/Sonic_Unleashed&amp;diff=571"/>
		<updated>2025-05-02T14:56:47Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
* [[SonicGLvl]]&lt;br /&gt;
* [[Hedgehog Converter]]&lt;br /&gt;
* [https://www.blender.org Blender]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[PackCpk]]&lt;br /&gt;
* [[Model Converter]]&lt;br /&gt;
You can use a different 3D software of your choice as long as you export to a format that Hedgehog Converter supports.}}&lt;br /&gt;
&lt;br /&gt;
== Part 1 (Creating Terrain in Blender) ==&lt;br /&gt;
First of all you need terrain for your level, you can create the terrain yourself or you can use pre-existing terrain. If your level contains transparent materials you will need to add a layer tag, pick the one that&#039;s best suited for your use case in order to avoid visual issues.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Layers&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|punch&lt;br /&gt;
|Used for materials which have binary transparency (one part is 100% opaque, another is 100% transparent). Useful for most kinds of textures, like leaves or grass&lt;br /&gt;
|-&lt;br /&gt;
|trans&lt;br /&gt;
|Used for translucent materials, as in, materials which are not 100% opaque but also not 100% transparent (ex. windows)&lt;br /&gt;
|}&lt;br /&gt;
In order to specify a layer for a material, use the &amp;lt;code&amp;gt;@LYR&amp;lt;/code&amp;gt; prefix, with the layer name between parenthesis after it.&lt;br /&gt;
[[File:Transparent material example terrain import generations.png|center|thumb|357x357px|Example of a transparent material in Blender]]&lt;br /&gt;
You can then export your terrain from Blender into an Assimp compatible format (&amp;lt;code&amp;gt;fbx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dae&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gltf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt; work). When exporting it as &amp;lt;code&amp;gt;fbx&amp;lt;/code&amp;gt;, make sure to set &#039;&#039;&#039;Apply Scalings&#039;&#039;&#039; to &#039;&#039;&#039;FBX Units Scale&#039;&#039;&#039;, otherwise your level is going to appear 100x larger in-game.[[File:Blender FBX Units Scale.png|center|thumb|FBX Units Scale in FBX exporter window.]]&lt;br /&gt;
&lt;br /&gt;
== Part 2 (Importing the Level to the Game) ==&lt;br /&gt;
Download [[Hedgehog Converter]] and run &amp;lt;code&amp;gt;bin/HedgehogConverter.exe&amp;lt;/code&amp;gt;. Fill in the following fields:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Game engine&#039;&#039;&#039; - The game you are converting for&lt;br /&gt;
* &#039;&#039;&#039;Source 3D model files&#039;&#039;&#039; - Your terrain model files&lt;br /&gt;
* &#039;&#039;&#039;Source textures directory&#039;&#039;&#039; - The directory containing the texture files for your terrain&lt;br /&gt;
* &#039;&#039;&#039;Terrain output directory&#039;&#039;&#039; - The directory that will contain the converted terrain&lt;br /&gt;
* &#039;&#039;&#039;Merge with existing files&#039;&#039;&#039; - Turn this off as we are creating a brand new stage&lt;br /&gt;
&lt;br /&gt;
Make sure to create a folder inside the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; directory, named according to your stage.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* For Green Hill Act 2, use the folder name &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;&lt;br /&gt;
* For Windmill Isle Act 1 (Day), use the folder name &amp;lt;code&amp;gt;ActD_MykonosAct1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can refer to the [[Sonic Generations Stage IDs]] or [[Sonic Unleashed Stage IDs]] pages to find the ID of the stage you are going to replace.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended to first set up a mod and create these folders within it. If you&#039;ve set up the folder structure correctly and browsed to it, the &#039;&#039;&#039;Terrain output directory&#039;&#039;&#039; should show something like the following examples:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;D:\Steam\steamapps\common\Sonic Generations\mods\MyStageMod\disk\bb\Packed\ghz200&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;C:\Games\UnleashedRecomp\mods\MyStageMod\Packed\ActD_MykonosAct1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to also turn on the following options under &#039;&#039;&#039;Materials&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Generate materials&lt;br /&gt;
* Copy and convert materials&lt;br /&gt;
* Force tags from Source 3D models&#039; material names as submesh layer&lt;br /&gt;
&lt;br /&gt;
In the end, you should have something similar to this:&lt;br /&gt;
[[File:Hedgehog Converter Example.png|center|thumb|625x625px]]&lt;br /&gt;
Next, click the &#039;&#039;&#039;Convert&#039;&#039;&#039; button and wait.&lt;br /&gt;
{{Notice|type=warn|content=You should normally disable the &#039;&#039;&#039;Merge existing files&#039;&#039;&#039; option when creating a brand-new stage. However, if you&#039;re appending more terrain to a stage you&#039;ve already created, make sure to enable this option, otherwise, &#039;&#039;&#039;you may permanently lose any changes&#039;&#039;&#039; you&#039;ve previously made to your level. &#039;&#039;&#039;This action is irreversible&#039;&#039;&#039;, so proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
== Part 3 (Getting Missing Files) ==&lt;br /&gt;
Once the conversion is complete, you may need to add files that are missing from your stage. These are stored in the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive, located next to the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* For Green Hill Act 2, the archive will be named &amp;lt;code&amp;gt;#ghz200.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* For Windmill Isle Act 1 (Day), the archive will be named &amp;lt;code&amp;gt;#ActD_MykonosAct1.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive contains important data such as set data, stage settings, collision information, and more. &#039;&#039;&#039;Your level will not function correctly without it.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
When creating a brand-new stage in Sonic Generations, Hedgehog Converter &#039;&#039;&#039;does not&#039;&#039;&#039; generate the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. To get started quickly, you can copy this archive from the base game. For example, if you are replacing &#039;&#039;Green Hill Act 2&#039;&#039;, you can copy the &amp;lt;code&amp;gt;#ghz200.ar.00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#ghz200.arl&amp;lt;/code&amp;gt; files from the &amp;lt;code&amp;gt;disk/bb.cpk&amp;lt;/code&amp;gt; file (extracted using [[PackCpk]]) to your mod directory.&lt;br /&gt;
&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
When creating a brand-new stage in Sonic Unleashed, Hedgehog Converter &#039;&#039;&#039;will&#039;&#039;&#039; create the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. That&#039;s because unlike Sonic Generations, Sonic Unleashed expects terrain-related files to be stored here. However, you can&#039;t just copy the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive files from the base game into your mod, doing that will override your custom level and break it. Instead, you&#039;ll need to merge the base game files into your mod&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. You can use [[HedgeArcPack]] to unpack/pack the .ar.00 files.&lt;br /&gt;
&lt;br /&gt;
You need to copy the following file types from the base game&#039;s archive:&lt;br /&gt;
&lt;br /&gt;
* .xml&lt;br /&gt;
* .hkx&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;NOT&#039;&#039;&#039; copy the following, or your custom level will break completely:&lt;br /&gt;
&lt;br /&gt;
* .gil&lt;br /&gt;
* .gi-texture-group-info&lt;br /&gt;
* .light&lt;br /&gt;
* .light-list&lt;br /&gt;
* .terrain&lt;br /&gt;
* .terrain-group&lt;br /&gt;
* .tbst&lt;br /&gt;
&lt;br /&gt;
== Part 4 (SonicGLvl Basic Setup) ==&lt;br /&gt;
Next up, we need to do some very basic setup of your level&#039;s set data in [[SonicGLvl]]. Open the app, and open your stage&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive from there. Once the level has been imported into SonicGLvl, press Ctrl+A and then Delete. This will delete all the objects that are present in your level&#039;s set data, which are the original objects from the stage we are replacing. Now, find &amp;lt;code&amp;gt;&amp;quot;SonicSpawn&amp;quot;&amp;lt;/code&amp;gt; in the objects menu on the left, and place it anywhere you want. This will be where Sonic will spawn in your level. Also, be sure to set the &amp;quot;Active&amp;quot; property to &amp;quot;true&amp;quot; in the settings of the &amp;lt;code&amp;gt;&amp;quot;SonicSpawn&amp;quot;&amp;lt;/code&amp;gt; object.&lt;br /&gt;
[[File:SonicSpawn SonicGLvl.png|center|thumb]]&lt;br /&gt;
After that, go to &#039;&#039;&#039;File&#039;&#039;&#039; and press &#039;&#039;&#039;Save Stage Data&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Part 5 (Creating Skybox - Optional but Recommended) ==&lt;br /&gt;
Skyboxes are just regular .model files. Though not mandatory for the game to boot, they are recommended so that your level at least has a sky for you to look at. You can take these from the original levels or create one yourself.&lt;br /&gt;
&lt;br /&gt;
=== Making one yourself ===&lt;br /&gt;
Export your skybox model from Blender into an Assimp compatible file format. Then, using [[Model Converter]], drag and drop the model file onto the respective game&#039;s .bat file. This will generate the .model file, as well as material files. You will need to convert the textures of your skybox manually into the DDS format.&lt;br /&gt;
&lt;br /&gt;
=== Grabbing one from a level ===&lt;br /&gt;
&lt;br /&gt;
==== Sonic Generations ====&lt;br /&gt;
Go to the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; folder in bb/bb2, and open the folder corresponding to the level you want the skybox from. Then, extract the &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt; archive, and look for the sky&#039;s &amp;lt;code&amp;gt;.model&amp;lt;/code&amp;gt; file. The name should have something to do with &amp;quot;sky&amp;quot;. If you don&#039;t manage to find it, look at the stage&#039;s &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; file, as it will mention the skybox&#039;s model name there. You will need the .model file, the textures (&amp;lt;code&amp;gt;.dds&amp;lt;/code&amp;gt; files) and the materials of the sky model.&lt;br /&gt;
&lt;br /&gt;
=== Using the Skybox files ===&lt;br /&gt;
After getting the necessary skybox model files, place them inside your stage&#039;s resources file:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Packed/stageID/stage.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;StageID.ar.00&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Then, open &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; file of your stage, and open the respective &amp;lt;code&amp;gt;.stg.xml&amp;lt;/code&amp;gt; file: &lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; &lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to create a &amp;lt;code&amp;gt;Sky&amp;lt;/code&amp;gt; tag and write the name of the &amp;lt;code&amp;gt;.model&amp;lt;/code&amp;gt; file of your skybox, without the extension. Below is an example of how you should write this. In this example, the skybox has a model file named &amp;lt;code&amp;gt;MySkybox.model&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
    &amp;lt;Model&amp;gt;MySkybox&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If you boot your stage now, you&#039;ll notice that you will fall through the ground. This is because you only ported the terrain, and not the collision. To do this, follow the guide [[How To Import Custom Collision in Sonic Generations/Sonic Unleashed|here]].&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Mario_%26_Sonic_at_the_Rio_2016_Olympic_Games&amp;diff=570</id>
		<title>Mario &amp; Sonic at the Rio 2016 Olympic Games</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Mario_%26_Sonic_at_the_Rio_2016_Olympic_Games&amp;diff=570"/>
		<updated>2025-05-02T13:58:51Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Created page with &amp;quot;== Guides == N/A  == Documentation == N/A  == Discoveries == N/A&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Guides ==&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
== Discoveries ==&lt;br /&gt;
N/A&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Import_Custom_Terrain_in_Sonic_Generations/Sonic_Unleashed&amp;diff=569</id>
		<title>How To Import Custom Terrain in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Import_Custom_Terrain_in_Sonic_Generations/Sonic_Unleashed&amp;diff=569"/>
		<updated>2025-05-02T13:58:10Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Flow changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
* [[SonicGLvl]]&lt;br /&gt;
* [[Hedgehog Converter]]&lt;br /&gt;
* [https://www.blender.org Blender]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[PackCpk]]&lt;br /&gt;
* [[Model Converter]]&lt;br /&gt;
You can use a different 3D software of your choice as long as you export to a format that Hedgehog Converter supports.}}&lt;br /&gt;
&lt;br /&gt;
== Part 1 (Creating Terrain in Blender) ==&lt;br /&gt;
First of all, you need terrain for your level, you can create the terrain yourself or you can use pre-existing terrain. If your level contains transparent materials you will need to add a layer tag, pick the one that&#039;s best suited for your use case in order to avoid visual issues.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Layers&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|punch&lt;br /&gt;
|Used for materials which have binary transparency (one part is 100% opaque, another is 100% transparent). Useful for most kinds of textures, like leaves or grass&lt;br /&gt;
|-&lt;br /&gt;
|trans&lt;br /&gt;
|Used for translucent materials, as in, materials which are not 100% opaque but also not 100% transparent (ex. windows)&lt;br /&gt;
|}&lt;br /&gt;
In order to specify a layer for a material, use the &amp;lt;code&amp;gt;@LYR&amp;lt;/code&amp;gt; prefix, with the layer name between parenthesis after it.&lt;br /&gt;
[[File:Transparent material example terrain import generations.png|center|thumb|357x357px|Example of a transparent material in Blender]]&lt;br /&gt;
You can then export your terrain from Blender into an Assimp compatible format (&amp;lt;code&amp;gt;fbx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dae&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gltf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt; work). When exporting it as &amp;lt;code&amp;gt;fbx&amp;lt;/code&amp;gt;, make sure to set &#039;&#039;&#039;Apply Scalings&#039;&#039;&#039; to &#039;&#039;&#039;FBX Units Scale&#039;&#039;&#039;, otherwise your level is going to appear 100x larger in-game.[[File:Blender FBX Units Scale.png|center|thumb|FBX Units Scale in FBX exporter window.]]&lt;br /&gt;
&lt;br /&gt;
== Part 2 (Importing the Level to the Game) ==&lt;br /&gt;
Download [[Hedgehog Converter]] and run &amp;lt;code&amp;gt;bin/HedgehogConverter.exe&amp;lt;/code&amp;gt;. Fill in the following fields:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Game engine&#039;&#039;&#039; - The game you are converting for&lt;br /&gt;
* &#039;&#039;&#039;Source 3D model files&#039;&#039;&#039; - Your terrain model files&lt;br /&gt;
* &#039;&#039;&#039;Source textures directory&#039;&#039;&#039; - The directory containing the texture files for your terrain&lt;br /&gt;
* &#039;&#039;&#039;Terrain output directory&#039;&#039;&#039; - The directory that will contain the converted terrain&lt;br /&gt;
* &#039;&#039;&#039;Merge with existing files&#039;&#039;&#039; - Turn this off as we are creating a brand new stage&lt;br /&gt;
&lt;br /&gt;
Make sure to create a folder inside the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; directory, named according to your stage.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* For Green Hill Act 2, use the folder name &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;&lt;br /&gt;
* For Windmill Isle Act 1 (Day), use the folder name &amp;lt;code&amp;gt;ActD_MykonosAct1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can refer to the [[Sonic Generations Stage IDs]] or [[Sonic Unleashed Stage IDs]] pages to find the ID of the stage you are going to replace.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended to first set up a mod and create these folders within it. If you&#039;ve set up the folder structure correctly and browsed to it, the &#039;&#039;&#039;Terrain output directory&#039;&#039;&#039; should show something like the following examples:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;D:\Steam\steamapps\common\Sonic Generations\mods\MyStageMod\disk\bb\Packed\ghz200&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;C:\Games\UnleashedRecomp\mods\MyStageMod\Packed\ActD_MykonosAct1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to also turn on the following options under &#039;&#039;&#039;Materials&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Generate materials&lt;br /&gt;
* Copy and convert materials&lt;br /&gt;
* Force tags from Source 3D models&#039; material names as submesh layer&lt;br /&gt;
&lt;br /&gt;
In the end, you should have something similar to this:&lt;br /&gt;
[[File:Hedgehog Converter Example.png|center|thumb|625x625px]]&lt;br /&gt;
Next, click the &#039;&#039;&#039;Convert&#039;&#039;&#039; button and wait.&lt;br /&gt;
{{Notice|type=warn|content=You should normally disable the &#039;&#039;&#039;Merge existing files&#039;&#039;&#039; option when creating a brand-new stage. However, if you&#039;re appending more terrain to a stage you&#039;ve already created, make sure to enable this option, otherwise, &#039;&#039;&#039;you may permanently lose any changes&#039;&#039;&#039; you&#039;ve previously made to your level. &#039;&#039;&#039;This action is irreversible&#039;&#039;&#039;, so proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
== Part 3 (Getting Missing Files) ==&lt;br /&gt;
Once the conversion is complete, you may need to add files that are missing from your stage. These are stored in the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive, located next to the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* For Green Hill Act 2, the archive will be named &amp;lt;code&amp;gt;#ghz200.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* For Windmill Isle Act 1 (Day), the archive will be named &amp;lt;code&amp;gt;#ActD_MykonosAct1.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive contains important data such as set data, stage settings, collision information, and more. &#039;&#039;&#039;Your level will not function correctly without it.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
When creating a brand-new stage in Sonic Generations, Hedgehog Converter &#039;&#039;&#039;does not&#039;&#039;&#039; generate the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. To get started quickly, you can copy this archive from the base game. For example, if you are replacing &#039;&#039;Green Hill Act 2&#039;&#039;, you can copy the &amp;lt;code&amp;gt;#ghz200.ar.00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#ghz200.arl&amp;lt;/code&amp;gt; files from the &amp;lt;code&amp;gt;disk/bb.cpk&amp;lt;/code&amp;gt; file (extracted using [[PackCpk]]) to your mod directory.&lt;br /&gt;
&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
When creating a brand-new stage in Sonic Unleashed, Hedgehog Converter &#039;&#039;&#039;will&#039;&#039;&#039; create the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. That&#039;s because unlike Sonic Generations, Sonic Unleashed expects terrain-related files to be stored here. However, you can&#039;t just copy the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive files from the base game into your mod, doing that will override your custom level and break it. Instead, you&#039;ll need to merge the base game files into your mod&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. You can use [[HedgeArcPack]] to unpack/pack the .ar.00 files.&lt;br /&gt;
&lt;br /&gt;
You need to copy the following file types from the base game&#039;s archive:&lt;br /&gt;
&lt;br /&gt;
* .xml&lt;br /&gt;
* .hkx&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;NOT&#039;&#039;&#039; copy the following, or your custom level will break completely:&lt;br /&gt;
&lt;br /&gt;
* .gil&lt;br /&gt;
* .gi-texture-group-info&lt;br /&gt;
* .light&lt;br /&gt;
* .light-list&lt;br /&gt;
* .terrain&lt;br /&gt;
* .terrain-group&lt;br /&gt;
* .tbst&lt;br /&gt;
&lt;br /&gt;
== Part 4 (SonicGLvl Basic Setup) ==&lt;br /&gt;
Next up, we need to do some very basic setup of your level&#039;s set data in [[SonicGLvl]]. Open the app, and open your stage&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive from there. Once the level has been imported into SonicGLvl, press Ctrl+A and then Delete. This will delete all the objects that are present in your level&#039;s set data, which are the original objects from the stage we are replacing. Now, find &amp;lt;code&amp;gt;&amp;quot;SonicSpawn&amp;quot;&amp;lt;/code&amp;gt; in the objects menu on the left, and place it anywhere you want. This will be where Sonic will spawn in your level. Also, be sure to set the &amp;quot;Active&amp;quot; property to &amp;quot;true&amp;quot; in the settings of the &amp;lt;code&amp;gt;&amp;quot;SonicSpawn&amp;quot;&amp;lt;/code&amp;gt; object.&lt;br /&gt;
[[File:SonicSpawn SonicGLvl.png|center|thumb]]&lt;br /&gt;
After that, go to &#039;&#039;&#039;File&#039;&#039;&#039; and press &#039;&#039;&#039;Save Stage Data&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Part 5 (Creating Skybox - Optional but Recommended) ==&lt;br /&gt;
Skyboxes are just regular .model files. Though not mandatory for the game to boot, they are recommended so that your level at least has a sky for you to look at. You can take these from the original levels or create one yourself.&lt;br /&gt;
&lt;br /&gt;
=== Making one yourself ===&lt;br /&gt;
Export your skybox model from Blender into an Assimp compatible file format. Then, using [[Model Converter]], drag and drop the model file onto the respective game&#039;s .bat file. This will generate the .model file, as well as material files. You will need to convert the textures of your skybox manually into the DDS format.&lt;br /&gt;
&lt;br /&gt;
=== Grabbing one from a level ===&lt;br /&gt;
&lt;br /&gt;
==== Sonic Generations ====&lt;br /&gt;
Go to the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; folder in bb/bb2, and open the folder corresponding to the level you want the skybox from. Then, extract the &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt; archive, and look for the sky&#039;s &amp;lt;code&amp;gt;.model&amp;lt;/code&amp;gt; file. The name should have something to do with &amp;quot;sky&amp;quot;. If you don&#039;t manage to find it, look at the stage&#039;s &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; file, as it will mention the skybox&#039;s model name there. You will need the .model file, the textures (&amp;lt;code&amp;gt;.dds&amp;lt;/code&amp;gt; files) and the materials of the sky model.&lt;br /&gt;
&lt;br /&gt;
=== Using the Skybox files ===&lt;br /&gt;
After getting the necessary skybox model files, place them inside your stage&#039;s resources file:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Packed/stageID/stage.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;StageID.ar.00&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Then, open &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; file of your stage, and open the respective &amp;lt;code&amp;gt;.stg.xml&amp;lt;/code&amp;gt; file: &lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; &lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to create a &amp;lt;code&amp;gt;Sky&amp;lt;/code&amp;gt; tag and write the name of the &amp;lt;code&amp;gt;.model&amp;lt;/code&amp;gt; file of your skybox, without the extension. Below is an example of how you should write this. In this example, the skybox has a model file named &amp;lt;code&amp;gt;MySkybox.model&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
    &amp;lt;Model&amp;gt;MySkybox&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If you boot your stage now, you&#039;ll notice that you will fall through the ground. This is because you only ported the terrain, and not the collision. To do this, follow the guide [[How To Import Custom Collision in Sonic Generations/Sonic Unleashed|here]].&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Import_Custom_Collision_in_Sonic_Generations/Sonic_Unleashed&amp;diff=568</id>
		<title>How To Import Custom Collision in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Import_Custom_Collision_in_Sonic_Generations/Sonic_Unleashed&amp;diff=568"/>
		<updated>2025-05-02T13:51:09Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
&lt;br /&gt;
* [[Havok Converter]]&lt;br /&gt;
* [https://www.blender.org Blender]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[SonicGLvl]]}}&lt;br /&gt;
&lt;br /&gt;
== Part 1 (Creating Collision in Blender) ==&lt;br /&gt;
You&#039;ll need a separate model for the collision, while it is possible to use your stage&#039;s model files as collision, we still recommend that you create a separate project or model for it. You can specify tags for your collision in Blender, these tags change the properties of the collision mesh in the game. You&#039;ll need a special &#039;&#039;&#039;ini&#039;&#039;&#039; file for [[Havok Converter]] to change these tags, which you can download [https://gist.github.com/TheExentist151/8e4896b807d49cd86ff2b643d34c7aa2 here]. To apply these tags to your collision model, you have to rename the individual meshes and add a &#039;&#039;&#039;@&#039;&#039;&#039; followed by the tag name, below is an example of how you can do this in case you want a mesh to have the &amp;quot;Stone&amp;quot; collision tag.[[File:Collision tag example blender.png|center|thumb|385x385px|Example of a collision tag in Blender]]&lt;br /&gt;
You can find all the available tags by opening [[Havok Converter]] after placing the mentioned &#039;&#039;&#039;ini&#039;&#039;&#039; file in the same folder as the executable. If you want to use the tags for Sonic Unleashed, you&#039;ll have to rename the &#039;&#039;&#039;ini&#039;&#039;&#039; file to &amp;lt;code&amp;gt;HavokConverter_Unleashed.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Part 2 (Converting Your Model Into a Collision File) ==&lt;br /&gt;
Open &amp;lt;code&amp;gt;HavokConverter.exe&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;HavokConverter_Unleashed.exe&amp;lt;/code&amp;gt; if you are converting for Sonic Unleashed), and fill in the following options:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Source 3D model files&#039;&#039;&#039; - Your collision model files&lt;br /&gt;
* &#039;&#039;&#039;Output file&#039;&#039;&#039; - Directory which will contain the converted collision (add &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; in the end of the name)&lt;br /&gt;
&lt;br /&gt;
[[File:Havok converter window.png|center|thumb|730x730px]]&lt;br /&gt;
Now you can click the &#039;&#039;&#039;Convert&#039;&#039;&#039; button and wait.&lt;br /&gt;
&lt;br /&gt;
== Part 3 (Importing Your Collision into the Game) ==&lt;br /&gt;
When the conversion process finishes, extract your custom stage&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; file, and place the generated &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; file there. Afterwards, open the respective &amp;lt;code&amp;gt;.stg.xml&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to edit the collision file information. This is mentioned in the &amp;lt;code&amp;gt;RigidBodyContainer&amp;lt;/code&amp;gt; tag. Change its value to your &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; filename, without the extension. Below is an example for a file name &amp;lt;code&amp;gt;MyCollision.phy.hkx&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;Terrain&amp;gt;&lt;br /&gt;
    &amp;lt;RigidBodyContainer&amp;gt;MyCollision&amp;lt;/RigidBodyContainer&amp;gt;&lt;br /&gt;
    &amp;lt;IsCollisionRender&amp;gt;false&amp;lt;/IsCollisionRender&amp;gt;&lt;br /&gt;
&amp;lt;/Terrain&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;Now re-pack this file and replace the original. After booting into the game, you should now notice that your level has working collision. If this is not the case, you can open your level in [[SonicGLvl]] and enable the collision mesh through the &#039;&#039;&#039;View&#039;&#039;&#039; menu to see how it got converted&#039;&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
{{Notice|type=warn|content=While repacking the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive carries no risks in Sonic Generations, it&#039;s very easy to accidentally pack outdated terrain info files in Sonic Unleashed. This can happen if you convert your stage using [[Hedgehog Converter]] but forget to unpack the updated &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive back into your already-extracted folder. As a result, outdated files can overwrite Hedgehog Converter&#039;s output, potentially breaking your level.&lt;br /&gt;
&lt;br /&gt;
To avoid this, it&#039;s highly recommended that you modify the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive by opening the level in [[SonicGLvl]], editing the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; folder inside SonicGLvl&#039;s cache, and saving your changes using &#039;&#039;&#039;Save Stage Data&#039;&#039;&#039;.}}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Import_Custom_Collision_in_Sonic_Generations/Sonic_Unleashed&amp;diff=567</id>
		<title>How To Import Custom Collision in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Import_Custom_Collision_in_Sonic_Generations/Sonic_Unleashed&amp;diff=567"/>
		<updated>2025-05-02T13:50:52Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
&lt;br /&gt;
* [[Havok Converter]]&lt;br /&gt;
* [https://www.blender.org Blender]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[SonicGLvl]]}}&lt;br /&gt;
&lt;br /&gt;
== Part 1 (Creating Collision in Blender) ==&lt;br /&gt;
You&#039;ll need a separate model for the collision, while it is possible to use your stage&#039;s model files as collision, we still recommend that you create a separate project or model for it. You can specify tags for your collision in Blender, these tags change the properties of the collision mesh in the game. You&#039;ll need a special &#039;&#039;&#039;ini&#039;&#039;&#039; file for [[Havok Converter]] to change these tags, which you can download [https://gist.github.com/TheExentist151/8e4896b807d49cd86ff2b643d34c7aa2 here]. To apply these tags to your collision model, you have to rename the individual meshes and add a &#039;&#039;&#039;@&#039;&#039;&#039; followed by the tag name. Below is an example of how you can do this, in case you want a mesh to have the &amp;quot;Stone&amp;quot; collision tag.[[File:Collision tag example blender.png|center|thumb|385x385px|Example of a collision tag in Blender]]&lt;br /&gt;
You can find all the available tags by opening [[Havok Converter]] after placing the mentioned &#039;&#039;&#039;ini&#039;&#039;&#039; file in the same folder as the executable. If you want to use the tags for Sonic Unleashed, you&#039;ll have to rename the &#039;&#039;&#039;ini&#039;&#039;&#039; file to &amp;lt;code&amp;gt;HavokConverter_Unleashed.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Part 2 (Converting Your Model Into a Collision File) ==&lt;br /&gt;
Open &amp;lt;code&amp;gt;HavokConverter.exe&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;HavokConverter_Unleashed.exe&amp;lt;/code&amp;gt; if you are converting for Sonic Unleashed), and fill in the following options:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Source 3D model files&#039;&#039;&#039; - Your collision model files&lt;br /&gt;
* &#039;&#039;&#039;Output file&#039;&#039;&#039; - Directory which will contain the converted collision (add &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; in the end of the name)&lt;br /&gt;
&lt;br /&gt;
[[File:Havok converter window.png|center|thumb|730x730px]]&lt;br /&gt;
Now you can click the &#039;&#039;&#039;Convert&#039;&#039;&#039; button and wait.&lt;br /&gt;
&lt;br /&gt;
== Part 3 (Importing Your Collision into the Game) ==&lt;br /&gt;
When the conversion process finishes, extract your custom stage&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; file, and place the generated &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; file there. Afterwards, open the respective &amp;lt;code&amp;gt;.stg.xml&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to edit the collision file information. This is mentioned in the &amp;lt;code&amp;gt;RigidBodyContainer&amp;lt;/code&amp;gt; tag. Change its value to your &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; filename, without the extension. Below is an example for a file name &amp;lt;code&amp;gt;MyCollision.phy.hkx&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;Terrain&amp;gt;&lt;br /&gt;
    &amp;lt;RigidBodyContainer&amp;gt;MyCollision&amp;lt;/RigidBodyContainer&amp;gt;&lt;br /&gt;
    &amp;lt;IsCollisionRender&amp;gt;false&amp;lt;/IsCollisionRender&amp;gt;&lt;br /&gt;
&amp;lt;/Terrain&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;Now re-pack this file and replace the original. After booting into the game, you should now notice that your level has working collision. If this is not the case, you can open your level in [[SonicGLvl]] and enable the collision mesh through the &#039;&#039;&#039;View&#039;&#039;&#039; menu to see how it got converted&#039;&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
{{Notice|type=warn|content=While repacking the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive carries no risks in Sonic Generations, it&#039;s very easy to accidentally pack outdated terrain info files in Sonic Unleashed. This can happen if you convert your stage using [[Hedgehog Converter]] but forget to unpack the updated &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive back into your already-extracted folder. As a result, outdated files can overwrite Hedgehog Converter&#039;s output, potentially breaking your level.&lt;br /&gt;
&lt;br /&gt;
To avoid this, it&#039;s highly recommended that you modify the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive by opening the level in [[SonicGLvl]], editing the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; folder inside SonicGLvl&#039;s cache, and saving your changes using &#039;&#039;&#039;Save Stage Data&#039;&#039;&#039;.}}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Import_Custom_Collision_in_Sonic_Generations/Sonic_Unleashed&amp;diff=565</id>
		<title>How To Import Custom Collision in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Import_Custom_Collision_in_Sonic_Generations/Sonic_Unleashed&amp;diff=565"/>
		<updated>2025-05-02T13:49:24Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Wording changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
&lt;br /&gt;
* [[Havok Converter]]&lt;br /&gt;
* [https://www.blender.org Blender]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[SonicGLvl]]}}&lt;br /&gt;
&lt;br /&gt;
== Part 1 (Creating Collision in Blender) ==&lt;br /&gt;
You&#039;ll need a separate model for the collision, while it is possible to use your stage&#039;s model files as collision, we still recommend that you create a separate project or model for it. You can specify tags for your collision from Blender, these tags change the properties of the collision mesh in the game. You&#039;ll need a special &#039;&#039;&#039;ini&#039;&#039;&#039; file for [[Havok Converter]] to change these tags, which you can download [https://gist.github.com/TheExentist151/8e4896b807d49cd86ff2b643d34c7aa2 here]. To apply these tags to your collision model, you have to rename the individual meshes and add a &#039;&#039;&#039;@&#039;&#039;&#039; followed by the tag name. Below is an example of how you can do this, in case you want a mesh to have the &amp;quot;Stone&amp;quot; collision tag.[[File:Collision tag example blender.png|center|thumb|385x385px|Example of a collision tag in Blender]]&lt;br /&gt;
You can find all the available tags by opening [[Havok Converter]] after placing the mentioned &#039;&#039;&#039;ini&#039;&#039;&#039; file in the same folder as the executable. If you want to use the tags for Sonic Unleashed, you&#039;ll have to rename the &#039;&#039;&#039;ini&#039;&#039;&#039; file to &amp;lt;code&amp;gt;HavokConverter_Unleashed.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Part 2 (Converting Your Model Into a Collision File) ==&lt;br /&gt;
Open &amp;lt;code&amp;gt;HavokConverter.exe&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;HavokConverter_Unleashed.exe&amp;lt;/code&amp;gt; if you are converting for Sonic Unleashed), and fill in the following options:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Source 3D model files&#039;&#039;&#039; - Your collision model files&lt;br /&gt;
* &#039;&#039;&#039;Output file&#039;&#039;&#039; - Directory which will contain the converted collision (add &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; in the end of the name)&lt;br /&gt;
&lt;br /&gt;
[[File:Havok converter window.png|center|thumb|730x730px]]&lt;br /&gt;
Now you can click the &#039;&#039;&#039;Convert&#039;&#039;&#039; button and wait.&lt;br /&gt;
&lt;br /&gt;
== Part 3 (Importing Your Collision into the Game) ==&lt;br /&gt;
When the conversion process finishes, extract your custom stage&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; file, and place the generated &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; file there. Afterwards, open the respective &amp;lt;code&amp;gt;.stg.xml&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to edit the collision file information. This is mentioned in the &amp;lt;code&amp;gt;RigidBodyContainer&amp;lt;/code&amp;gt; tag. Change its value to your &amp;lt;code&amp;gt;.phy.hkx&amp;lt;/code&amp;gt; filename, without the extension. Below is an example for a file name &amp;lt;code&amp;gt;MyCollision.phy.hkx&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;Terrain&amp;gt;&lt;br /&gt;
    &amp;lt;RigidBodyContainer&amp;gt;MyCollision&amp;lt;/RigidBodyContainer&amp;gt;&lt;br /&gt;
    &amp;lt;IsCollisionRender&amp;gt;false&amp;lt;/IsCollisionRender&amp;gt;&lt;br /&gt;
&amp;lt;/Terrain&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;Now re-pack this file and replace the original. After booting into the game, you should now notice that your level has working collision. If this is not the case, you can open your level in [[SonicGLvl]] and enable the collision mesh through the &#039;&#039;&#039;View&#039;&#039;&#039; menu to see how it got converted&#039;&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
{{Notice|type=warn|content=While repacking the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive carries no risks in Sonic Generations, it&#039;s very easy to accidentally pack outdated terrain info files in Sonic Unleashed. This can happen if you convert your stage using [[Hedgehog Converter]] but forget to unpack the updated &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive back into your already-extracted folder. As a result, outdated files can overwrite Hedgehog Converter&#039;s output, potentially breaking your level.&lt;br /&gt;
&lt;br /&gt;
To avoid this, it&#039;s highly recommended that you modify the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive by opening the level in [[SonicGLvl]], editing the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; folder inside SonicGLvl&#039;s cache, and saving your changes using &#039;&#039;&#039;Save Stage Data&#039;&#039;&#039;.}}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Import_Custom_Terrain_in_Sonic_Generations/Sonic_Unleashed&amp;diff=563</id>
		<title>How To Import Custom Terrain in Sonic Generations/Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Import_Custom_Terrain_in_Sonic_Generations/Sonic_Unleashed&amp;diff=563"/>
		<updated>2025-05-02T13:40:26Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Slight formatting changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
* [[SonicGLvl]]&lt;br /&gt;
* [[Hedgehog Converter]]&lt;br /&gt;
* [https://www.blender.org Blender]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[PackCpk]]&lt;br /&gt;
* [[Model Converter]]&lt;br /&gt;
You can use a different 3D software of your choice as long as you export to a format that Hedgehog Converter supports.}}&lt;br /&gt;
&lt;br /&gt;
== Part 1 (Creating Terrain in Blender) ==&lt;br /&gt;
First of all, you need terrain for your level. You can do the terrain yourself, or take already created terrain. If your level contains transparent materials you need to add a proper layer tag to it. For transparency, you have two available layers, and you should pick the one that&#039;s best suited for your use case in order to avoid issues.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Layers&lt;br /&gt;
!Usage&lt;br /&gt;
|-&lt;br /&gt;
|punch&lt;br /&gt;
|Used for materials which have binary transparency (one part is 100% opaque, another is 100% transparent). Useful for most kinds of textures, like leaves or grass&lt;br /&gt;
|-&lt;br /&gt;
|trans&lt;br /&gt;
|Used for translucent materials, as in, materials which are not 100% opaque but also not 100% transparent (ex. windows)&lt;br /&gt;
|}&lt;br /&gt;
In order to specify a layer for a material, use the &amp;lt;code&amp;gt;@LYR&amp;lt;/code&amp;gt; prefix, with the layer name between parenthesis after it.&lt;br /&gt;
[[File:Transparent material example terrain import generations.png|center|thumb|357x357px|Example of a transparent material in Blender]]&lt;br /&gt;
You can then export your terrain from Blender into an Assimp compatible format (FBX, DAE, GLTF or OBJ work). When exporting FBX, make sure to set &#039;&#039;&#039;Apply Scalings&#039;&#039;&#039; to &#039;&#039;&#039;FBX Units Scale&#039;&#039;&#039;, otherwise your level is going to appear 100x larger in-game.[[File:Blender FBX Units Scale.png|center|thumb|FBX Units Scale in FBX exporter window.]]&lt;br /&gt;
&lt;br /&gt;
== Part 2 (Importing the Level to the Game) ==&lt;br /&gt;
Download [[Hedgehog Converter]] and run &amp;lt;code&amp;gt;bin/HedgehogConverter.exe&amp;lt;/code&amp;gt;. Fill in the following fields:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Game engine&#039;&#039;&#039; - The game you are converting for&lt;br /&gt;
* &#039;&#039;&#039;Source 3D model files&#039;&#039;&#039; - Your terrain model files&lt;br /&gt;
* &#039;&#039;&#039;Source textures directory&#039;&#039;&#039; - The directory containing the texture files for your terrain&lt;br /&gt;
* &#039;&#039;&#039;Terrain output directory&#039;&#039;&#039; - The directory that will contain the converted terrain&lt;br /&gt;
* &#039;&#039;&#039;Merge with existing files&#039;&#039;&#039; - Turn this off as we are creating a brand new stage&lt;br /&gt;
&lt;br /&gt;
Make sure to create a folder inside the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; directory, named according to your stage.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* For Green Hill Act 2, use the folder name &amp;lt;code&amp;gt;ghz200&amp;lt;/code&amp;gt;&lt;br /&gt;
* For Windmill Isle Act 1 (Day), use the folder name &amp;lt;code&amp;gt;ActD_MykonosAct1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can refer to the [[Sonic Generations Stage IDs]] or [[Sonic Unleashed Stage IDs]] pages to find the ID of the stage you are going to replace.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended to first set up a mod and create these folders within it. If you&#039;ve set up the folder structure correctly and browsed to it, the &#039;&#039;&#039;Terrain output directory&#039;&#039;&#039; should show something like the following examples:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;D:\Steam\steamapps\common\Sonic Generations\mods\MyStageMod\disk\bb\Packed\ghz200&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;C:\Games\UnleashedRecomp\mods\MyStageMod\Packed\ActD_MykonosAct1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to also turn on the following options under &#039;&#039;&#039;Materials&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Generate materials&lt;br /&gt;
* Copy and convert materials&lt;br /&gt;
* Force tags from Source 3D models&#039; material names as submesh layer&lt;br /&gt;
&lt;br /&gt;
In the end, you should have something similar to this:&lt;br /&gt;
[[File:Hedgehog Converter Example.png|center|thumb|625x625px]]&lt;br /&gt;
Next, click the &#039;&#039;&#039;Convert&#039;&#039;&#039; button and wait.&lt;br /&gt;
{{Notice|type=warn|content=You should normally disable the &#039;&#039;&#039;Merge existing files&#039;&#039;&#039; option when creating a brand-new stage. However, if you&#039;re appending more terrain to a stage you&#039;ve already created, make sure to enable this option, otherwise, &#039;&#039;&#039;you may permanently lose any changes&#039;&#039;&#039; you&#039;ve previously made to your level. &#039;&#039;&#039;This action is irreversible&#039;&#039;&#039;, so proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
== Part 3 (Getting Missing Files) ==&lt;br /&gt;
Once the conversion is complete, you may need to add files that are missing from your stage. These are stored in the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive, located next to the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* For Green Hill Act 2, the archive will be named &amp;lt;code&amp;gt;#ghz200.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* For Windmill Isle Act 1 (Day), the archive will be named &amp;lt;code&amp;gt;#ActD_MykonosAct1.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive contains important data such as set data, stage settings, collision information, and more. &#039;&#039;&#039;Your level will not function correctly without it.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Sonic Generations ===&lt;br /&gt;
When creating a brand-new stage in Sonic Generations, Hedgehog Converter &#039;&#039;&#039;does not&#039;&#039;&#039; generate the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. To get started quickly, you can copy this archive from the base game. For example, if you are replacing &#039;&#039;Green Hill Act 2&#039;&#039;, you can copy the &amp;lt;code&amp;gt;#ghz200.ar.00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#ghz200.arl&amp;lt;/code&amp;gt; files from the &amp;lt;code&amp;gt;disk/bb.cpk&amp;lt;/code&amp;gt; file (extracted using [[PackCpk]]) to your mod directory.&lt;br /&gt;
&lt;br /&gt;
=== Sonic Unleashed ===&lt;br /&gt;
When creating a brand-new stage in Sonic Unleashed, Hedgehog Converter &#039;&#039;&#039;will&#039;&#039;&#039; create the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. That&#039;s because unlike Sonic Generations, Sonic Unleashed expects terrain-related files to be stored here. However, you can&#039;t just copy the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive files from the base game into your mod, doing that will override your custom level and break it. Instead, you&#039;ll need to merge the base game files into your mod&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive. You can use [[HedgeArcPack]] to unpack/pack the .ar.00 files.&lt;br /&gt;
&lt;br /&gt;
You can copy these file types from the base game&#039;s archive:&lt;br /&gt;
&lt;br /&gt;
* .xml&lt;br /&gt;
* .hkx&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;NOT&#039;&#039;&#039; copy the following, or your custom level will break completely:&lt;br /&gt;
&lt;br /&gt;
* .gil&lt;br /&gt;
* .gi-texture-group-info&lt;br /&gt;
* .light&lt;br /&gt;
* .light-list&lt;br /&gt;
* .terrain&lt;br /&gt;
* .terrain-group&lt;br /&gt;
* .tbst&lt;br /&gt;
&lt;br /&gt;
== Part 4 (SonicGLvl Basic Setup) ==&lt;br /&gt;
Next up, we need to do some very basic setup of your level&#039;s set data in [[SonicGLvl]]. Open the app, and open your stage&#039;s &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; archive from there. Once the level has been imported into SonicGLvl, press Ctrl+A and then Delete. This will delete all the objects that are present in your level&#039;s set data, which are the original objects from the stage we are replacing. Now, find &amp;lt;code&amp;gt;&amp;quot;SonicSpawn&amp;quot;&amp;lt;/code&amp;gt; in the objects menu on the left, and place it anywhere you want. This will be where Sonic will spawn in your level. Also, be sure to set the &amp;quot;Active&amp;quot; property to &amp;quot;true&amp;quot; in the settings of the &amp;lt;code&amp;gt;&amp;quot;SonicSpawn&amp;quot;&amp;lt;/code&amp;gt; object.&lt;br /&gt;
[[File:SonicSpawn SonicGLvl.png|center|thumb]]&lt;br /&gt;
After that, go to &#039;&#039;&#039;File&#039;&#039;&#039; and press &#039;&#039;&#039;Save Stage Data&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Part 5 (Creating Skybox - Optional but Recommended) ==&lt;br /&gt;
Skyboxes are just regular .model files. Though not mandatory for the game to boot, they are recommended so that your level at least has a sky for you to look at. You can take these from the original levels or create one yourself.&lt;br /&gt;
&lt;br /&gt;
=== Making one yourself ===&lt;br /&gt;
Export your skybox model from Blender into an Assimp compatible file format. Then, using [[Model Converter]], drag and drop the model file onto the respective game&#039;s .bat file. This will generate the .model file, as well as material files. You will need to convert the textures of your skybox manually into the DDS format.&lt;br /&gt;
&lt;br /&gt;
=== Grabbing one from a level ===&lt;br /&gt;
&lt;br /&gt;
==== Sonic Generations ====&lt;br /&gt;
Go to the &amp;lt;code&amp;gt;Packed&amp;lt;/code&amp;gt; folder in bb/bb2, and open the folder corresponding to the level you want the skybox from. Then, extract the &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt; archive, and look for the sky&#039;s &amp;lt;code&amp;gt;.model&amp;lt;/code&amp;gt; file. The name should have something to do with &amp;quot;sky&amp;quot;. If you don&#039;t manage to find it, look at the stage&#039;s &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; file, as it will mention the skybox&#039;s model name there. You will need the .model file, the textures (&amp;lt;code&amp;gt;.dds&amp;lt;/code&amp;gt; files) and the materials of the sky model.&lt;br /&gt;
&lt;br /&gt;
=== Using the Skybox files ===&lt;br /&gt;
After getting the necessary skybox model files, place them inside your stage&#039;s resources file:&lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Packed/stageID/stage.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;StageID.ar.00&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Then, open &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; file of your stage, and open the respective &amp;lt;code&amp;gt;.stg.xml&amp;lt;/code&amp;gt; file: &lt;br /&gt;
&lt;br /&gt;
* Sonic Generations: &amp;lt;code&amp;gt;Terrain.stg.xml&amp;lt;/code&amp;gt; &lt;br /&gt;
* Sonic Unleashed: &amp;lt;code&amp;gt;Stage.stg.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to create a &amp;lt;code&amp;gt;Sky&amp;lt;/code&amp;gt; tag and write the name of the &amp;lt;code&amp;gt;.model&amp;lt;/code&amp;gt; file of your skybox, without the extension. Below is an example of how you should write this. In this example, the skybox has a model file named &amp;lt;code&amp;gt;MySkybox.model&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
    &amp;lt;Model&amp;gt;MySkybox&amp;lt;/Model&amp;gt;&lt;br /&gt;
&amp;lt;Sky&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If you boot your stage now, you&#039;ll notice that you will fall through the ground. This is because you only ported the terrain, and not the collision. To do this, follow the guide [[How To Import Custom Collision in Sonic Generations/Sonic Unleashed|here]].&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Use_Sonic_GLvl_with_Sonic_Unleashed&amp;diff=561</id>
		<title>How To Use Sonic GLvl with Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Use_Sonic_GLvl_with_Sonic_Unleashed&amp;diff=561"/>
		<updated>2025-05-02T13:33:03Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Formatting consistency changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=note|content=This guide covers how to setup Sonic Unleashed Xbox 360 levels in GLvl, but does not cover how to use this tool or how to set it up for PS3 levels. It&#039;s recommended that you also read the [[How To Use Sonic GLvl with Sonic Generations|Sonic Generations GLvl guide]].}}{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
* [[SonicGLvl|SonicGLvl]]}}&lt;br /&gt;
&lt;br /&gt;
The latest [[SonicGLvl]] can now open Sonic Unleashed levels without needing to decompress any archive or move around files. Open a level through &#039;&#039;&#039;&amp;quot;File &amp;gt; Open Level&amp;quot;&#039;&#039;&#039; and select the # archive of a level of your choice. Refer to the [[Sonic Unleashed Stage IDs|Stage IDs]] page to find the level that you need.&lt;br /&gt;
&lt;br /&gt;
== Setting Up Shaders ==&lt;br /&gt;
To display the level with game-accurate graphics, you need to copy the &#039;&#039;&#039;&amp;quot;shader.ar&amp;quot;&#039;&#039;&#039; file from your game installation to SonicGLvl&#039;s &#039;&#039;&#039;&amp;quot;database/shaders&amp;quot;&#039;&#039;&#039; folder. SonicGLvl will warn you about this if you have not done this step.&lt;br /&gt;
&lt;br /&gt;
== Copying Files To Your Mod ==&lt;br /&gt;
If you open a level directly from the game files, you have the risk of corrupting your installation when you save your changes. It&#039;s recommended to first copy the files to a mod, and open the level from your mod directory. As an example, the files you need to copy for Windmill Isle Act 2 (Day) are as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Packed/ActD_MykonosAct2/Stage.pfd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#ActD_MykonosAct2.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#ActD_MykonosAct2.arl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ActD_MykonosAct2.ar.00&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ActD_MykonosAct2.arl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The stage ID and the amount of AR files you need to copy will vary between levels.&lt;br /&gt;
&lt;br /&gt;
== Missing Textures ==&lt;br /&gt;
Sonic Unleashed stores stage textures in different archives to share them between levels and save space. If you open a level from your game directory, SonicGLvl will automatically extract them to its &#039;&#039;&#039;&amp;quot;cache/country_name/slot_resources&amp;quot;&#039;&#039;&#039; folder.&lt;br /&gt;
&lt;br /&gt;
However, if you open the level from a DLC or your mod files, and not copy over these archives, SonicGLvl won&#039;t be able to find the textures. To solve this, you can first open a level from the respective country region from the base game folder, then re-open the level from your DLC or mod directory.&lt;br /&gt;
&lt;br /&gt;
As an example, for Apotos, the common texture archives are named as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CmnActD_Terrain_Mykonos&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CmnActN_Terrain_Mykonos&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CmnMykonos&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Missing Models ==&lt;br /&gt;
SonicGLvl does not come with the game assets, so objects are going to appear as cubes. To solve this, you need to extract the relevant AR files to SonicGLvl&#039;s &amp;quot;database/resources&amp;quot; folder. Most required assets are stored in &amp;lt;code&amp;gt;SonicActionCommon/EvilActionCommon&amp;lt;/code&amp;gt; archives in the base game.&lt;br /&gt;
&lt;br /&gt;
If you are unable to find the model for an object, you can open the corresponding object template from &amp;quot;database/objects&amp;quot; folder, and look for an Extra parameter with model as the type:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;Extra type=&amp;quot;model&amp;quot; name=&amp;quot;cmn_obj_sk2_hintring.model&amp;quot; /&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;In this example, the HintRing object uses the &amp;lt;code&amp;gt;cmn_obj_sk2_hintring.model&amp;lt;/code&amp;gt; file. You can then search for this file name in the [https://raw.githubusercontent.com/blueskythlikesclouds/SkythTools/refs/heads/master/Sonic%20Unleashed/File%20Index.txt Sonic Unleashed File Index] to find the archive it&#039;s stored in, and extract it.&lt;br /&gt;
{{Notice|type=warn|content=If you extract SonicActionCommon_Petra, a material file with invalid characters in its file name is going to crash SonicGLvl! Make sure to remove the faulty file to make it work: ptr_sk_dart01__NSP_CMN_ChaoTexSpecNrmTanVC____NPR_XB_������__.material}}{{Notice|type=warn|content=Some Sonic Unleashed object templates are currently incorrectly configured to load Sonic Generations model names. If you have the 2011 version of Sonic Generations installed, you can extract cmn100/cmn200 to the resources folder as a temporary workaround.}}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=How_To_Use_Sonic_GLvl_with_Sonic_Unleashed&amp;diff=560</id>
		<title>How To Use Sonic GLvl with Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=How_To_Use_Sonic_GLvl_with_Sonic_Unleashed&amp;diff=560"/>
		<updated>2025-05-02T13:30:05Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Slight wording changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=note|content=This guide covers how to setup Sonic Unleashed Xbox 360 levels in GLvl, but does not cover how to use this tool or how to set it up for PS3 levels. It&#039;s recommended that you also read the [[How To Use Sonic GLvl with Sonic Generations|Sonic Generations GLvl guide]].}}{{Notice|type=info|content=This guide uses the following tools:&lt;br /&gt;
* [[SonicGLvl|SonicGLvl]]}}&lt;br /&gt;
&lt;br /&gt;
The latest [[SonicGLvl]] can now open Sonic Unleashed levels without needing to decompress any archive or move around files. Open a level through &#039;&#039;&#039;&amp;quot;File &amp;gt; Open Level&amp;quot;&#039;&#039;&#039; and select the # archive of a level of your choice. Refer to the [[Sonic Unleashed Stage IDs|Stage IDs]] page to find the level that you need.&lt;br /&gt;
&lt;br /&gt;
== Setting Up Shaders ==&lt;br /&gt;
To display the level with game-accurate graphics, you need to copy the &amp;quot;shader.ar&amp;quot; file from your game installation to SonicGLvl&#039;s &amp;quot;database/shaders&amp;quot; folder. SonicGLvl will warn you about this if you have not done this step.&lt;br /&gt;
&lt;br /&gt;
== Copying Files To Your Mod ==&lt;br /&gt;
If you open a level directly from the game files, you have the risk of corrupting your installation when you save your changes. It&#039;s recommended to first copy the files to a mod, and open the level from your mod directory. As an example, the files you need to copy for Windmill Isle Act 2 (Day) are as follows:&lt;br /&gt;
&lt;br /&gt;
* Packed/ActD_MykonosAct2/Stage.pfd&lt;br /&gt;
* #ActD_MykonosAct2.ar.00&lt;br /&gt;
* #ActD_MykonosAct2.arl&lt;br /&gt;
* ActD_MykonosAct2.ar.00&lt;br /&gt;
* ActD_MykonosAct2.arl&lt;br /&gt;
&lt;br /&gt;
The stage ID and the amount of AR files you need to copy will vary between levels.&lt;br /&gt;
&lt;br /&gt;
== Missing Textures ==&lt;br /&gt;
Sonic Unleashed stores stage textures in different archives to share them between levels and save space. If you open a level from your game directory, SonicGLvl will automatically extract them to its &amp;quot;cache/country_name/slot_resources&amp;quot; folder.&lt;br /&gt;
&lt;br /&gt;
However, if you open the level from a DLC or your mod files, and not copy over these archives, SonicGLvl won&#039;t be able to find the textures. To solve this, you can first open a level from the respective country region from the base game folder, then re-open the level from your DLC or mod directory.&lt;br /&gt;
&lt;br /&gt;
As an example, for Apotos, the common texture archives are named as follows:&lt;br /&gt;
&lt;br /&gt;
* CmnActD_Terrain_Mykonos&lt;br /&gt;
* CmnActN_Terrain_Mykonos&lt;br /&gt;
* CmnMykonos&lt;br /&gt;
&lt;br /&gt;
== Missing Models ==&lt;br /&gt;
SonicGLvl does not come with the game assets, so objects are going to appear as cubes. To solve this, you need to extract the relevant AR files to SonicGLvl&#039;s &amp;quot;database/resources&amp;quot; folder. Most required assets are stored in SonicActionCommon/EvilActionCommon archives in the base game.&lt;br /&gt;
&lt;br /&gt;
If you are unable to find the model for an object, you can open the corresponding object template from &amp;quot;database/objects&amp;quot; folder, and look for an Extra parameter with model as the type:&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;Extra type=&amp;quot;model&amp;quot; name=&amp;quot;cmn_obj_sk2_hintring.model&amp;quot; /&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;In this example, the HintRing object uses the &amp;lt;code&amp;gt;cmn_obj_sk2_hintring.model&amp;lt;/code&amp;gt; file. You can then search for this file name in the [https://raw.githubusercontent.com/blueskythlikesclouds/SkythTools/refs/heads/master/Sonic%20Unleashed/File%20Index.txt Sonic Unleashed File Index] to find the archive it&#039;s stored in, and extract it.&lt;br /&gt;
{{Notice|type=warn|content=If you extract SonicActionCommon_Petra, a material file with invalid characters in its file name is going to crash SonicGLvl! Make sure to remove the faulty file to make it work: ptr_sk_dart01__NSP_CMN_ChaoTexSpecNrmTanVC____NPR_XB_������__.material}}{{Notice|type=warn|content=Some Sonic Unleashed object templates are currently incorrectly configured to load Sonic Generations model names. If you have the 2011 version of Sonic Generations installed, you can extract cmn100/cmn200 to the resources folder as a temporary workaround.}}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Ar0pack-ar0unpack&amp;diff=549</id>
		<title>Ar0pack-ar0unpack</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Ar0pack-ar0unpack&amp;diff=549"/>
		<updated>2025-04-30T14:39:39Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Notice|type=warn|content=This tool cannot extract Xbox compressed archives. For such archives, please use the latest version of [[HedgeArcPack]] instead.}}{{ToolInfobox|title=ar0pack|author=Skyth|website=https://github.com/blueskythlikesclouds/SkythTools|download=https://github.com/blueskythlikesclouds/SkythTools/blob/master/Sonic%20Generations/ar0pack.exe}}&lt;br /&gt;
{{ToolInfobox|title=ar0unpack|author=Skyth|website=https://github.com/blueskythlikesclouds/SkythTools|download=https://github.com/blueskythlikesclouds/SkythTools/blob/master/Sonic%20Generations/ar0unpack.exe}}&lt;br /&gt;
&#039;&#039;&#039;ar0pack&#039;&#039;&#039; and &#039;&#039;&#039;ar0unpack&#039;&#039;&#039; are SkythTools tools designed to pack and extract &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt; files from Sonic Unleashed and Sonic Generations. To use them, drag a file ending with &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ar.00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;.pfd&amp;lt;/code&amp;gt;. Please note however that ar0pack cannot repack .pfd files. For that, use [[pfdpack]] or [[pfdpackUnleashed]].&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed_Stage_IDs&amp;diff=494</id>
		<title>Sonic Unleashed Stage IDs</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed_Stage_IDs&amp;diff=494"/>
		<updated>2025-04-16T19:47:41Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Fixed mistake with geometry id in act 2-2 of holoska&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains a list of all the Stage IDs&amp;lt;ref&amp;gt;Credits to archxe and Hedgeturd for making a list of all the stage IDs!&amp;lt;/ref&amp;gt; used in Sonic Unleashed. Stages don&#039;t follow a strict format, but they&#039;re generally like this:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Act{Day/Night}_{country}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Notice|type=note|content=The tables are divided into 4 columns, the &amp;quot;Stage&amp;quot; is the name of the stage, the &amp;quot;ID&amp;quot; is the name of the #archive, and the &amp;quot;Geometry ID&amp;quot; is the archive the stage uses for the actual terrain, if it is blank then it means that the terrain archive it uses has the same name as the ID.}}&lt;br /&gt;
== Daytime ==&lt;br /&gt;
&lt;br /&gt;
=== Apotos ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1&lt;br /&gt;
|ActD_MykonosAct1 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-2&lt;br /&gt;
|ActD_SubMykonos_04 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_MykonosAct1 &lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2&lt;br /&gt;
|ActD_MykonosAct2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2-2&lt;br /&gt;
|ActD_SubMykonos_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_MykonosAct2&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 3&lt;br /&gt;
|ActD_SubMykonos_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 4&lt;br /&gt;
|ActD_SubMykonos_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Mykonos&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_MykonosETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mazuri ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1&lt;br /&gt;
|ActD_Africa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1-2&lt;br /&gt;
|ActD_SubAfrica_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Africa&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 2&lt;br /&gt;
|ActD_SubAfrica_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3&lt;br /&gt;
|ActD_SubAfrica_03&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3-2&lt;br /&gt;
|ActD_SubAfrica_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubAfrica_03&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 4&lt;br /&gt;
|ActD_SubAfrica_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 5&lt;br /&gt;
|ActD_SubAfrica_04&lt;br /&gt;
|X&lt;br /&gt;
|BossEggBeetle&lt;br /&gt;
|-&lt;br /&gt;
|Egg Beetle&lt;br /&gt;
|BossEggBeetle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Africa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_AfricaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spagonia ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1&lt;br /&gt;
|ActD_EU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1-2&lt;br /&gt;
|ActD_SubEU_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_EU&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2&lt;br /&gt;
|ActD_SubEU_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2-2&lt;br /&gt;
|ActD_SubEU_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubEU_01&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 3&lt;br /&gt;
|ActD_SubEU_02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 4 &lt;br /&gt;
|ActD_SubEU_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 5&lt;br /&gt;
|ActD_SubEU_04&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Devil Ray&lt;br /&gt;
|BossEggRayBird&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tornado Defence Act 1&lt;br /&gt;
|ExStageTails1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EuropeanCity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_EuropeanCityETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_EULabo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chun-Nan ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1&lt;br /&gt;
|ActD_China &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1-2&lt;br /&gt;
|ActD_SubChina_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_China&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2-2&lt;br /&gt;
|ActD_SubChina_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 3&lt;br /&gt;
|ActD_SubChina_04&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 4&lt;br /&gt;
|ActD_SubChina_01 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 5&lt;br /&gt;
|ActD_SubChina_02 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_China&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_ChinaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Holoska ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1&lt;br /&gt;
|ActD_Snow&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1-2&lt;br /&gt;
|ActD_SubSnow_04 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_Snow&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2&lt;br /&gt;
|ActD_SubSnow_01 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2-2&lt;br /&gt;
|ActD_SubSnow_05 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubSnow_01 &lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 3&lt;br /&gt;
|ActD_SubSnow_02 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 4&lt;br /&gt;
|ActD_SubSnow_03 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Snow&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SnowETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shamar ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1&lt;br /&gt;
|ActD_Petra &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1-2&lt;br /&gt;
|ActD_SubPetra_04&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Petra&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 2&lt;br /&gt;
|ActD_SubPetra_03&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 3&lt;br /&gt;
|ActD_SubPetra_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_PetraCapital&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_PetraCapitalETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_PetraLabo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Empire City ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1&lt;br /&gt;
|ActD_NY&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1-2&lt;br /&gt;
|ActD_SubNY_03&lt;br /&gt;
|X&lt;br /&gt;
|ActD_NY&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 2&lt;br /&gt;
|ActD_SubNY_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 3&lt;br /&gt;
|ActD_SubNY_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_NYCity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_NYCityETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adabat ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1&lt;br /&gt;
|ActD_Beach &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1-2&lt;br /&gt;
|ActD_SubBeach_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Beach &lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 2&lt;br /&gt;
|ActD_SubBeach_02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 3&lt;br /&gt;
|ActD_SubBeach_04&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 4&lt;br /&gt;
|ActD_SubBeach_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 5&lt;br /&gt;
|ActD_SubBeach_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Lancer&lt;br /&gt;
|BossEggLancer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_SouthEastAsia&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SouthEastAsiaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Night ==&lt;br /&gt;
&lt;br /&gt;
=== Apotos ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-2&lt;br /&gt;
|ActN_SubMykonos_03 &lt;br /&gt;
|X&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-3&lt;br /&gt;
|ActN_SubMykonos_04&lt;br /&gt;
|X&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2&lt;br /&gt;
|ActN_SubMykonos_01 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Mykonos_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_MykonosETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mazuri ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1&lt;br /&gt;
|ActN_AfricaEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 2&lt;br /&gt;
|ActN_SubAfrica_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3&lt;br /&gt;
|ActN_SubAfrica_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 4&lt;br /&gt;
|ActN_SubAfrica_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Africa_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_AfricaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spagonia ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1&lt;br /&gt;
|ActN_EUEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1-2&lt;br /&gt;
|ActN_SubEU_02&lt;br /&gt;
|X&lt;br /&gt;
|ActN_EUEvil &lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2&lt;br /&gt;
|ActN_SubEU_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EuropeanCity_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_EuropeanCityETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_EULabo_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chun-Nan ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1&lt;br /&gt;
|ActN_ChinaEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1-2&lt;br /&gt;
|ActN_SubChina_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_ChinaEvil&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2&lt;br /&gt;
|ActN_SubChina_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 3&lt;br /&gt;
|ActN_SubChina_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Phoenix&lt;br /&gt;
|BossPhoenix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_China_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_ChinaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Holoska ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1&lt;br /&gt;
|ActN_SnowEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2&lt;br /&gt;
|ActN_SubSnow_01 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 3&lt;br /&gt;
|ActN_SubSnow_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Moray&lt;br /&gt;
|BossDarkGaiaMoray  &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Snow_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SnowETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shamar ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1&lt;br /&gt;
|ActN_PetraEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 2&lt;br /&gt;
|ActN_SubPetra_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 3&lt;br /&gt;
|ActN_SubPetra_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_PetraEvil &lt;br /&gt;
|-&lt;br /&gt;
|Dark Guardian&lt;br /&gt;
|BossPetra&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_PetraCapital_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_PetraCapitalETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_PetraLabo_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Empire City ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1&lt;br /&gt;
|ActN_NYEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 2&lt;br /&gt;
|ActN_SubNY_02&lt;br /&gt;
|X&lt;br /&gt;
|ActN_NYEvil&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 3&lt;br /&gt;
|ActN_SubNY_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_NYCity_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_NYCityETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adabat ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1&lt;br /&gt;
|ActN_BeachEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1-2&lt;br /&gt;
|ActN_SubBeach_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_BeachEvil &lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 2&lt;br /&gt;
|ActN_SubBeach_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 3&lt;br /&gt;
|ActN_SubBeach_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_SouthEastAsia_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SouthEastAsiaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Eggmanland ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|EggmanLand&lt;br /&gt;
|Act_EggmanLand&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Dragoon&lt;br /&gt;
|BossEggDragoon&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Colossus Sections&lt;br /&gt;
|BossDarkGaia1_1Air&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 1&lt;br /&gt;
|BossDarkGaia1_1Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 2&lt;br /&gt;
|BossDarkGaia1_2Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 3&lt;br /&gt;
|BossDarkGaia1_3Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Perfect Dark Gaia&lt;br /&gt;
|BossFinalDarkGaia&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tornado Defence Act 2&lt;br /&gt;
|ExStageTails2 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EggManBase&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Events ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Area&lt;br /&gt;
!ID&lt;br /&gt;
!Event ID&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Lab (Ransacked)&lt;br /&gt;
|Event_M2_01_professor_room_new&lt;br /&gt;
|M2_01&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Mazuri)&lt;br /&gt;
|Event_afr_hideout&lt;br /&gt;
|M2_02&lt;br /&gt;
|-&lt;br /&gt;
|Gaia Temple (Inside)&lt;br /&gt;
|Event_temple&lt;br /&gt;
|M3_03&lt;br /&gt;
&lt;br /&gt;
M3_05&lt;br /&gt;
&lt;br /&gt;
M6_02&lt;br /&gt;
&lt;br /&gt;
M7_02&lt;br /&gt;
&lt;br /&gt;
S1_05&lt;br /&gt;
&lt;br /&gt;
S3_04&lt;br /&gt;
&lt;br /&gt;
T0_01&lt;br /&gt;
&lt;br /&gt;
T0_02&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Inside)&lt;br /&gt;
|Event_M4_01_egb_hideout&lt;br /&gt;
|M4_01&lt;br /&gt;
&lt;br /&gt;
M5_02&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Outside)&lt;br /&gt;
|Event_egb_hidout_exterior&lt;br /&gt;
|M5_01&lt;br /&gt;
&lt;br /&gt;
M8_13&lt;br /&gt;
|-&lt;br /&gt;
|Adabat Temple (Outside)&lt;br /&gt;
|Event_M6_01_temple&lt;br /&gt;
|M6_01&lt;br /&gt;
|-&lt;br /&gt;
|EggmanLand Ending Room&lt;br /&gt;
|Event_M8_02_egbHall&lt;br /&gt;
|M7_04&lt;br /&gt;
&lt;br /&gt;
M8_02&lt;br /&gt;
|-&lt;br /&gt;
|Dummy Geometry Slot(?)&lt;br /&gt;
|Event_M8_03&lt;br /&gt;
|M8_03&lt;br /&gt;
|-&lt;br /&gt;
|Ending&lt;br /&gt;
|Event_M8_16_myk&lt;br /&gt;
|M8_16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unused ==&lt;br /&gt;
These are IDs that are not used in the retail game. Some of these became pre-rendered, while some others come from the Sonic Unleashed Preview Builds.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Stage/Area&lt;br /&gt;
!ID&lt;br /&gt;
!Type&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1 (Day)&lt;br /&gt;
|ActD_Africa_20080621&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from the leaked trailer and screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1 (Night)&lt;br /&gt;
|ActN_AfricaEvil_Dje_20080619&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3 (Night)&lt;br /&gt;
|ActN_AfricaEvil_Bao_20080619&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1 (Night)&lt;br /&gt;
|ActN_EUEvil_20080604&lt;br /&gt;
|Stage&lt;br /&gt;
|Unknown early version&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1 (Night)&lt;br /&gt;
|ActN_ChinaEvil_20080609&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from early trailer and leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1 (Day)&lt;br /&gt;
|ActD_Snow_20080618&lt;br /&gt;
|Stage&lt;br /&gt;
|Unknown early version&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 4 (Day)&lt;br /&gt;
|ActD_SubPetra_01&lt;br /&gt;
|Stage&lt;br /&gt;
|Scrapped stage, can be seen in a photo from the credits and an unused World Map thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 4 (Night)&lt;br /&gt;
|ActN_SubPetra_01&lt;br /&gt;
|Stage&lt;br /&gt;
|Scrapped stage, can be seen in an unused World Map thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|Daytime Sonic Test Stage&lt;br /&gt;
|ActD_Test&lt;br /&gt;
|Testing&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|Werehog Test Stage&lt;br /&gt;
|ActN_Test&lt;br /&gt;
|Testing&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilEnemy&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilLargeFloor&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilPathFinding_01&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|ActN_Test_Dummy&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1 (Dawn)&lt;br /&gt;
|Event_M0_06_myk&lt;br /&gt;
|Event&lt;br /&gt;
|The start area of Windmill Isle Act 1 with the lighting from the first in-engine event baked into the stage, as opposed to being dynamically loaded by the event&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Lab (Ransacked)&lt;br /&gt;
|Event_M2_01_professor_room&lt;br /&gt;
|Event&lt;br /&gt;
|The ransacked Spagonia lab using the old terrain system&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Mazuri)&lt;br /&gt;
|Event_afr_hideout_main&lt;br /&gt;
|Event&lt;br /&gt;
|Eggman’s Mazuri base using the old terrain system&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Town - Cursed&lt;br /&gt;
|Event_M8_08_01chn&lt;br /&gt;
|Event&lt;br /&gt;
|The Chun-Nan scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Mazuri Town - Cursed&lt;br /&gt;
|Event_M8_08_02afr&lt;br /&gt;
|Event&lt;br /&gt;
|The Mazuri scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Town - Cursed&lt;br /&gt;
|Event_M8_08_03EU&lt;br /&gt;
|Event&lt;br /&gt;
|The Spagonia scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Holoska Town - Cursed&lt;br /&gt;
|Event_M8_08_04snow&lt;br /&gt;
|Event&lt;br /&gt;
|The Holoska scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Town - Cured&lt;br /&gt;
|Event_M8_12_01chn&lt;br /&gt;
|Event&lt;br /&gt;
|The Chun-Nan scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Mazuri Town - Cured&lt;br /&gt;
|Event_M8_12_02afr&lt;br /&gt;
|Event&lt;br /&gt;
|The Mazuri scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Town - Cured&lt;br /&gt;
|Event_M8_12_03EU&lt;br /&gt;
|Event&lt;br /&gt;
|The Spagonia scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Holoska Town - Cured&lt;br /&gt;
|Event_M8_12_04snow&lt;br /&gt;
|Event&lt;br /&gt;
|The Holoska scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=YACpkTool&amp;diff=453</id>
		<title>YACpkTool</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=YACpkTool&amp;diff=453"/>
		<updated>2025-04-03T11:26:44Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=Yet Another CPK Tool|author=Brolijah|website=https://github.com/Brolijah/YACpkTool|download=https://github.com/Brolijah/YACpkTool/releases/tag/v1.1b}}&lt;br /&gt;
&#039;&#039;&#039;YACpkTool&#039;&#039;&#039; (Yet Another Cpk Tool) is a tool to extract and pack CRIWARE .cpk files. To use it, you can drag a folder into the program to pack it, or drag a .cpk file into it to extract it.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=YACpkTool&amp;diff=452</id>
		<title>YACpkTool</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=YACpkTool&amp;diff=452"/>
		<updated>2025-04-03T11:26:34Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Created page with &amp;quot;{{ToolInfobox|title=Yet Another CPK Tool|author=Brolijah|website=https://github.com/Brolijah/YACpkTool|download=https://github.com/Brolijah/YACpkTool/releases/tag/v1.1b}}  &amp;#039;&amp;#039;&amp;#039;YACpkTool&amp;#039;&amp;#039;&amp;#039; (Yet Another Cpk Tool) is a tool to extract and pack CRIWARE .cpk files. To use it, you can drag a folder into the program to pack it, or drag a .cpk file into it to extract it.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=Yet Another CPK Tool|author=Brolijah|website=https://github.com/Brolijah/YACpkTool|download=https://github.com/Brolijah/YACpkTool/releases/tag/v1.1b}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;YACpkTool&#039;&#039;&#039; (Yet Another Cpk Tool) is a tool to extract and pack CRIWARE .cpk files. To use it, you can drag a folder into the program to pack it, or drag a .cpk file into it to extract it.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed_Stage_IDs&amp;diff=451</id>
		<title>Sonic Unleashed Stage IDs</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed_Stage_IDs&amp;diff=451"/>
		<updated>2025-04-03T11:18:07Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains a list of all the Stage IDs&amp;lt;ref&amp;gt;Credits to archxe and Hedgeturd for making a list of all the stage IDs!&amp;lt;/ref&amp;gt; used in Sonic Unleashed. Stages don&#039;t follow a strict format, but they&#039;re generally like this:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Act{Day/Night}_{country}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Notice|type=note|content=The tables are divided into 4 columns, the &amp;quot;Stage&amp;quot; is the name of the stage, the &amp;quot;ID&amp;quot; is the name of the #archive, and the &amp;quot;Geometry ID&amp;quot; is the archive the stage uses for the actual terrain, if it is blank then it means that the terrain archive it uses has the same name as the ID.}}&lt;br /&gt;
== Daytime ==&lt;br /&gt;
&lt;br /&gt;
=== Apotos ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1&lt;br /&gt;
|ActD_MykonosAct1 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-2&lt;br /&gt;
|ActD_SubMykonos_04 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_MykonosAct1 &lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2&lt;br /&gt;
|ActD_MykonosAct2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2-2&lt;br /&gt;
|ActD_SubMykonos_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_MykonosAct2&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 3&lt;br /&gt;
|ActD_SubMykonos_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 4&lt;br /&gt;
|ActD_SubMykonos_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Mykonos&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_MykonosETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mazuri ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1&lt;br /&gt;
|ActD_Africa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1-2&lt;br /&gt;
|ActD_SubAfrica_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Africa&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 2&lt;br /&gt;
|ActD_SubAfrica_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3&lt;br /&gt;
|ActD_SubAfrica_03&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3-2&lt;br /&gt;
|ActD_SubAfrica_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubAfrica_03&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 4&lt;br /&gt;
|ActD_SubAfrica_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 5&lt;br /&gt;
|ActD_SubAfrica_04&lt;br /&gt;
|X&lt;br /&gt;
|BossEggBeetle&lt;br /&gt;
|-&lt;br /&gt;
|Egg Beetle&lt;br /&gt;
|BossEggBeetle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Africa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_AfricaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spagonia ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1&lt;br /&gt;
|ActD_EU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1-2&lt;br /&gt;
|ActD_SubEU_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_EU&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2&lt;br /&gt;
|ActD_SubEU_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2-2&lt;br /&gt;
|ActD_SubEU_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubEU_01&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 3&lt;br /&gt;
|ActD_SubEU_02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 4 &lt;br /&gt;
|ActD_SubEU_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 5&lt;br /&gt;
|ActD_SubEU_04&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Devil Ray&lt;br /&gt;
|BossEggRayBird&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tornado Defence Act 1&lt;br /&gt;
|ExStageTails1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EuropeanCity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_EuropeanCityETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_EULabo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chun-Nan ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1&lt;br /&gt;
|ActD_China &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1-2&lt;br /&gt;
|ActD_SubChina_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_China&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2-2&lt;br /&gt;
|ActD_SubChina_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 3&lt;br /&gt;
|ActD_SubChina_04&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 4&lt;br /&gt;
|ActD_SubChina_01 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 5&lt;br /&gt;
|ActD_SubChina_02 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_China&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_ChinaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Holoska ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1&lt;br /&gt;
|ActD_Snow&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1-2&lt;br /&gt;
|ActD_SubSnow_04 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_Snow&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2&lt;br /&gt;
|ActD_SubSnow_01 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2-2&lt;br /&gt;
|ActD_SubSnow_05 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 3&lt;br /&gt;
|ActD_SubSnow_02 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 4&lt;br /&gt;
|ActD_SubSnow_03 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Snow&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SnowETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shamar ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1&lt;br /&gt;
|ActD_Petra &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1-2&lt;br /&gt;
|ActD_SubPetra_04&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Petra&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 2&lt;br /&gt;
|ActD_SubPetra_03&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 3&lt;br /&gt;
|ActD_SubPetra_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_PetraCapital&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_PetraCapitalETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_PetraLabo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Empire City ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1&lt;br /&gt;
|ActD_NY&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1-2&lt;br /&gt;
|ActD_SubNY_03&lt;br /&gt;
|X&lt;br /&gt;
|ActD_NY&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 2&lt;br /&gt;
|ActD_SubNY_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 3&lt;br /&gt;
|ActD_SubNY_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_NYCity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_NYCityETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adabat ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1&lt;br /&gt;
|ActD_Beach &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1-2&lt;br /&gt;
|ActD_SubBeach_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Beach &lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 2&lt;br /&gt;
|ActD_SubBeach_02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 3&lt;br /&gt;
|ActD_SubBeach_04&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 4&lt;br /&gt;
|ActD_SubBeach_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 5&lt;br /&gt;
|ActD_SubBeach_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Lancer&lt;br /&gt;
|BossEggLancer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_SouthEastAsia&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SouthEastAsiaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Night ==&lt;br /&gt;
&lt;br /&gt;
=== Apotos ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-2&lt;br /&gt;
|ActN_SubMykonos_03 &lt;br /&gt;
|X&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-3&lt;br /&gt;
|ActN_SubMykonos_04&lt;br /&gt;
|X&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2&lt;br /&gt;
|ActN_SubMykonos_01 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Mykonos_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_MykonosETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mazuri ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1&lt;br /&gt;
|ActN_AfricaEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 2&lt;br /&gt;
|ActN_SubAfrica_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3&lt;br /&gt;
|ActN_SubAfrica_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 4&lt;br /&gt;
|ActN_SubAfrica_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Africa_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_AfricaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spagonia ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1&lt;br /&gt;
|ActN_EUEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1-2&lt;br /&gt;
|ActN_SubEU_02&lt;br /&gt;
|X&lt;br /&gt;
|ActN_EUEvil &lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2&lt;br /&gt;
|ActN_SubEU_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EuropeanCity_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_EuropeanCityETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_EULabo_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chun-Nan ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1&lt;br /&gt;
|ActN_ChinaEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1-2&lt;br /&gt;
|ActN_SubChina_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_ChinaEvil&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2&lt;br /&gt;
|ActN_SubChina_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 3&lt;br /&gt;
|ActN_SubChina_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Phoenix&lt;br /&gt;
|BossPhoenix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_China_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_ChinaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Holoska ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1&lt;br /&gt;
|ActN_SnowEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2&lt;br /&gt;
|ActN_SubSnow_01 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 3&lt;br /&gt;
|ActN_SubSnow_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Moray&lt;br /&gt;
|BossDarkGaiaMoray  &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Snow_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SnowETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shamar ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1&lt;br /&gt;
|ActN_PetraEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 2&lt;br /&gt;
|ActN_SubPetra_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 3&lt;br /&gt;
|ActN_SubPetra_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_PetraEvil &lt;br /&gt;
|-&lt;br /&gt;
|Dark Guardian&lt;br /&gt;
|BossPetra&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_PetraCapital_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_PetraCapitalETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_PetraLabo_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Empire City ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1&lt;br /&gt;
|ActN_NYEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 2&lt;br /&gt;
|ActN_SubNY_02&lt;br /&gt;
|X&lt;br /&gt;
|ActN_NYEvil&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 3&lt;br /&gt;
|ActN_SubNY_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_NYCity_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_NYCityETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adabat ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1&lt;br /&gt;
|ActN_BeachEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1-2&lt;br /&gt;
|ActN_SubBeach_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_BeachEvil &lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 2&lt;br /&gt;
|ActN_SubBeach_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 3&lt;br /&gt;
|ActN_SubBeach_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_SouthEastAsia_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SouthEastAsiaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Eggmanland ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|EggmanLand&lt;br /&gt;
|Act_EggmanLand&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Dragoon&lt;br /&gt;
|BossEggDragoon&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Colossus Sections&lt;br /&gt;
|BossDarkGaia1_1Air&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 1&lt;br /&gt;
|BossDarkGaia1_1Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 2&lt;br /&gt;
|BossDarkGaia1_2Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 3&lt;br /&gt;
|BossDarkGaia1_3Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Perfect Dark Gaia&lt;br /&gt;
|BossFinalDarkGaia&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tornado Defence Act 2&lt;br /&gt;
|ExStageTails2 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EggManBase&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Events ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Area&lt;br /&gt;
!ID&lt;br /&gt;
!Event ID&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Lab (Ransacked)&lt;br /&gt;
|Event_M2_01_professor_room_new&lt;br /&gt;
|M2_01&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Mazuri)&lt;br /&gt;
|Event_afr_hideout&lt;br /&gt;
|M2_02&lt;br /&gt;
|-&lt;br /&gt;
|Gaia Temple (Inside)&lt;br /&gt;
|Event_temple&lt;br /&gt;
|M3_03&lt;br /&gt;
&lt;br /&gt;
M3_05&lt;br /&gt;
&lt;br /&gt;
M6_02&lt;br /&gt;
&lt;br /&gt;
M7_02&lt;br /&gt;
&lt;br /&gt;
S1_05&lt;br /&gt;
&lt;br /&gt;
S3_04&lt;br /&gt;
&lt;br /&gt;
T0_01&lt;br /&gt;
&lt;br /&gt;
T0_02&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Inside)&lt;br /&gt;
|Event_M4_01_egb_hideout&lt;br /&gt;
|M4_01&lt;br /&gt;
&lt;br /&gt;
M5_02&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Outside)&lt;br /&gt;
|Event_egb_hidout_exterior&lt;br /&gt;
|M5_01&lt;br /&gt;
&lt;br /&gt;
M8_13&lt;br /&gt;
|-&lt;br /&gt;
|Adabat Temple (Outside)&lt;br /&gt;
|Event_M6_01_temple&lt;br /&gt;
|M6_01&lt;br /&gt;
|-&lt;br /&gt;
|EggmanLand Ending Room&lt;br /&gt;
|Event_M8_02_egbHall&lt;br /&gt;
|M7_04&lt;br /&gt;
&lt;br /&gt;
M8_02&lt;br /&gt;
|-&lt;br /&gt;
|Dummy Geometry Slot(?)&lt;br /&gt;
|Event_M8_03&lt;br /&gt;
|M8_03&lt;br /&gt;
|-&lt;br /&gt;
|Ending&lt;br /&gt;
|Event_M8_16_myk&lt;br /&gt;
|M8_16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unused ==&lt;br /&gt;
These are IDs that are not used in the retail game. Some of these became pre-rendered, while some others come from the Sonic Unleashed Preview Builds.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Stage/Area&lt;br /&gt;
!ID&lt;br /&gt;
!Type&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1 (Day)&lt;br /&gt;
|ActD_Africa_20080621&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from the leaked trailer and screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1 (Night)&lt;br /&gt;
|ActN_AfricaEvil_Dje_20080619&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3 (Night)&lt;br /&gt;
|ActN_AfricaEvil_Bao_20080619&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1 (Night)&lt;br /&gt;
|ActN_EUEvil_20080604&lt;br /&gt;
|Stage&lt;br /&gt;
|Unknown early version&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1 (Night)&lt;br /&gt;
|ActN_ChinaEvil_20080609&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from early trailer and leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1 (Day)&lt;br /&gt;
|ActD_Snow_20080618&lt;br /&gt;
|Stage&lt;br /&gt;
|Unknown early version&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 4 (Day)&lt;br /&gt;
|ActD_SubPetra_01&lt;br /&gt;
|Stage&lt;br /&gt;
|Scrapped stage, can be seen in a photo from the credits and an unused World Map thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 4 (Night)&lt;br /&gt;
|ActN_SubPetra_01&lt;br /&gt;
|Stage&lt;br /&gt;
|Scrapped stage, can be seen in an unused World Map thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|Daytime Sonic Test Stage&lt;br /&gt;
|ActD_Test&lt;br /&gt;
|Testing&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|Werehog Test Stage&lt;br /&gt;
|ActN_Test&lt;br /&gt;
|Testing&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilEnemy&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilLargeFloor&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilPathFinding_01&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|ActN_Test_Dummy&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1 (Dawn)&lt;br /&gt;
|Event_M0_06_myk&lt;br /&gt;
|Event&lt;br /&gt;
|The start area of Windmill Isle Act 1 with the lighting from the first in-engine event baked into the stage, as opposed to being dynamically loaded by the event&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Lab (Ransacked)&lt;br /&gt;
|Event_M2_01_professor_room&lt;br /&gt;
|Event&lt;br /&gt;
|The ransacked Spagonia lab using the old terrain system&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Mazuri)&lt;br /&gt;
|Event_afr_hideout_main&lt;br /&gt;
|Event&lt;br /&gt;
|Eggman’s Mazuri base using the old terrain system&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Town - Cursed&lt;br /&gt;
|Event_M8_08_01chn&lt;br /&gt;
|Event&lt;br /&gt;
|The Chun-Nan scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Mazuri Town - Cursed&lt;br /&gt;
|Event_M8_08_02afr&lt;br /&gt;
|Event&lt;br /&gt;
|The Mazuri scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Town - Cursed&lt;br /&gt;
|Event_M8_08_03EU&lt;br /&gt;
|Event&lt;br /&gt;
|The Spagonia scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Holoska Town - Cursed&lt;br /&gt;
|Event_M8_08_04snow&lt;br /&gt;
|Event&lt;br /&gt;
|The Holoska scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Town - Cured&lt;br /&gt;
|Event_M8_12_01chn&lt;br /&gt;
|Event&lt;br /&gt;
|The Chun-Nan scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Mazuri Town - Cured&lt;br /&gt;
|Event_M8_12_02afr&lt;br /&gt;
|Event&lt;br /&gt;
|The Mazuri scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Town - Cured&lt;br /&gt;
|Event_M8_12_03EU&lt;br /&gt;
|Event&lt;br /&gt;
|The Spagonia scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Holoska Town - Cured&lt;br /&gt;
|Event_M8_12_04snow&lt;br /&gt;
|Event&lt;br /&gt;
|The Holoska scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed_Stage_IDs&amp;diff=450</id>
		<title>Sonic Unleashed Stage IDs</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed_Stage_IDs&amp;diff=450"/>
		<updated>2025-04-03T11:17:56Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains a list of all the Stage IDs&amp;lt;ref&amp;gt;Credits to archxe and Hedgeturd for making a list of all the stage IDs!&amp;lt;/ref&amp;gt; used in Sonic Unleashed. Stages don&#039;t follow a strict format, but they&#039;re generally like this:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;Act{Day/Night}_{country}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Notice|type=note|content=The tables are divided into 4 columns, the &amp;quot;Stage&amp;quot; is the name of the stage, the &amp;quot;ID&amp;quot; is the name of the #archive, and the &amp;quot;Geometry ID&amp;quot; is the archive the stage uses for the actual terrain, if it is blank then it means that the terrain archive it uses has the same name as the ID.}}&lt;br /&gt;
&lt;br /&gt;
== Daytime ==&lt;br /&gt;
&lt;br /&gt;
=== Apotos ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1&lt;br /&gt;
|ActD_MykonosAct1 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-2&lt;br /&gt;
|ActD_SubMykonos_04 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_MykonosAct1 &lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2&lt;br /&gt;
|ActD_MykonosAct2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2-2&lt;br /&gt;
|ActD_SubMykonos_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_MykonosAct2&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 3&lt;br /&gt;
|ActD_SubMykonos_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 4&lt;br /&gt;
|ActD_SubMykonos_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Mykonos&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_MykonosETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mazuri ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1&lt;br /&gt;
|ActD_Africa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1-2&lt;br /&gt;
|ActD_SubAfrica_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Africa&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 2&lt;br /&gt;
|ActD_SubAfrica_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3&lt;br /&gt;
|ActD_SubAfrica_03&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3-2&lt;br /&gt;
|ActD_SubAfrica_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubAfrica_03&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 4&lt;br /&gt;
|ActD_SubAfrica_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 5&lt;br /&gt;
|ActD_SubAfrica_04&lt;br /&gt;
|X&lt;br /&gt;
|BossEggBeetle&lt;br /&gt;
|-&lt;br /&gt;
|Egg Beetle&lt;br /&gt;
|BossEggBeetle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Africa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_AfricaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spagonia ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1&lt;br /&gt;
|ActD_EU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1-2&lt;br /&gt;
|ActD_SubEU_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_EU&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2&lt;br /&gt;
|ActD_SubEU_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2-2&lt;br /&gt;
|ActD_SubEU_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubEU_01&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 3&lt;br /&gt;
|ActD_SubEU_02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 4 &lt;br /&gt;
|ActD_SubEU_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 5&lt;br /&gt;
|ActD_SubEU_04&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Devil Ray&lt;br /&gt;
|BossEggRayBird&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tornado Defence Act 1&lt;br /&gt;
|ExStageTails1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EuropeanCity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_EuropeanCityETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_EULabo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chun-Nan ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1&lt;br /&gt;
|ActD_China &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1-2&lt;br /&gt;
|ActD_SubChina_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_China&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2-2&lt;br /&gt;
|ActD_SubChina_06&lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 3&lt;br /&gt;
|ActD_SubChina_04&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 4&lt;br /&gt;
|ActD_SubChina_01 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 5&lt;br /&gt;
|ActD_SubChina_02 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_China&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_ChinaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Holoska ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1&lt;br /&gt;
|ActD_Snow&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1-2&lt;br /&gt;
|ActD_SubSnow_04 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_Snow&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2&lt;br /&gt;
|ActD_SubSnow_01 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2-2&lt;br /&gt;
|ActD_SubSnow_05 &lt;br /&gt;
|X&lt;br /&gt;
|ActD_SubChina_03 &lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 3&lt;br /&gt;
|ActD_SubSnow_02 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 4&lt;br /&gt;
|ActD_SubSnow_03 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Snow&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SnowETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shamar ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1&lt;br /&gt;
|ActD_Petra &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1-2&lt;br /&gt;
|ActD_SubPetra_04&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Petra&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 2&lt;br /&gt;
|ActD_SubPetra_03&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 3&lt;br /&gt;
|ActD_SubPetra_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_PetraCapital&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_PetraCapitalETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_PetraLabo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Empire City ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1&lt;br /&gt;
|ActD_NY&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1-2&lt;br /&gt;
|ActD_SubNY_03&lt;br /&gt;
|X&lt;br /&gt;
|ActD_NY&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 2&lt;br /&gt;
|ActD_SubNY_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 3&lt;br /&gt;
|ActD_SubNY_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_NYCity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_NYCityETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adabat ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1&lt;br /&gt;
|ActD_Beach &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1-2&lt;br /&gt;
|ActD_SubBeach_05&lt;br /&gt;
|X&lt;br /&gt;
|ActD_Beach &lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 2&lt;br /&gt;
|ActD_SubBeach_02&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 3&lt;br /&gt;
|ActD_SubBeach_04&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 4&lt;br /&gt;
|ActD_SubBeach_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 5&lt;br /&gt;
|ActD_SubBeach_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Lancer&lt;br /&gt;
|BossEggLancer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_SouthEastAsia&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SouthEastAsiaETF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Night ==&lt;br /&gt;
&lt;br /&gt;
=== Apotos ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-2&lt;br /&gt;
|ActN_SubMykonos_03 &lt;br /&gt;
|X&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1-3&lt;br /&gt;
|ActN_SubMykonos_04&lt;br /&gt;
|X&lt;br /&gt;
|ActN_MykonosEvil&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 2&lt;br /&gt;
|ActN_SubMykonos_01 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Mykonos_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_MykonosETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mazuri ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1&lt;br /&gt;
|ActN_AfricaEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 2&lt;br /&gt;
|ActN_SubAfrica_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3&lt;br /&gt;
|ActN_SubAfrica_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 4&lt;br /&gt;
|ActN_SubAfrica_03&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Africa_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_AfricaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spagonia ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1&lt;br /&gt;
|ActN_EUEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1-2&lt;br /&gt;
|ActN_SubEU_02&lt;br /&gt;
|X&lt;br /&gt;
|ActN_EUEvil &lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 2&lt;br /&gt;
|ActN_SubEU_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EuropeanCity_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_EuropeanCityETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_EULabo_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Chun-Nan ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1&lt;br /&gt;
|ActN_ChinaEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1-2&lt;br /&gt;
|ActN_SubChina_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_ChinaEvil&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 2&lt;br /&gt;
|ActN_SubChina_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 3&lt;br /&gt;
|ActN_SubChina_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Phoenix&lt;br /&gt;
|BossPhoenix&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_China_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_ChinaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Holoska ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1&lt;br /&gt;
|ActN_SnowEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 2&lt;br /&gt;
|ActN_SubSnow_01 &lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 3&lt;br /&gt;
|ActN_SubSnow_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Moray&lt;br /&gt;
|BossDarkGaiaMoray  &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_Snow_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SnowETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shamar ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 1&lt;br /&gt;
|ActN_PetraEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 2&lt;br /&gt;
|ActN_SubPetra_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 3&lt;br /&gt;
|ActN_SubPetra_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_PetraEvil &lt;br /&gt;
|-&lt;br /&gt;
|Dark Guardian&lt;br /&gt;
|BossPetra&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_PetraCapital_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_PetraCapitalETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Professor Pickle’s Lab&lt;br /&gt;
|Town_PetraLabo_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Empire City ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 1&lt;br /&gt;
|ActN_NYEvil&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 2&lt;br /&gt;
|ActN_SubNY_02&lt;br /&gt;
|X&lt;br /&gt;
|ActN_NYEvil&lt;br /&gt;
|-&lt;br /&gt;
|Skyscraper Scamper Act 3&lt;br /&gt;
|ActN_SubNY_01&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_NYCity_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_NYCityETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adabat ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1&lt;br /&gt;
|ActN_BeachEvil &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 1-2&lt;br /&gt;
|ActN_SubBeach_03&lt;br /&gt;
|X&lt;br /&gt;
|ActN_BeachEvil &lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 2&lt;br /&gt;
|ActN_SubBeach_01&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Joyride Act 3&lt;br /&gt;
|ActN_SubBeach_02&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_SouthEastAsia_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Entrance Stage&lt;br /&gt;
|Town_SouthEastAsiaETF_Night&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Eggmanland ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Stage&lt;br /&gt;
!ID&lt;br /&gt;
!DLC&lt;br /&gt;
!Geometry ID&lt;br /&gt;
|-&lt;br /&gt;
|EggmanLand&lt;br /&gt;
|Act_EggmanLand&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Egg Dragoon&lt;br /&gt;
|BossEggDragoon&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Colossus Sections&lt;br /&gt;
|BossDarkGaia1_1Air&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 1&lt;br /&gt;
|BossDarkGaia1_1Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 2&lt;br /&gt;
|BossDarkGaia1_2Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dark Gaia Sonic Section 3&lt;br /&gt;
|BossDarkGaia1_3Run &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Perfect Dark Gaia&lt;br /&gt;
|BossFinalDarkGaia&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Tornado Defence Act 2&lt;br /&gt;
|ExStageTails2 &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Town&lt;br /&gt;
|Town_EggManBase&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
== Events ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Area&lt;br /&gt;
!ID&lt;br /&gt;
!Event ID&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Lab (Ransacked)&lt;br /&gt;
|Event_M2_01_professor_room_new&lt;br /&gt;
|M2_01&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Mazuri)&lt;br /&gt;
|Event_afr_hideout&lt;br /&gt;
|M2_02&lt;br /&gt;
|-&lt;br /&gt;
|Gaia Temple (Inside)&lt;br /&gt;
|Event_temple&lt;br /&gt;
|M3_03&lt;br /&gt;
&lt;br /&gt;
M3_05&lt;br /&gt;
&lt;br /&gt;
M6_02&lt;br /&gt;
&lt;br /&gt;
M7_02&lt;br /&gt;
&lt;br /&gt;
S1_05&lt;br /&gt;
&lt;br /&gt;
S3_04&lt;br /&gt;
&lt;br /&gt;
T0_01&lt;br /&gt;
&lt;br /&gt;
T0_02&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Inside)&lt;br /&gt;
|Event_M4_01_egb_hideout&lt;br /&gt;
|M4_01&lt;br /&gt;
&lt;br /&gt;
M5_02&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Outside)&lt;br /&gt;
|Event_egb_hidout_exterior&lt;br /&gt;
|M5_01&lt;br /&gt;
&lt;br /&gt;
M8_13&lt;br /&gt;
|-&lt;br /&gt;
|Adabat Temple (Outside)&lt;br /&gt;
|Event_M6_01_temple&lt;br /&gt;
|M6_01&lt;br /&gt;
|-&lt;br /&gt;
|EggmanLand Ending Room&lt;br /&gt;
|Event_M8_02_egbHall&lt;br /&gt;
|M7_04&lt;br /&gt;
&lt;br /&gt;
M8_02&lt;br /&gt;
|-&lt;br /&gt;
|Dummy Geometry Slot(?)&lt;br /&gt;
|Event_M8_03&lt;br /&gt;
|M8_03&lt;br /&gt;
|-&lt;br /&gt;
|Ending&lt;br /&gt;
|Event_M8_16_myk&lt;br /&gt;
|M8_16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unused ==&lt;br /&gt;
These are IDs that are not used in the retail game. Some of these became pre-rendered, while some others come from the Sonic Unleashed Preview Builds.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Stage/Area&lt;br /&gt;
!ID&lt;br /&gt;
!Type&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1 (Day)&lt;br /&gt;
|ActD_Africa_20080621&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from the leaked trailer and screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 1 (Night)&lt;br /&gt;
|ActN_AfricaEvil_Dje_20080619&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Savannah Citadel Act 3 (Night)&lt;br /&gt;
|ActN_AfricaEvil_Bao_20080619&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Rooftop Run Act 1 (Night)&lt;br /&gt;
|ActN_EUEvil_20080604&lt;br /&gt;
|Stage&lt;br /&gt;
|Unknown early version&lt;br /&gt;
|-&lt;br /&gt;
|Dragon Road Act 1 (Night)&lt;br /&gt;
|ActN_ChinaEvil_20080609&lt;br /&gt;
|Stage&lt;br /&gt;
|Version from early trailer and leaked screenshots&lt;br /&gt;
|-&lt;br /&gt;
|Cool Edge Act 1 (Day)&lt;br /&gt;
|ActD_Snow_20080618&lt;br /&gt;
|Stage&lt;br /&gt;
|Unknown early version&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 4 (Day)&lt;br /&gt;
|ActD_SubPetra_01&lt;br /&gt;
|Stage&lt;br /&gt;
|Scrapped stage, can be seen in a photo from the credits and an unused World Map thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|Arid Sands Act 4 (Night)&lt;br /&gt;
|ActN_SubPetra_01&lt;br /&gt;
|Stage&lt;br /&gt;
|Scrapped stage, can be seen in an unused World Map thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|Daytime Sonic Test Stage&lt;br /&gt;
|ActD_Test&lt;br /&gt;
|Testing&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|Werehog Test Stage&lt;br /&gt;
|ActN_Test&lt;br /&gt;
|Testing&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilEnemy&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilLargeFloor&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|TestEvilPathFinding_01&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|ActN_Test_Dummy&lt;br /&gt;
|&lt;br /&gt;
|Defined in arcinfo&lt;br /&gt;
|-&lt;br /&gt;
|Windmill Isle Act 1 (Dawn)&lt;br /&gt;
|Event_M0_06_myk&lt;br /&gt;
|Event&lt;br /&gt;
|The start area of Windmill Isle Act 1 with the lighting from the first in-engine event baked into the stage, as opposed to being dynamically loaded by the event&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Lab (Ransacked)&lt;br /&gt;
|Event_M2_01_professor_room&lt;br /&gt;
|Event&lt;br /&gt;
|The ransacked Spagonia lab using the old terrain system&lt;br /&gt;
|-&lt;br /&gt;
|Eggman’s Base (Mazuri)&lt;br /&gt;
|Event_afr_hideout_main&lt;br /&gt;
|Event&lt;br /&gt;
|Eggman’s Mazuri base using the old terrain system&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Town - Cursed&lt;br /&gt;
|Event_M8_08_01chn&lt;br /&gt;
|Event&lt;br /&gt;
|The Chun-Nan scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Mazuri Town - Cursed&lt;br /&gt;
|Event_M8_08_02afr&lt;br /&gt;
|Event&lt;br /&gt;
|The Mazuri scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Town - Cursed&lt;br /&gt;
|Event_M8_08_03EU&lt;br /&gt;
|Event&lt;br /&gt;
|The Spagonia scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Holoska Town - Cursed&lt;br /&gt;
|Event_M8_08_04snow&lt;br /&gt;
|Event&lt;br /&gt;
|The Holoska scene from the “Dark World” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Chun-Nan Town - Cured&lt;br /&gt;
|Event_M8_12_01chn&lt;br /&gt;
|Event&lt;br /&gt;
|The Chun-Nan scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Mazuri Town - Cured&lt;br /&gt;
|Event_M8_12_02afr&lt;br /&gt;
|Event&lt;br /&gt;
|The Mazuri scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Spagonia Town - Cured&lt;br /&gt;
|Event_M8_12_03EU&lt;br /&gt;
|Event&lt;br /&gt;
|The Spagonia scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|-&lt;br /&gt;
|Holoska Town - Cured&lt;br /&gt;
|Event_M8_12_04snow&lt;br /&gt;
|Event&lt;br /&gt;
|The Holoska scene from the “Rekindled Light” event - the final game has this event pre-rendered.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Tools&amp;diff=448</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Tools&amp;diff=448"/>
		<updated>2025-03-27T18:25:39Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains tools that aren&#039;t specific to any Sonic game. Below you can see the tools divided by the engine they target and their purpose.&lt;br /&gt;
&lt;br /&gt;
== Various Engines ==&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicAudioTools]]&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
* [[KwasTools (Hedgehog Engine)|io_kwastools]] (.cam-anim, .uv-anim)&lt;br /&gt;
&lt;br /&gt;
== Hedgehog Engine ==&lt;br /&gt;
&lt;br /&gt;
=== Archives ===&lt;br /&gt;
&lt;br /&gt;
* [[PackCpk]] (.cpk)&lt;br /&gt;
* [[YACpkTool]] (.cpk)&lt;br /&gt;
&lt;br /&gt;
* [[HedgeArchiveEditor]] (.ar, .pfd, .pac)&lt;br /&gt;
* [[HedgeArcPack]] (.ar, .pfd, .pac)&lt;br /&gt;
* [[ar0pack-ar0unpack]] (.ar, .pfd)&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
* [[Havok Converter]] (*.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[HedgeGI]]&lt;br /&gt;
* [[SonicLightTools]]&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
* [[terrain2fbx]] (.terrain-model)&lt;br /&gt;
* [[terrain2fbx-png]] (.terrain-model)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
* [[Converse]] (.fco / .fte)&lt;br /&gt;
=== UI ===&lt;br /&gt;
* [[Shuriken]] (.xncp / .yncp)&lt;br /&gt;
* [[Kunai]] (.xncp / .yncp / .gncp / .sncp)&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Tools&amp;diff=447</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Tools&amp;diff=447"/>
		<updated>2025-03-27T18:20:10Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains tools that aren&#039;t specific to any Sonic game. Below you can see the tools divided by the engine they target and their purpose.&lt;br /&gt;
&lt;br /&gt;
== Various Engines ==&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicAudioTools]]&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
* [[KwasTools (Hedgehog Engine)|io_kwastools]] (.cam-anim, .uv-anim)&lt;br /&gt;
&lt;br /&gt;
== Hedgehog Engine ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
* [[PackCpk]] (.cpk)&lt;br /&gt;
* [[terrain2fbx]] (.terrain-model)&lt;br /&gt;
* [[terrain2fbx-png]] (.terrain-model)&lt;br /&gt;
&lt;br /&gt;
=== Archives (.ar, .pfd, .pac) ===&lt;br /&gt;
* [[HedgeArchiveEditor]]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[ar0pack-ar0unpack]]&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[HedgeGI]]&lt;br /&gt;
* [[SonicLightTools]]&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
* [[Shuriken]] (.xncp / .yncp)&lt;br /&gt;
* [[Kunai]] (.xncp / .yncp / .gncp / .sncp)&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
* [[Havok Converter]] (*.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
* [[Converse]] (.fco / .fte)&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=KwasTools_(Hedgehog_Engine)&amp;diff=446</id>
		<title>KwasTools (Hedgehog Engine)</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=KwasTools_(Hedgehog_Engine)&amp;diff=446"/>
		<updated>2025-03-27T18:19:52Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=KwasTools|author=Kwasior|website=https://github.com/ThisKwasior/KwasTools}}&lt;br /&gt;
&#039;&#039;&#039;KwasTools&#039;&#039;&#039; is a set of utilities for several games, it contains tools to edit and examine CRIWARE formats and a [[wikipedia:Blender_(software)|Blender]] addon called &#039;&#039;&#039;[https://github.com/ThisKwasior/KwasTools/tree/master/addons/blender/io_kwastools io_kwastools]&#039;&#039;&#039; to edit &amp;lt;code&amp;gt;.cam-anim&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.uv-anim&amp;lt;/code&amp;gt; files from Hedgehog Engine 1 and 2.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=KwasTools_(Hedgehog_Engine)&amp;diff=445</id>
		<title>KwasTools (Hedgehog Engine)</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=KwasTools_(Hedgehog_Engine)&amp;diff=445"/>
		<updated>2025-03-27T18:19:39Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: Created page with &amp;quot;{{ToolInfobox|title=KwasTools|author=Kwasior|website=https://github.com/ThisKwasior/KwasTools}}  &amp;#039;&amp;#039;&amp;#039;KwasTools&amp;#039;&amp;#039;&amp;#039; is a set of utilities for several games, it contains tools to edit and examine CRIWARE formats and a Blender addon called &amp;#039;&amp;#039;&amp;#039;[https://github.com/ThisKwasior/KwasTools/tree/master/addons/blender/io_kwastools io_kwastools]&amp;#039;&amp;#039;&amp;#039; to edit &amp;lt;code&amp;gt;.cam-anim&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.uv-anim&amp;lt;/code&amp;gt; files from Hedgehog Engine 1 and 2.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolInfobox|title=KwasTools|author=Kwasior|website=https://github.com/ThisKwasior/KwasTools}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KwasTools&#039;&#039;&#039; is a set of utilities for several games, it contains tools to edit and examine CRIWARE formats and a [[wikipedia:Blender_(software)|Blender]] addon called &#039;&#039;&#039;[https://github.com/ThisKwasior/KwasTools/tree/master/addons/blender/io_kwastools io_kwastools]&#039;&#039;&#039; to edit &amp;lt;code&amp;gt;.cam-anim&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.uv-anim&amp;lt;/code&amp;gt; files from Hedgehog Engine 1 and 2.&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Tools&amp;diff=444</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Tools&amp;diff=444"/>
		<updated>2025-03-27T18:15:18Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains tools that aren&#039;t specific to any Sonic game. Below you can see the tools divided by the engine they target and their purpose.&lt;br /&gt;
&lt;br /&gt;
== Various Engines ==&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicAudioTools]]&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
* [[io_kwastools]] (.cam-anim, .uv-anim)&lt;br /&gt;
&lt;br /&gt;
== Hedgehog Engine ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
* [[PackCpk]] (.cpk)&lt;br /&gt;
* [[terrain2fbx]] (.terrain-model)&lt;br /&gt;
* [[terrain2fbx-png]] (.terrain-model)&lt;br /&gt;
&lt;br /&gt;
=== Archives (.ar, .pfd, .pac) ===&lt;br /&gt;
* [[HedgeArchiveEditor]]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[ar0pack-ar0unpack]]&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[HedgeGI]]&lt;br /&gt;
* [[SonicLightTools]]&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
* [[Shuriken]] (.xncp / .yncp)&lt;br /&gt;
* [[Kunai]] (.xncp / .yncp / .gncp / .sncp)&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
* [[Havok Converter]] (*.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
* [[Converse]] (.fco / .fte)&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Tools&amp;diff=443</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Tools&amp;diff=443"/>
		<updated>2025-03-27T18:14:55Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section contains tools that aren&#039;t specific to any Sonic game. Below you can see the tools divided by the engine they target and their purpose.&lt;br /&gt;
&lt;br /&gt;
== Various Engines ==&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* [[SonicAudioTools]]&lt;br /&gt;
&lt;br /&gt;
=== Animations ===&lt;br /&gt;
&lt;br /&gt;
* [[KwasTools|io_kwastools]] (.cam-anim, .uv-anim)&lt;br /&gt;
&lt;br /&gt;
== Hedgehog Engine ==&lt;br /&gt;
&lt;br /&gt;
=== Common ===&lt;br /&gt;
&lt;br /&gt;
* [[PackCpk]] (.cpk)&lt;br /&gt;
* [[terrain2fbx]] (.terrain-model)&lt;br /&gt;
* [[terrain2fbx-png]] (.terrain-model)&lt;br /&gt;
&lt;br /&gt;
=== Archives (.ar, .pfd, .pac) ===&lt;br /&gt;
* [[HedgeArchiveEditor]]&lt;br /&gt;
* [[HedgeArcPack]]&lt;br /&gt;
* [[ar0pack-ar0unpack]]&lt;br /&gt;
&lt;br /&gt;
=== Lighting ===&lt;br /&gt;
* [[HedgeGI]]&lt;br /&gt;
* [[SonicLightTools]]&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
* [[Shuriken]] (.xncp / .yncp)&lt;br /&gt;
* [[Kunai]] (.xncp / .yncp / .gncp / .sncp)&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
* [[Havok Converter]] (*.hkx)&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
* [[Converse]] (.fco / .fte)&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=442</id>
		<title>Sonic Unleashed</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=Sonic_Unleashed&amp;diff=442"/>
		<updated>2025-03-27T18:14:07Z</updated>

		<summary type="html">&lt;p&gt;NextinHKRY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools ==&lt;br /&gt;
&lt;br /&gt;
==== Lighting ====&lt;br /&gt;
&lt;br /&gt;
* [[pfdpackUnleashed]] (*.pfd)&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
=== Level Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[How To Use Sonic GLvl with Sonic Unleashed|Sonic GLvl]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Unleashed Stage IDs|Stage IDs]]&lt;br /&gt;
* [[Unleashed-Generations Havok Collision Attributes|Havok Collision Attributes]]&lt;br /&gt;
&lt;br /&gt;
== Discoveries ==&lt;br /&gt;
&lt;br /&gt;
=== PlayStation 3 ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Unleashed Install Screen|Install Screen]]&lt;/div&gt;</summary>
		<author><name>NextinHKRY</name></author>
	</entry>
</feed>