<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hemodding.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ashrindy</id>
	<title>HEModdingWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://hemodding.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ashrindy"/>
	<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php/Special:Contributions/Ashrindy"/>
	<updated>2026-04-30T13:23:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=1008</id>
		<title>Sonic Frontiers/Internals/GOComponent</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=1008"/>
		<updated>2025-12-13T13:56:35Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Usage example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GOComponent ==&lt;br /&gt;
&#039;&#039;&#039;GOComponent&#039;&#039;&#039; &#039;&#039;(Game Object Component)&#039;&#039; is a component that usually has certain functionality to easily access and use systems, methods and such in a game object. GOCs are attached to &#039;&#039;&#039;Game Objects&#039;&#039;&#039;, which add basic functionality or easy control over certain aspects, such as &#039;&#039;&#039;GOCVisualModel&#039;&#039;&#039; adds an easy way to show a model at the Game Objects position.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Every GOComponent needs to be first created, this can be done using a simple function found in every [[Sonic Frontiers/Internals/Game Object|Game Object]]:&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// CreateComponent is a function in the hh::game::GameObject class, most oftenly used in the AddCallback function&lt;br /&gt;
hh::game::GOCVibration* gocVibration = CreateComponent&amp;lt;hh::game::GOCVibration&amp;gt;(); // Creates the component GOCVibration for use&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After the creation, you&#039;re able to initialize it in anyway possible, do any kind of preparation before adding it to the [[Sonic Frontiers/Internals/Game Object|Game Object]]:&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// AddComponent is a function found in the hh::game::GameObject class, it&#039;s most oftenly used in the AddCallback function&lt;br /&gt;
AddComponent(gocVibration); // Adds the GOCVibration to the Game Object&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Full example:&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// Create the GOC&lt;br /&gt;
app_cmn::rfl::GOCRflParameter* gocRflParam = CreateComponent&amp;lt;app_cmn::rfl::GOCRflParameter&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
// GOC preparation&lt;br /&gt;
app_cmn::rfl::GOCRflParameter::SetupInfo gocRflParamDesc{}; // Initialize the SetupInfo struct&lt;br /&gt;
gocRflParamDesc.capacity = 6;&lt;br /&gt;
gocRflParam-&amp;gt;Setup(gocRflParamDesc);&lt;br /&gt;
&lt;br /&gt;
// Add the GOC&lt;br /&gt;
AddComponent(gocRflParam);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GOComponents &#039;&#039;(currently in rangers-sdk)&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
* GOCAnimation&lt;br /&gt;
* GOCAnimationBlend&lt;br /&gt;
* GOCAnimationSimple&lt;br /&gt;
* GOCAnimationSingle&lt;br /&gt;
* GOCAnimator&lt;br /&gt;
* GOCCharacterIk&lt;br /&gt;
* GOCLookAt&lt;br /&gt;
* GOCPhysicalAnimation&lt;br /&gt;
&lt;br /&gt;
=== Boss ===&lt;br /&gt;
&lt;br /&gt;
* GOCBossActionSelect&lt;br /&gt;
* GOCBossCyloopColliderHelper&lt;br /&gt;
* GOCBossMoveableRange&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
&lt;br /&gt;
* GOCBoxCollider&lt;br /&gt;
* GOCCapsuleCollider&lt;br /&gt;
* GOCColliderQuery&lt;br /&gt;
* GOCCollisionQuery&lt;br /&gt;
* GOCCylinderCollider&lt;br /&gt;
* GOCHeightFieldCollider&lt;br /&gt;
* GOCMeshCollider&lt;br /&gt;
* GOCMoveSphereColliderQuery&lt;br /&gt;
* GOCSphereCollider&lt;br /&gt;
&lt;br /&gt;
=== Effect ===&lt;br /&gt;
&lt;br /&gt;
* GOCEffect&lt;br /&gt;
* GOCParticleLocator&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
&lt;br /&gt;
* GOCAI&lt;br /&gt;
* GOCEnemyAttackSign&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* GOCActivator&lt;br /&gt;
* GOCContact&lt;br /&gt;
* GOCCyloopPoint&lt;br /&gt;
* GOCEvent&lt;br /&gt;
* GOCEventCollision&lt;br /&gt;
* GOCGravity&lt;br /&gt;
* GOCGrind&lt;br /&gt;
* GOCHealth&lt;br /&gt;
* GOCHitStop&lt;br /&gt;
* GOCNavMeshAgent&lt;br /&gt;
* GOCTargetPositionHelper&lt;br /&gt;
* GOCTransform&lt;br /&gt;
* GOCParamBlackboard&lt;br /&gt;
* GOCScript&lt;br /&gt;
* PathComponent&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* GOCCamera&lt;br /&gt;
* GOCOcclusionCapsule&lt;br /&gt;
* GOCPointLight&lt;br /&gt;
* GOCRenderTexture&lt;br /&gt;
* GOCVisualDebugDraw&lt;br /&gt;
* GOCVisualModel&lt;br /&gt;
* GOCVisualTransformed&lt;br /&gt;
* GOCVisualUserModel&lt;br /&gt;
&lt;br /&gt;
=== HID ===&lt;br /&gt;
&lt;br /&gt;
* GOCInput&lt;br /&gt;
* GOCVibration&lt;br /&gt;
&lt;br /&gt;
=== Movement ===&lt;br /&gt;
&lt;br /&gt;
* GOCMotor&lt;br /&gt;
* GOCMotorConstant&lt;br /&gt;
* GOCMotorOnPath&lt;br /&gt;
* GOCMotorRotate&lt;br /&gt;
* GOCMovement&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
* GOCPlayerCollider&lt;br /&gt;
* GOCPlayerEffect&lt;br /&gt;
* GOCPlayerHsm&lt;br /&gt;
* GOCPlayerKinematicParams&lt;br /&gt;
* GOCPlayerParameter&lt;br /&gt;
* GOCPlayerState&lt;br /&gt;
* GOCPlayerVisual&lt;br /&gt;
&lt;br /&gt;
=== Reflection ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Frontiers/Internals/GOCRflParameter|GOCRflParameter]]&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
* GOCSound&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
&lt;br /&gt;
* GOCSprite&lt;br /&gt;
* GOCUICollider&lt;br /&gt;
* GOCUIComposition&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOCRflParameter&amp;diff=1007</id>
		<title>Sonic Frontiers/Internals/GOCRflParameter</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOCRflParameter&amp;diff=1007"/>
		<updated>2025-12-13T13:44:40Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Added GOCRflParameter Frontiers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;GOCRflParameter&#039;&#039;&#039; located in the &amp;lt;code&amp;gt;app_cmn::rfl&amp;lt;/code&amp;gt; namespace, is a simple [[Sonic Frontiers/Internals/GOComponent|GOComponent]] for storing and accessing [[Resources/Reflection|Reflection]] parameters through a [[Sonic Frontiers/Internals/Game Object|Game Object]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
It follows the same way of creation as every other [[Sonic Frontiers/Internals/GOComponent|GOComponent]].&lt;br /&gt;
&lt;br /&gt;
The struct of the SetupInfo/Description for this component is simple:&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
struct SetupInfo {&lt;br /&gt;
    unsigned int capacity; // The amount of parameters that are going to be used at first&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;This leads to the setup in general being primitive, as all that&#039;s needed is to provide the amount of parameters that are gonna be stored at first.&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
app_cmn::rfl::GOCRflParameter::SetupInfo gocRflParamDesc{}; // Initialize the SetupInfo/Description struct&lt;br /&gt;
&lt;br /&gt;
gocRflParamDesc.capacity = 6; // Specify the amount of parameters that are gonna be used at first&lt;br /&gt;
&lt;br /&gt;
gocRflParam-&amp;gt;Setup(gocRflParamDesc); // This sets up the GOComponent for proper usage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Afterwards, you are able to add your [[Resources/Reflection|Reflection]] parameters.&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
hh::fnd::ResReflection* myRefl; // Get or create your Reflection info&lt;br /&gt;
&lt;br /&gt;
gocRflParam-&amp;gt;SetParameter(myRefl, 0); // Set the Reflection info to an index, that is then going to be used to access the parameter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;To get the [[Resources/Reflection|Reflection]] parameters.&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
MyReflStruct* myRefl = gocRflParam-&amp;gt;GetParameter&amp;lt;MyReflStruct&amp;gt;(0); // Get the parameter at index 0 as MyReflStruct&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOCRflParameter&amp;diff=1006</id>
		<title>Sonic Frontiers/Internals/GOCRflParameter</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOCRflParameter&amp;diff=1006"/>
		<updated>2025-12-13T13:02:14Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;GOCRflParameter&#039;&#039;&#039; located in the &amp;lt;code&amp;gt;app_cmn::rfl&amp;lt;/code&amp;gt; namespace, is a simple [[Sonic Frontiers/Internals/GOComponent|GOComponent]] for storing and accessing [[Resources/Reflection|Reflection]] parameters through a [[Sonic Frontiers/Internals/Game Object|Game Object]].&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=1005</id>
		<title>Sonic Frontiers/Internals/GOComponent</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=1005"/>
		<updated>2025-12-13T13:00:41Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Reflection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GOComponent ==&lt;br /&gt;
&#039;&#039;&#039;GOComponent&#039;&#039;&#039; &#039;&#039;(Game Object Component)&#039;&#039; is a component that usually has certain functionality to easily access and use systems, methods and such in a game object. GOCs are attached to &#039;&#039;&#039;Game Objects&#039;&#039;&#039;, which add basic functionality or easy control over certain aspects, such as &#039;&#039;&#039;GOCVisualModel&#039;&#039;&#039; adds an easy way to show a model at the Game Objects position.&lt;br /&gt;
&lt;br /&gt;
== GOComponents &#039;&#039;(currently in rangers-sdk)&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
* GOCAnimation&lt;br /&gt;
* GOCAnimationBlend&lt;br /&gt;
* GOCAnimationSimple&lt;br /&gt;
* GOCAnimationSingle&lt;br /&gt;
* GOCAnimator&lt;br /&gt;
* GOCCharacterIk&lt;br /&gt;
* GOCLookAt&lt;br /&gt;
* GOCPhysicalAnimation&lt;br /&gt;
&lt;br /&gt;
=== Boss ===&lt;br /&gt;
&lt;br /&gt;
* GOCBossActionSelect&lt;br /&gt;
* GOCBossCyloopColliderHelper&lt;br /&gt;
* GOCBossMoveableRange&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
&lt;br /&gt;
* GOCBoxCollider&lt;br /&gt;
* GOCCapsuleCollider&lt;br /&gt;
* GOCColliderQuery&lt;br /&gt;
* GOCCollisionQuery&lt;br /&gt;
* GOCCylinderCollider&lt;br /&gt;
* GOCHeightFieldCollider&lt;br /&gt;
* GOCMeshCollider&lt;br /&gt;
* GOCMoveSphereColliderQuery&lt;br /&gt;
* GOCSphereCollider&lt;br /&gt;
&lt;br /&gt;
=== Effect ===&lt;br /&gt;
&lt;br /&gt;
* GOCEffect&lt;br /&gt;
* GOCParticleLocator&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
&lt;br /&gt;
* GOCAI&lt;br /&gt;
* GOCEnemyAttackSign&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* GOCActivator&lt;br /&gt;
* GOCContact&lt;br /&gt;
* GOCCyloopPoint&lt;br /&gt;
* GOCEvent&lt;br /&gt;
* GOCEventCollision&lt;br /&gt;
* GOCGravity&lt;br /&gt;
* GOCGrind&lt;br /&gt;
* GOCHealth&lt;br /&gt;
* GOCHitStop&lt;br /&gt;
* GOCNavMeshAgent&lt;br /&gt;
* GOCTargetPositionHelper&lt;br /&gt;
* GOCTransform&lt;br /&gt;
* GOCParamBlackboard&lt;br /&gt;
* GOCScript&lt;br /&gt;
* PathComponent&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* GOCCamera&lt;br /&gt;
* GOCOcclusionCapsule&lt;br /&gt;
* GOCPointLight&lt;br /&gt;
* GOCRenderTexture&lt;br /&gt;
* GOCVisualDebugDraw&lt;br /&gt;
* GOCVisualModel&lt;br /&gt;
* GOCVisualTransformed&lt;br /&gt;
* GOCVisualUserModel&lt;br /&gt;
&lt;br /&gt;
=== HID ===&lt;br /&gt;
&lt;br /&gt;
* GOCInput&lt;br /&gt;
* GOCVibration&lt;br /&gt;
&lt;br /&gt;
=== Movement ===&lt;br /&gt;
&lt;br /&gt;
* GOCMotor&lt;br /&gt;
* GOCMotorConstant&lt;br /&gt;
* GOCMotorOnPath&lt;br /&gt;
* GOCMotorRotate&lt;br /&gt;
* GOCMovement&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
* GOCPlayerCollider&lt;br /&gt;
* GOCPlayerEffect&lt;br /&gt;
* GOCPlayerHsm&lt;br /&gt;
* GOCPlayerKinematicParams&lt;br /&gt;
* GOCPlayerParameter&lt;br /&gt;
* GOCPlayerState&lt;br /&gt;
* GOCPlayerVisual&lt;br /&gt;
&lt;br /&gt;
=== Reflection ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Frontiers/Internals/GOCRflParameter|GOCRflParameter]]&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
* GOCSound&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
&lt;br /&gt;
* GOCSprite&lt;br /&gt;
* GOCUICollider&lt;br /&gt;
* GOCUIComposition&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOCRflParameter&amp;diff=1004</id>
		<title>Sonic Frontiers/Internals/GOCRflParameter</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOCRflParameter&amp;diff=1004"/>
		<updated>2025-12-13T13:00:06Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Created page with &amp;quot;**GOCRflParameter** located in the `app_cmn::rfl` namespace, is a simple GOComponent for storing and accessing Reflection parameters through a Game Object.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;**GOCRflParameter** located in the `app_cmn::rfl` namespace, is a simple GOComponent for storing and accessing Reflection parameters through a Game Object.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/NeedleTextureStreamingUtility&amp;diff=963</id>
		<title>Tools/NeedleTextureStreamingUtility</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/NeedleTextureStreamingUtility&amp;diff=963"/>
		<updated>2025-09-09T17:41:05Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool&lt;br /&gt;
| name = NeedleTextureStreamingUtility&lt;br /&gt;
| purpose = Editing NTSP and NTSI files.&lt;br /&gt;
| developer = Justin113D&lt;br /&gt;
| website = https://github.com/Justin113D/NeedleTextureStreamingUtility&lt;br /&gt;
| download = https://github.com/Justin113D/NeedleTextureStreamingUtility/releases&lt;br /&gt;
|programming_language=C#}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NeedleTextureStreamingUtility&#039;&#039;&#039; is a command-line tool for extracting, packing and checking [[Resources/Streaming Texture Package|NTSP]] files and [[Resources/Texture|NTSI]] (streamed DDS) files.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The tool is a simple command-line tool, the following arguments can be used such as: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;NeedleTextureStreamingUtility.exe pack &amp;quot;C:\Textures&amp;quot; my_custom_package.ntsp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arguments ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;unpack &amp;lt;NTSI DDS file/directory&amp;gt; [NTSP directory]&amp;lt;/code&amp;gt; - extracts the texture data from an [[Resources/Streaming Texture Package|NTSP]] into the DDS file&lt;br /&gt;
* &amp;lt;code&amp;gt;pack &amp;lt;DDS file directory&amp;gt; [Output Name]&amp;lt;/code&amp;gt; - creates an [[Resources/Streaming Texture Package|NTSP]] file and NTSI files from DDS files in a folder&lt;br /&gt;
* &amp;lt;code&amp;gt;info &amp;lt;NTSI DDS file | NTSP file&amp;gt;&amp;lt;/code&amp;gt; - shows basic info about inputted file&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/NeedleTextureStreamingUtility&amp;diff=962</id>
		<title>Tools/NeedleTextureStreamingUtility</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/NeedleTextureStreamingUtility&amp;diff=962"/>
		<updated>2025-09-09T17:39:20Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;NeedleTextureStreamingUtility&amp;#039;&amp;#039;&amp;#039; is a command-line tool for extracting, packing and checking NTSP files and NTSI (streamed DDS) files.  == Usage == The tool is a simple command-line tool, the following arguments can be used such as:   &amp;lt;code&amp;gt;NeedleTextureStreamingUtility.exe pack C:\Textures my_custom_package.ntsp&amp;lt;/code&amp;gt;  === Arguments ===  * &amp;lt;code&amp;gt;unpack &amp;lt;NTSI DDS file/directory&amp;gt; [NTSP directory]&amp;lt;/code&amp;gt; - e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;NeedleTextureStreamingUtility&#039;&#039;&#039; is a command-line tool for extracting, packing and checking [[Resources/Streaming Texture Package|NTSP]] files and [[Resources/Texture|NTSI]] (streamed DDS) files.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The tool is a simple command-line tool, the following arguments can be used such as: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;NeedleTextureStreamingUtility.exe pack C:\Textures my_custom_package.ntsp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arguments ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;unpack &amp;lt;NTSI DDS file/directory&amp;gt; [NTSP directory]&amp;lt;/code&amp;gt; - extracts the texture data from an [[Resources/Streaming Texture Package|NTSP]] into the DDS file&lt;br /&gt;
* &amp;lt;code&amp;gt;pack &amp;lt;DDS file directory&amp;gt; [Output Name]&amp;lt;/code&amp;gt; - creates an [[Resources/Streaming Texture Package|NTSP]] file and NTSI files from DDS files in a folder&lt;br /&gt;
* &amp;lt;code&amp;gt;info &amp;lt;NTSI DDS file | NTSP file&amp;gt;&amp;lt;/code&amp;gt; - shows basic info about inputted file&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools&amp;diff=961</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools&amp;diff=961"/>
		<updated>2025-09-09T17:04:18Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Texture editing tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a list of modding tools that can be used to edit Hedgehog Engine resources.&lt;br /&gt;
&lt;br /&gt;
== Archive unpackers ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
* [https://github.com/soopercool101/BrawlCrate BrawlCrate]&lt;br /&gt;
&lt;br /&gt;
== Level Editors ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/GLVL|GLVL]]&lt;br /&gt;
&lt;br /&gt;
== Parameter editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
&lt;br /&gt;
* [https://www.sweetscape.com/010editor/ 010 Editor] with [[Tools/010 Editor Binary Templates|RFL binary templates]]&lt;br /&gt;
&lt;br /&gt;
== Modeling and Animation tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.blender.org/ Blender]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]] (ASM editor)&lt;br /&gt;
&lt;br /&gt;
== Texture editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://developer.nvidia.com/texture-tools-exporter nVidia Texture Tools Exporter]&lt;br /&gt;
* [https://github.com/microsoft/DirectXTex/wiki/Texconv DirectX Texconv]&lt;br /&gt;
* [https://www.gimp.org/ GIMP]&lt;br /&gt;
* [https://www.getpaint.net/ Paint.NET]&lt;br /&gt;
* [[Tools/SkythTools|NeedleTextureStreamingPackage]]&lt;br /&gt;
* [[Tools/NeedleTextureStreamingUtility|NeedleTextureStreamingUtility]]&lt;br /&gt;
&lt;br /&gt;
== Audio tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (cri_utf_tool, cri_awb_tool)&lt;br /&gt;
* [https://github.com/libertyernie/LoopingAudioConverter LoopingAudioConverter]&lt;br /&gt;
* [https://www.foobar2000.org/ foobar2000] (with [https://www.foobar2000.org/components/view/foo_input_vgmstream libvgmstream plugin])&lt;br /&gt;
* [[Tools/SonicAudioTools|SonicAudioTools]] (Deprecated)&lt;br /&gt;
* [[Tools/Eternity Audio Tool|Eternity Audio Tool]] (Outdated)&lt;br /&gt;
&lt;br /&gt;
== GI baking tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/HedgeGI|HedgeGI]]&lt;br /&gt;
&lt;br /&gt;
== Localization editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/Puyo Text Editor|Puyo Text Editor]]&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
&lt;br /&gt;
== UI editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/DevTools|DevTools]] (SurfRide Editor)&lt;br /&gt;
&lt;br /&gt;
== Cutscene editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/DevTools|DevTools]] (DvScene Editor)&lt;br /&gt;
&lt;br /&gt;
== General resource conversion tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/HedgeTools|HedgeTools]]&lt;br /&gt;
* [[Tools/SkythTools|SkythTools]]&lt;br /&gt;
* [[Tools/HedgeNeedle|HedgeNeedle]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]]&lt;br /&gt;
&lt;br /&gt;
== Other useful tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
* [https://www.sweetscape.com/010editor/ 010 Editor]&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources&amp;diff=960</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources&amp;diff=960"/>
		<updated>2025-09-09T17:02:24Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Resources are the data files that contain things like 3D models, textures, animations and any other kind of assets. Many of these resources are stored in proprietary formats optimized for fast loading times, and thus require special tools to be edited by modders. Many of them are also built using proprietary SEGA technologies, like the ASM animation system. On this page we provide a list of all known resources supported by the Hedgehog Engine, their support in various games and tools that can be used to edit them.&lt;br /&gt;
&lt;br /&gt;
== Archives ==&lt;br /&gt;
Archives are compressed archives (&amp;quot;zip files&amp;quot;) that contain most of the game&#039;s data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile|Packfile]]&lt;br /&gt;
|Compressed archive containing most other resources.&lt;br /&gt;
|.pac&lt;br /&gt;
|Packfile&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile Info|Packfile Info]]&lt;br /&gt;
|Contains information about a packfile.&lt;br /&gt;
|&lt;br /&gt;
|PackfileInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile Extended Info|Packfile Extended Info]]&lt;br /&gt;
|Contains extended information about a packfile.&lt;br /&gt;
|&lt;br /&gt;
|PackfileExtendedInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Depend|Depend]]&lt;br /&gt;
|Stores information about packfile dependencies.&lt;br /&gt;
|.pac.d&lt;br /&gt;
|ResDepend&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pac General|Pac General]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ResPacGeneral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Virtual Archive|Virtual Archive]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|VirtualArchive&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AR File&lt;br /&gt;
|Archive containing resources.&lt;br /&gt;
|.ar&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|-&lt;br /&gt;
|ARL File&lt;br /&gt;
|Link file containing data on what each .ar file stores and its appropriate splits.&lt;br /&gt;
|.arl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Levels ==&lt;br /&gt;
Levels are a new system in [[Sonic Frontiers]] and up that allow the game to dynamically load other resources when they are needed. They specify which resources need to be loaded to load a certain &amp;quot;level&amp;quot;. This is a system similar to Unreal Engine&#039;s level system.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Level|Level]]&lt;br /&gt;
|A special resource that&#039;s only used to check whether a level has been loaded in the engine. It does not contain any data.&lt;br /&gt;
|.level&lt;br /&gt;
|ResLevel&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Master Level|Master Level]]&lt;br /&gt;
|Information about levels: which levels depend on each other, and also which resources to load in order to load a level.&lt;br /&gt;
|.mlevel&lt;br /&gt;
|ResMasterLevel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Configuration Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Reflection|Reflection]]&lt;br /&gt;
|Reflection-enabled configuration data. Contains parameters that can be edited by developers without changing game code.&lt;br /&gt;
|.rfl&lt;br /&gt;
|ResReflection&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Set Objects ==&lt;br /&gt;
Set object data is what specifies where game objects are placed and how they are configured. This is what you&#039;ll be editing most when making a stage mod.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/ObjectWorld / GEdit|ObjectWorld / GEdit]]&lt;br /&gt;
|Object placement and parameter data (HE2).&lt;br /&gt;
|.gedit&lt;br /&gt;
|ResObjectWorld&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/HedgeSet|HedgeSet]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Set Object|Orca: Set Object]]&lt;br /&gt;
|Object placement and parameter data (HE1).&lt;br /&gt;
|.orc&lt;br /&gt;
|ResOrcaData&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/GLVL|GLVL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gismos ==&lt;br /&gt;
Gismos are small reusable objects (that can potentially have physics applied) intended usually for decoration.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Gismo Config Design|Gismo Config Design]]&lt;br /&gt;
|Defines the properties of gismo objects.&lt;br /&gt;
|.gismod&lt;br /&gt;
|ResGismoConfigDesign&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Gismo Config Plan|Gismo Config Plan]]&lt;br /&gt;
|&lt;br /&gt;
|.gismop&lt;br /&gt;
|ResGismoConfigPlan&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Models ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Model| Model]]&lt;br /&gt;
| Contains 3D model information (also contains an armature).&lt;br /&gt;
|.model&lt;br /&gt;
|ResModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Model|Terrain Model]]&lt;br /&gt;
|Contains 3D model information specifically for terrain models. Similar to &amp;quot;Model&amp;quot; but does not contain an armature.&lt;br /&gt;
|.terrain-model&lt;br /&gt;
|ResTerrainModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Heightfield|Heightfield]]&lt;br /&gt;
|Height field maps.&lt;br /&gt;
|.heightfield&lt;br /&gt;
|ResHeightField&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HeightFielder|HeightFielder]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Model Pointcloud|Model Pointcloud]]&lt;br /&gt;
| Placement information for model or terrain model instances.&lt;br /&gt;
|.pcmodel&lt;br /&gt;
|ResPointcloudModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Map|Orca: Map]]&lt;br /&gt;
|Placement information for model or terrain model instances.&lt;br /&gt;
|.map.bin&lt;br /&gt;
|ResDivMap&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Model Instance Info|MIRAGE Model Instance Info]]&lt;br /&gt;
|Contains information about model instances.&lt;br /&gt;
|.model-instanceinfo&lt;br /&gt;
|ResMirageModelInstanceInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Terrain Instance Info|MIRAGE Terrain Instance Info]]&lt;br /&gt;
|Contains information about terrain model instances.&lt;br /&gt;
|.terrain-instanceinfo&lt;br /&gt;
|ResMirageTerrainInstanceInfo&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Link Info|Vertex Link Info]]&lt;br /&gt;
|&lt;br /&gt;
|.vli&lt;br /&gt;
|ResVertexLinkInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MetaTerrainInstance&lt;br /&gt;
|A file containing model and lightfield data capable of animating, commonly used for grass and clouds.&lt;br /&gt;
|.mti&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Texture|Texture]]&lt;br /&gt;
|2D textures for model skinning.&lt;br /&gt;
|.dds&lt;br /&gt;
|ResTexture&lt;br /&gt;
|&lt;br /&gt;
* [https://developer.nvidia.com/texture-tools-exporter nVidia Texture Tools Exporter]&lt;br /&gt;
* DirectX texconv&lt;br /&gt;
* [https://www.gimp.org/ GIMP (cannot read BC7)]&lt;br /&gt;
* [https://www.getpaint.net/ Paint.NET]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Streaming Texture|Streaming Texture]]&lt;br /&gt;
|Streamed 2D textures.&lt;br /&gt;
|&lt;br /&gt;
|ResStreamingTexture&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Streaming Texture Package|Streaming Texture Package]]&lt;br /&gt;
|A list of 2D texture data for streaming&lt;br /&gt;
|.ntsp&lt;br /&gt;
|ResTextureStreamingPackage&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/NeedleTextureStreamingUtility|NeedleTextureStreamingUtility]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Materials ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Material|Material]]&lt;br /&gt;
|Material information. Contains shader parameters and texture names.&lt;br /&gt;
|.material&lt;br /&gt;
|ResMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Material|Terrain Material]]&lt;br /&gt;
|Terrain material information.&lt;br /&gt;
|.terrain-material&lt;br /&gt;
|ResTerrainMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Material (Unleashed)|Material]]&lt;br /&gt;
|Contains shader information and texset resource information.&lt;br /&gt;
|.material&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|-&lt;br /&gt;
|Texture&lt;br /&gt;
|Contains parameter information for texture files linked to a material.&lt;br /&gt;
|.texture&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|-&lt;br /&gt;
|Texset&lt;br /&gt;
|Contains groupings of textures linked to a material.&lt;br /&gt;
|.texset&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
All kinds of animation data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PXD Skeleton|PXD Skeleton]]&lt;br /&gt;
|Skeleton for PXD animations.&lt;br /&gt;
|.skl.pxd&lt;br /&gt;
|ResSkeletonPxd&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]] &lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PXD Animation|PXD Animation]]&lt;br /&gt;
|Animation data.&lt;br /&gt;
|.anm.pxd&lt;br /&gt;
|ResAnimationPxd&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PBA Skeleton|PBA Skeleton]]&lt;br /&gt;
|Skeleton for physics based animations.&lt;br /&gt;
|.pba&lt;br /&gt;
|ResPhysicalSkeleton&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Animation State Machine|Animation State Machine]]&lt;br /&gt;
|Animation State Machine data. Handles animation blending, animation states, animation triggers, etc.&lt;br /&gt;
|.asm&lt;br /&gt;
|ResAnimator&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/HelperBone|HelperBone]]&lt;br /&gt;
|Currently unknown.&lt;br /&gt;
|.helperbone.bin&lt;br /&gt;
|ResHelperBone&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Material Animation|Material Animation]]&lt;br /&gt;
|Material animations.&lt;br /&gt;
|.mat-anim&lt;br /&gt;
|ResAnimMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/UV Animation|UV Animation]]&lt;br /&gt;
|Texture UV animations (presumably Wii SRT0).&lt;br /&gt;
|.uv-anim&lt;br /&gt;
|ResAnimTexSrt&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Texture Pattern Animation|Texture Pattern Animation]]&lt;br /&gt;
|Texture pattern animations (presumably Wii PAT0).&lt;br /&gt;
|.pt-anim&lt;br /&gt;
|ResAnimTexPat&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Visibility Animation|Visibility Animation]]&lt;br /&gt;
|Bone visibility animations (presumably Wii VIS0).&lt;br /&gt;
|.vis-anim&lt;br /&gt;
|ResAnimVis&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Camera Animation|Camera Animation]]&lt;br /&gt;
|Camera animations.&lt;br /&gt;
|.cam-anim&lt;br /&gt;
|ResAnimCameraContainer&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Light Animation|Light Animation]]&lt;br /&gt;
|Light animations.&lt;br /&gt;
|.lit-anim&lt;br /&gt;
|ResAnimLightContainer&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Animation Texture|Vertex Animation Texture]]&lt;br /&gt;
|Vertex animation textures (textures that efficiently encode large scale animations on vertices).&lt;br /&gt;
|.vat&lt;br /&gt;
|ResVertexAnimationTexture&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Havok Skeleton|Havok Skeleton]]&lt;br /&gt;
|Skeleton for Havok Animations&lt;br /&gt;
|.skl.hkx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Havok Animation|Havok Animation]]&lt;br /&gt;
|Animation data.&lt;br /&gt;
|.anm.hkx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lighting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Light|MIRAGE Light]]&lt;br /&gt;
|MIRAGE point lights.&lt;br /&gt;
|.light&lt;br /&gt;
|ResMirageLight&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Lightfield|MIRAGE Lightfield]]&lt;br /&gt;
|MIRAGE light field data.&lt;br /&gt;
|.lft&lt;br /&gt;
|ResMirageLightField&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SH Lightfield|SH Lightfield]]&lt;br /&gt;
|Spherical harmonics based light field data.&lt;br /&gt;
|.lf&lt;br /&gt;
|ResSHLightField&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Probe|Probe]]&lt;br /&gt;
|IBL probe data.&lt;br /&gt;
|.probe&lt;br /&gt;
|ResProbe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Light Pointcloud|Light Pointcloud]]&lt;br /&gt;
|Instance placement information for point lights.&lt;br /&gt;
|.pcrt&lt;br /&gt;
|ResPointcloudLight&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FxCol ==&lt;br /&gt;
FxCol defines collision shapes in the game world that can apply post processing effects when the player walks through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/FxColFile2|FxColFile2]]&lt;br /&gt;
|FxCol configuration.&lt;br /&gt;
|.fxcol&lt;br /&gt;
|ResFxColFile2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SvCol ==&lt;br /&gt;
SvCol defines collision shapes in the game world that control sector visibility (a form of culling).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SvCol2|SvCol2]]&lt;br /&gt;
|SvCol configuration.&lt;br /&gt;
|.svcol&lt;br /&gt;
|ResSvCol2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Effects ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Cyan Effect|Cyan Effect]]&lt;br /&gt;
|Particle effect systems.&lt;br /&gt;
|.cemt&lt;br /&gt;
|ResEffect&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/CEMT Color Editing Tool|CEMT Color Editing Tool]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Particle Location|Particle Location]]&lt;br /&gt;
|Database of particle effects with transform values and sounds&lt;br /&gt;
|.effdb&lt;br /&gt;
|ResParticleLocation&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Mesh|Bullet Mesh]]&lt;br /&gt;
|Bullet physics engine mesh. Used for collision detection.&lt;br /&gt;
|.btmesh&lt;br /&gt;
|ResPhysicsMesh&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/btmesh|btmesh]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Soft Body|Bullet Soft Body]]&lt;br /&gt;
|Bullet physics engine soft body.&lt;br /&gt;
|.btsb&lt;br /&gt;
|ResSoftBody&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Skinned Mesh Collider|Bullet Skinned Mesh Collider]]&lt;br /&gt;
|Bullet physics engine skinned mesh collider. Not exactly known what this is currently.&lt;br /&gt;
|.btsmc&lt;br /&gt;
|ResSkinnedMeshCollider&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Collision Pointcloud|Collision Pointcloud]]&lt;br /&gt;
|Instance placement info for collision meshes.&lt;br /&gt;
|.pccol&lt;br /&gt;
|ResPointCloudCollision&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]] &lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paths ==&lt;br /&gt;
Paths are 3D splines that the game engine uses for various tasks, e.g. to generate grind rails, calculate projectile movements, generate replicated objects and keep the player on a 2D rail.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Spline Path|Orca: Spline Path]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path.bin&lt;br /&gt;
|ResSplinePath&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Spline Path 2|Orca: Spline Path 2]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path2.bin&lt;br /&gt;
|ResSplinePath2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Path|Path]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path&lt;br /&gt;
|ResSplinePath&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Occlusion Capsule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Occlusion Capsule|Occlusion Capsule]]&lt;br /&gt;
|Occlusion capsules&lt;br /&gt;
|.occ&lt;br /&gt;
|ResOcclusionCapsule&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Atmosphere ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atmospheric Fog|Atmospheric Fog]]&lt;br /&gt;
|Atmospheric fog data.&lt;br /&gt;
|?&lt;br /&gt;
|ResAtmosphericFog&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Density (vegetation) ==&lt;br /&gt;
Density is HE&#039;s GPU based vegetation system.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Setting|Density Setting]]&lt;br /&gt;
|Configures the Hedgehog Engine density system. Configures all the density system&#039;s parameters and references density models.&lt;br /&gt;
|.densitysetting&lt;br /&gt;
|ResDensitySetting&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Point Cloud|Density Point Cloud]]&lt;br /&gt;
|Placement of pre-baked density models.&lt;br /&gt;
|.densitypointcloud&lt;br /&gt;
|ResDensityPointCloud&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Instance|Density Instance]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ResDensityInstance&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Grass Info|Terrain Grass Info]]&lt;br /&gt;
|&lt;br /&gt;
|.grass.bin&lt;br /&gt;
|ResTerrainGrassInfo&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NavMesh ==&lt;br /&gt;
Navmeshes are meshes that the game&#039;s AI actors can use to navigate the map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/NavMesh Config|NavMesh Config]]&lt;br /&gt;
|Navmesh configuration&lt;br /&gt;
|.nmc&lt;br /&gt;
|ResNavMeshConfig&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/NavMesh Tile|NavMesh Tile]]&lt;br /&gt;
|Navmesh tile&lt;br /&gt;
|.nmt&lt;br /&gt;
|ResNavMeshTile&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Navigation Mesh&lt;br /&gt;
|Navigation mesh map&lt;br /&gt;
|.navi.xml / .navi.xmlbin&lt;br /&gt;
|NavigationMesh&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AI State Machine ==&lt;br /&gt;
The AI state machine controls AI behavior of enemies in game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/AI State Machine|AI State Machine]]&lt;br /&gt;
|Configuration for the AI State Machine&lt;br /&gt;
|.aism&lt;br /&gt;
|ResAIStateMachine&lt;br /&gt;
|[[Tools/010 Editor Binary Templates|AshDump]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cinematics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Scene|Scene]]&lt;br /&gt;
|Legacy cinematics system.&lt;br /&gt;
|.scene&lt;br /&gt;
|ResScene&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/DvScene|DvScene]]&lt;br /&gt;
|Cinematics.&lt;br /&gt;
|.dvscene&lt;br /&gt;
|ResDvScene&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/DvSceneTool|DvSceneTool]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/USM|USM]]&lt;br /&gt;
|CRIware&#039;s video format&lt;br /&gt;
|.usm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Decals ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Decal|Decal]]&lt;br /&gt;
|Decals. Referenced in FxColManager.&lt;br /&gt;
|?&lt;br /&gt;
|ResDecal&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Decal Pointcloud|Decal Pointcloud]]&lt;br /&gt;
|Placement information for decal instances. Referenced in FxColManager.&lt;br /&gt;
|?&lt;br /&gt;
|ResDecalPointcloud&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shaders ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Shader|Vertex Shader]]&lt;br /&gt;
|Vertex shaders.&lt;br /&gt;
|.vso&lt;br /&gt;
|ResVertexShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pixel Shader|Pixel Shader]]&lt;br /&gt;
|Pixel shaders.&lt;br /&gt;
|.pso&lt;br /&gt;
|ResFragmentShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Compute Shader|Compute Shader]]&lt;br /&gt;
|Compute shaders&lt;br /&gt;
|.cso&lt;br /&gt;
|ResComputeShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Shader List|Shader List]]&lt;br /&gt;
|List of shaders.&lt;br /&gt;
|.shader-list&lt;br /&gt;
|ResShaderList&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atom Config|Atom Config]]&lt;br /&gt;
|CRIware Atom configuration data.&lt;br /&gt;
|.acf&lt;br /&gt;
|ResAtomConfig&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atom Cue Sheet|Atom Cue Sheet]]&lt;br /&gt;
|CRIware Atom cue sheet. Contains the game&#039;s audio and cue/AISAC information.&lt;br /&gt;
|.acb&lt;br /&gt;
|ResAtomCueSheet&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (cri_utf_tool)&lt;br /&gt;
* [[Tools/SonicAudioTools|SonicAudioTools]] (Deprecated)&lt;br /&gt;
* [[Tools/Eternity Audio Tool|Eternity Audio Tool]] (Outdated)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SurfRide SWIF|SurfRide SWIF]]&lt;br /&gt;
|Describes UI layout and animations. Similar to a primitive version of Adobe Flash.&lt;br /&gt;
|.swif&lt;br /&gt;
|ResSurfRideProject&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Lua|Lua]]&lt;br /&gt;
|A Lua script.&lt;br /&gt;
|.lua&lt;br /&gt;
|ResLuaData&lt;br /&gt;
|&lt;br /&gt;
* Any text editor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Haptics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vibration|Vibration]]&lt;br /&gt;
|Haptics vibration information.&lt;br /&gt;
|.vib&lt;br /&gt;
|ResVibration&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clipmap ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Clipmap Ocean|Clipmap Ocean]]&lt;br /&gt;
|&lt;br /&gt;
|.cob&lt;br /&gt;
|ResClipmapOcean&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Project|Converse Project]]&lt;br /&gt;
|Localization project data.&lt;br /&gt;
|.cnvrs-proj&lt;br /&gt;
|ResTextProject&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Text|Converse Text]]&lt;br /&gt;
|Localization text data.&lt;br /&gt;
|.cnvrs-text&lt;br /&gt;
|ResText&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Puyo Text Editor|Puyo Text Editor]]&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Meta|Converse Meta]]&lt;br /&gt;
|Localization metadata.&lt;br /&gt;
|.cnvrs-meta&lt;br /&gt;
|ResTextMeta&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fonts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bitmap Font|Bitmap Font]]&lt;br /&gt;
|Bitmap fonts.&lt;br /&gt;
|.bfnt&lt;br /&gt;
|ResBitmapFont&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Scalable Font Set|Scalable Font Set]]&lt;br /&gt;
|Vector fonts.&lt;br /&gt;
|.scfnt&lt;br /&gt;
|ResScalableFontSet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Optical Kerning|Optical Kerning]]&lt;br /&gt;
|Information about optical text kerning.&lt;br /&gt;
|.okern&lt;br /&gt;
|ResOpticalKerning&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unicode ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/ICU data|ICU data]]&lt;br /&gt;
|Data for libicu (unicode library)&lt;br /&gt;
|.icu&lt;br /&gt;
|ResIcuData&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Acceleration Structures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/K-D Tree|K-D Tree]]&lt;br /&gt;
|A serialized [[wikipedia:K-d_tree|k-d tree]]. This resource has only been seen as a runtime resource in the engine or embedded in [[Resources/Path|Path]] resources.&lt;br /&gt;
|N/A&lt;br /&gt;
|ResKdTree&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unknown ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Name Extra|Name Extra]]&lt;br /&gt;
|&lt;br /&gt;
|.nextra&lt;br /&gt;
|ResNameExtra&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pointcloud|Pointcloud]]&lt;br /&gt;
|&lt;br /&gt;
|.pointcloud&lt;br /&gt;
|ResPointcloud&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/DvScene&amp;diff=959</id>
		<title>Resources/DvScene</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/DvScene&amp;diff=959"/>
		<updated>2025-08-27T12:07:41Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Cinematics|Cinematics]]|extension=.dvscene|games=* [[Games/Sonic Frontiers|Sonic Frontiers]] &lt;br /&gt;
* [[Games/Shadow Generations|Shadow Generations]]|tools=* [[Tools/010 Editor Binary Templates|DiEventTemplate]]&lt;br /&gt;
* [[Tools/DvSceneTool|DvSceneTool]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]|status=Almost finished|container=|name=DvScene}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DvScene&#039;&#039;&#039; &#039;&#039;(also known as DiEvent)&#039;&#039; is a file format that&#039;s been used in Hedgehog Engine 2 since [[Games/Sonic Frontiers|Sonic Frontiers]], it&#039;s a collection of nodes and resources that are easily editable for simple modification or creation of new cutscenes/cinematics. &lt;br /&gt;
&lt;br /&gt;
The format and sub-system originates from the [[wikipedia:Yakuza_(franchise)|Yakuza game series]] in which it was known as &#039;&#039;&#039;DiEvent&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== File Structure ==&lt;br /&gt;
Each &#039;&#039;&#039;DvScene&#039;&#039;&#039; consists of 2 parts, &#039;&#039;&#039;DvCommon&#039;&#039;&#039; and &#039;&#039;&#039;DvResource&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== DvCommon ===&lt;br /&gt;
&#039;&#039;&#039;DvCommon&#039;&#039;&#039; consists of: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Frame start and end&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Number of visual nodes&#039;&#039;&#039; (not confirmed).&lt;br /&gt;
* &#039;&#039;&#039;Cuts&#039;&#039;&#039;, the timestamps of every camera cut in the cinematic.&lt;br /&gt;
* &#039;&#039;&#039;Pages&#039;&#039;&#039;, for skipping frames in the cutscene, based on a set condition. Used for QTEs.&lt;br /&gt;
* &#039;&#039;&#039;Resource Cuts&#039;&#039;&#039;, timestamps when the Resources should deload (all of the time it&#039;s a single item, obviously).&lt;br /&gt;
* &#039;&#039;&#039;Node&#039;&#039;&#039;, the main Path DvNode.&lt;br /&gt;
&lt;br /&gt;
The main path DvNode is the base node of the entire dvscene. Path standing for its Node Category.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Every DvNode contains:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GUID&#039;&#039;&#039;, used to connect the node to resources or just to easily tell them apart. Every node has a unique GUID.&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;, to easily organize the nodes.&lt;br /&gt;
* &#039;&#039;&#039;Node Category&#039;&#039;&#039;, changes the nodes type, each node type does something else.&lt;br /&gt;
* &#039;&#039;&#039;Node Flags&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Priority&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Child Nodes&#039;&#039;&#039;, the child nodes of the node.&lt;br /&gt;
* &#039;&#039;&#039;Node Data&#039;&#039;&#039;, the parameters and values that change based on the Node Category.&lt;br /&gt;
&lt;br /&gt;
The node data is dependant on the Node Category, every category has its own set of parameters.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Node Categories in Sonic Frontiers&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!In-Engine Name&lt;br /&gt;
!Basic structure&lt;br /&gt;
|-&lt;br /&gt;
|Path&lt;br /&gt;
|Transforms the child nodes of this node&lt;br /&gt;
|DvNodePath&lt;br /&gt;
|Contains a Matrix4x4 which is then used to do transforms.&lt;br /&gt;
|-&lt;br /&gt;
|Camera&lt;br /&gt;
|Creates a Camera Object in to the cinematic&lt;br /&gt;
|DvNodeCamera&lt;br /&gt;
|Usually empty, but it has support for a list of Frame Progressions, used to skip frames in the camera animation.&lt;br /&gt;
|-&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|Adds animation to the parent node Camera&lt;br /&gt;
|DvNodeCameraMotion&lt;br /&gt;
|Contains the frame start and end of the camera animation. The GUID connects the node to a Resource to set the [[Resources/Camera Animation|Camera Animation]] file. &lt;br /&gt;
|-&lt;br /&gt;
|Character&lt;br /&gt;
|Creates a Character Model Object in to the cinematic&lt;br /&gt;
|DvNodeCharacter&lt;br /&gt;
|Contains the Model Name, Skeleton Name and sometimes a so called Internal Name is used; mostly used for characters that are very common, such as Sonic, Tails etc. These have a special shortcut for each, i.e. &#039;&#039;&#039;sh - Shadow, snc - Sonic, kn - Knuckles&#039;&#039;&#039;. The GUID connects the node to a Resource to set the [[Resources/Animation State Machine|Animation State Machine]] file. &lt;br /&gt;
|-&lt;br /&gt;
|Character Motion&lt;br /&gt;
|Adds animation to the parent node Character&lt;br /&gt;
|DvNodeCharacterMotion&lt;br /&gt;
|Contains the frame start and end of the animation, [[Resources/Animation State Machine|Animation State Machine]] state name and animation speed. The GUID connects the node to a Resource to set the animation file.&lt;br /&gt;
|-&lt;br /&gt;
|Model&lt;br /&gt;
|Adds a Model Object in to the cinematic&lt;br /&gt;
|DvNodeModel&lt;br /&gt;
|The exact same as Character.&lt;br /&gt;
|-&lt;br /&gt;
|Model Motion&lt;br /&gt;
|Adds animation to the parent node Model&lt;br /&gt;
|DvNodeModelMotion&lt;br /&gt;
|The exact same as Character Motion&lt;br /&gt;
|-&lt;br /&gt;
|Model Node&lt;br /&gt;
|Creates a node to which other nodes can be attached as if it was the bone of the parent Character node&lt;br /&gt;
|DvNodeModelNode&lt;br /&gt;
|Contains the bones name.&lt;br /&gt;
|-&lt;br /&gt;
|Element&lt;br /&gt;
|Subcategory for nodes, contains mostly game specific elements such as DvElementRifleBeastLighting from [[Games/Sonic Frontiers|Sonic Frontiers]]&lt;br /&gt;
|DvElement&lt;br /&gt;
|Contains the Element ID, frame start and end, play type of the element and update timing of the element.&lt;br /&gt;
There&#039;s only 3 Element Play Types and they&#039;re very straight forward, Normal - plays the element normally; OneShot - plays only once; Always - plays always.&lt;br /&gt;
&lt;br /&gt;
Update timing is a value that consists of multiple different types to change the update timings of the element, alot of these have yet to be found purposes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DvResource ===&lt;br /&gt;
&#039;&#039;&#039;DvResource&#039;&#039;&#039; is an array of resources that are loaded for a &#039;&#039;&#039;DvScene&#039;&#039;&#039;. These are connected with &#039;&#039;&#039;GUIDs&#039;&#039;&#039; to several &#039;&#039;&#039;DvNode types&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
They only consist of a &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;GUID&#039;&#039;&#039; and &#039;&#039;&#039;file type&#039;&#039;&#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Resource Types in Sonic Frontiers&lt;br /&gt;
!Name&lt;br /&gt;
!File extension&lt;br /&gt;
!Used by Node&lt;br /&gt;
|-&lt;br /&gt;
|Character&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Animation State Machine|(.asm)]]&#039;&#039;&#039;&lt;br /&gt;
|Character&lt;br /&gt;
|-&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Camera Animation|(.cam-anim)]]&#039;&#039;&#039;&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|-&lt;br /&gt;
|Character Motion&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/PXD Animation|(.anm.pxd)]]&#039;&#039;&#039;&lt;br /&gt;
|Character Motion&lt;br /&gt;
|-&lt;br /&gt;
|Model&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Animation State Machine|(.asm)]]&#039;&#039;&#039;&lt;br /&gt;
|Model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Technical Info ==&lt;br /&gt;
All of the pointers in DvScene are 32-bit and relative to DvCommon.&lt;br /&gt;
&lt;br /&gt;
This is a structure that&#039;s used throughout DvScene, it&#039;s an easy way to read an array.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; start=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
struct DvObject{&lt;br /&gt;
    int count; // amount of items in the array&lt;br /&gt;
    int size; // the total size of of all the elements&lt;br /&gt;
    long long unknown; // no instance with data here has been found&lt;br /&gt;
    T items; // the array itself, not a pointer&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DvScene starts with two simple values, the pointers to DvCommon and DvResource&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvScene{&lt;br /&gt;
    DvCommon* common; // 32-bit pointer relative to DvCommon&lt;br /&gt;
    DvObject&amp;lt;DvResource&amp;gt;* resources; // 32-bit pointer relative to DvCommon&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Before going into DvCommon, we first need to define the structures that are used in DvCommon.&lt;br /&gt;
&lt;br /&gt;
There&#039;s a fairly easy to use system for skipping frames for either translation issues or QTEs. They&#039;re called DvPages. &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;struct DvCondition{&lt;br /&gt;
    int type; // the condition type&lt;br /&gt;
    uint parametersSize; // the size of condition dataa&lt;br /&gt;
    long unknown; // no instance with data here has been found&lt;br /&gt;
    char parameterData; // the data of the parameter, different for every condtion type&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvTransition{&lt;br /&gt;
    uint destinationPageID; // the page it should jump to&lt;br /&gt;
    uint conditionCount; // amount of conditions&lt;br /&gt;
    ulong conditionSize; // size of conditions&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvPage{&lt;br /&gt;
    uint unk0; // unknown&lt;br /&gt;
    uint unk1; // unknown&lt;br /&gt;
    uint frameStart; // the start tick of the page, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint frameEnd; // the end tick of the page, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint transitionCount; // amount of transitions&lt;br /&gt;
    uint transitionSize; // size of transitions&lt;br /&gt;
    uint skipFrame; // the tick the cutscene should skip to, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint index; // the pages index&lt;br /&gt;
    uint pageSize; // size of the pageData&lt;br /&gt;
    char empty[12];&lt;br /&gt;
    char name[32]; // the name of the page&lt;br /&gt;
    char pageData; // the data of the page, hasn&#039;t been researched&lt;br /&gt;
    DvTransition transitions;&lt;br /&gt;
};&amp;lt;/syntaxhighlight&amp;gt;The DvPages use ticks, or also could be called just a &#039;&#039;truncated float.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The important part of DvScene&#039;s, the DvNode.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvNode{&lt;br /&gt;
    Guid guid; // unique identifier for the node, also used for connection with DvResource&lt;br /&gt;
    uint nodeCategory; // the type of node&lt;br /&gt;
    uint nodeSize; // size of the node data&lt;br /&gt;
    uint childCount; // amount of child nodes&lt;br /&gt;
    uint nodeFlags; // yet to be researched&lt;br /&gt;
    uint priority; // the priority of the node when reading&lt;br /&gt;
    char empty[12];&lt;br /&gt;
    char name[64]; // the name of the node&lt;br /&gt;
    char nodeData; // the data of the node, different for every node category&lt;br /&gt;
    DvNode childNodes; // the children of this node&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The Node Data is different for every single Node Category, it&#039;s the parameters of the node itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the controller of DvScenes, DvCommon.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvDisableFrame{&lt;br /&gt;
    float start;&lt;br /&gt;
    float end;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvCommon{&lt;br /&gt;
    long unknown; // not read by the game&lt;br /&gt;
    float frameStart; // the start frame of the cutscene&lt;br /&gt;
    float frameEnd; // the end frame of the cutscene&lt;br /&gt;
    uint drawNodeNumber; // amount of visual nodes (unconfirmed, not read by the game)&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* cuts; // every camera cut in cutscene&lt;br /&gt;
    DvObject&amp;lt;DvPage&amp;gt;* pages; // pages, used for QTEs and such&lt;br /&gt;
    DvObject&amp;lt;DvDisableFrame&amp;gt;* disableFrames; // ranges, which when playing the cutscene will get skipped&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* resourceCuts; // when the resource should deload, always has just one item&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* soundCuts; // not read by the game&lt;br /&gt;
    DvNode* node; // the main node of the cutscene&lt;br /&gt;
    float chainCameraIn; // not read by the game&lt;br /&gt;
    float chainCameraOut; // not read by the game&lt;br /&gt;
    int type; // unknown&lt;br /&gt;
    int skipPointTick; // not read by the game&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;All of the pointers are 32-bit and relative to DvCommon itself.&lt;br /&gt;
&lt;br /&gt;
The second important part of DvScene, is the DvResource.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvResource{&lt;br /&gt;
    Guid guid; // unique identifier for the resource, used to connect with DvNodes&lt;br /&gt;
    uint type; // the file type this resource is trying to use&lt;br /&gt;
    uint unk0; // unknown, always 0&lt;br /&gt;
    uint unk1; // unknown, always 1&lt;br /&gt;
    char filename[192]; // the filename of the file it&#039;s loading&lt;br /&gt;
    char unk2[596]; // unknown, could still be just space for the filename&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/DvScene&amp;diff=958</id>
		<title>Resources/DvScene</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/DvScene&amp;diff=958"/>
		<updated>2025-08-27T12:07:26Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Cinematics|Cinematics]]|extension=.dvscene|games=* [[Games/Sonic Frontiers|Sonic Frontiers]] &lt;br /&gt;
* [[Games/Shadow Generations|Shadow Generations]]|tools=* [[Tools/010 Editor Binary Templates|DiEventTemplate]]&lt;br /&gt;
* [[Tools/DvSceneTool|DvSceneTool]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]|status=Almost finished|container=|name=DvScene}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DvScene&#039;&#039;&#039; &#039;&#039;(also known as DiEvent)&#039;&#039; is a file format that&#039;s been used in Hedgehog Engine 2 since [[Games/Sonic Frontiers|Sonic Frontiers]], it&#039;s a collection of nodes and &lt;br /&gt;
&lt;br /&gt;
resources that are easily editable for simple modification or creation of new cutscenes/cinematics.&lt;br /&gt;
&lt;br /&gt;
The format and sub-system originates from the [[wikipedia:Yakuza_(franchise)|Yakuza game series]] in which it was known as &#039;&#039;&#039;DiEvent&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== File Structure ==&lt;br /&gt;
Each &#039;&#039;&#039;DvScene&#039;&#039;&#039; consists of 2 parts, &#039;&#039;&#039;DvCommon&#039;&#039;&#039; and &#039;&#039;&#039;DvResource&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== DvCommon ===&lt;br /&gt;
&#039;&#039;&#039;DvCommon&#039;&#039;&#039; consists of: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Frame start and end&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Number of visual nodes&#039;&#039;&#039; (not confirmed).&lt;br /&gt;
* &#039;&#039;&#039;Cuts&#039;&#039;&#039;, the timestamps of every camera cut in the cinematic.&lt;br /&gt;
* &#039;&#039;&#039;Pages&#039;&#039;&#039;, for skipping frames in the cutscene, based on a set condition. Used for QTEs.&lt;br /&gt;
* &#039;&#039;&#039;Resource Cuts&#039;&#039;&#039;, timestamps when the Resources should deload (all of the time it&#039;s a single item, obviously).&lt;br /&gt;
* &#039;&#039;&#039;Node&#039;&#039;&#039;, the main Path DvNode.&lt;br /&gt;
&lt;br /&gt;
The main path DvNode is the base node of the entire dvscene. Path standing for its Node Category.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Every DvNode contains:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GUID&#039;&#039;&#039;, used to connect the node to resources or just to easily tell them apart. Every node has a unique GUID.&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;, to easily organize the nodes.&lt;br /&gt;
* &#039;&#039;&#039;Node Category&#039;&#039;&#039;, changes the nodes type, each node type does something else.&lt;br /&gt;
* &#039;&#039;&#039;Node Flags&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Priority&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Child Nodes&#039;&#039;&#039;, the child nodes of the node.&lt;br /&gt;
* &#039;&#039;&#039;Node Data&#039;&#039;&#039;, the parameters and values that change based on the Node Category.&lt;br /&gt;
&lt;br /&gt;
The node data is dependant on the Node Category, every category has its own set of parameters.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Node Categories in Sonic Frontiers&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!In-Engine Name&lt;br /&gt;
!Basic structure&lt;br /&gt;
|-&lt;br /&gt;
|Path&lt;br /&gt;
|Transforms the child nodes of this node&lt;br /&gt;
|DvNodePath&lt;br /&gt;
|Contains a Matrix4x4 which is then used to do transforms.&lt;br /&gt;
|-&lt;br /&gt;
|Camera&lt;br /&gt;
|Creates a Camera Object in to the cinematic&lt;br /&gt;
|DvNodeCamera&lt;br /&gt;
|Usually empty, but it has support for a list of Frame Progressions, used to skip frames in the camera animation.&lt;br /&gt;
|-&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|Adds animation to the parent node Camera&lt;br /&gt;
|DvNodeCameraMotion&lt;br /&gt;
|Contains the frame start and end of the camera animation. The GUID connects the node to a Resource to set the [[Resources/Camera Animation|Camera Animation]] file. &lt;br /&gt;
|-&lt;br /&gt;
|Character&lt;br /&gt;
|Creates a Character Model Object in to the cinematic&lt;br /&gt;
|DvNodeCharacter&lt;br /&gt;
|Contains the Model Name, Skeleton Name and sometimes a so called Internal Name is used; mostly used for characters that are very common, such as Sonic, Tails etc. These have a special shortcut for each, i.e. &#039;&#039;&#039;sh - Shadow, snc - Sonic, kn - Knuckles&#039;&#039;&#039;. The GUID connects the node to a Resource to set the [[Resources/Animation State Machine|Animation State Machine]] file. &lt;br /&gt;
|-&lt;br /&gt;
|Character Motion&lt;br /&gt;
|Adds animation to the parent node Character&lt;br /&gt;
|DvNodeCharacterMotion&lt;br /&gt;
|Contains the frame start and end of the animation, [[Resources/Animation State Machine|Animation State Machine]] state name and animation speed. The GUID connects the node to a Resource to set the animation file.&lt;br /&gt;
|-&lt;br /&gt;
|Model&lt;br /&gt;
|Adds a Model Object in to the cinematic&lt;br /&gt;
|DvNodeModel&lt;br /&gt;
|The exact same as Character.&lt;br /&gt;
|-&lt;br /&gt;
|Model Motion&lt;br /&gt;
|Adds animation to the parent node Model&lt;br /&gt;
|DvNodeModelMotion&lt;br /&gt;
|The exact same as Character Motion&lt;br /&gt;
|-&lt;br /&gt;
|Model Node&lt;br /&gt;
|Creates a node to which other nodes can be attached as if it was the bone of the parent Character node&lt;br /&gt;
|DvNodeModelNode&lt;br /&gt;
|Contains the bones name.&lt;br /&gt;
|-&lt;br /&gt;
|Element&lt;br /&gt;
|Subcategory for nodes, contains mostly game specific elements such as DvElementRifleBeastLighting from [[Games/Sonic Frontiers|Sonic Frontiers]]&lt;br /&gt;
|DvElement&lt;br /&gt;
|Contains the Element ID, frame start and end, play type of the element and update timing of the element.&lt;br /&gt;
There&#039;s only 3 Element Play Types and they&#039;re very straight forward, Normal - plays the element normally; OneShot - plays only once; Always - plays always.&lt;br /&gt;
&lt;br /&gt;
Update timing is a value that consists of multiple different types to change the update timings of the element, alot of these have yet to be found purposes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DvResource ===&lt;br /&gt;
&#039;&#039;&#039;DvResource&#039;&#039;&#039; is an array of resources that are loaded for a &#039;&#039;&#039;DvScene&#039;&#039;&#039;. These are connected with &#039;&#039;&#039;GUIDs&#039;&#039;&#039; to several &#039;&#039;&#039;DvNode types&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
They only consist of a &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;GUID&#039;&#039;&#039; and &#039;&#039;&#039;file type&#039;&#039;&#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Resource Types in Sonic Frontiers&lt;br /&gt;
!Name&lt;br /&gt;
!File extension&lt;br /&gt;
!Used by Node&lt;br /&gt;
|-&lt;br /&gt;
|Character&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Animation State Machine|(.asm)]]&#039;&#039;&#039;&lt;br /&gt;
|Character&lt;br /&gt;
|-&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Camera Animation|(.cam-anim)]]&#039;&#039;&#039;&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|-&lt;br /&gt;
|Character Motion&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/PXD Animation|(.anm.pxd)]]&#039;&#039;&#039;&lt;br /&gt;
|Character Motion&lt;br /&gt;
|-&lt;br /&gt;
|Model&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Animation State Machine|(.asm)]]&#039;&#039;&#039;&lt;br /&gt;
|Model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Technical Info ==&lt;br /&gt;
All of the pointers in DvScene are 32-bit and relative to DvCommon.&lt;br /&gt;
&lt;br /&gt;
This is a structure that&#039;s used throughout DvScene, it&#039;s an easy way to read an array.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; start=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
struct DvObject{&lt;br /&gt;
    int count; // amount of items in the array&lt;br /&gt;
    int size; // the total size of of all the elements&lt;br /&gt;
    long long unknown; // no instance with data here has been found&lt;br /&gt;
    T items; // the array itself, not a pointer&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DvScene starts with two simple values, the pointers to DvCommon and DvResource&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvScene{&lt;br /&gt;
    DvCommon* common; // 32-bit pointer relative to DvCommon&lt;br /&gt;
    DvObject&amp;lt;DvResource&amp;gt;* resources; // 32-bit pointer relative to DvCommon&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Before going into DvCommon, we first need to define the structures that are used in DvCommon.&lt;br /&gt;
&lt;br /&gt;
There&#039;s a fairly easy to use system for skipping frames for either translation issues or QTEs. They&#039;re called DvPages. &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;struct DvCondition{&lt;br /&gt;
    int type; // the condition type&lt;br /&gt;
    uint parametersSize; // the size of condition dataa&lt;br /&gt;
    long unknown; // no instance with data here has been found&lt;br /&gt;
    char parameterData; // the data of the parameter, different for every condtion type&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvTransition{&lt;br /&gt;
    uint destinationPageID; // the page it should jump to&lt;br /&gt;
    uint conditionCount; // amount of conditions&lt;br /&gt;
    ulong conditionSize; // size of conditions&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvPage{&lt;br /&gt;
    uint unk0; // unknown&lt;br /&gt;
    uint unk1; // unknown&lt;br /&gt;
    uint frameStart; // the start tick of the page, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint frameEnd; // the end tick of the page, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint transitionCount; // amount of transitions&lt;br /&gt;
    uint transitionSize; // size of transitions&lt;br /&gt;
    uint skipFrame; // the tick the cutscene should skip to, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint index; // the pages index&lt;br /&gt;
    uint pageSize; // size of the pageData&lt;br /&gt;
    char empty[12];&lt;br /&gt;
    char name[32]; // the name of the page&lt;br /&gt;
    char pageData; // the data of the page, hasn&#039;t been researched&lt;br /&gt;
    DvTransition transitions;&lt;br /&gt;
};&amp;lt;/syntaxhighlight&amp;gt;The DvPages use ticks, or also could be called just a &#039;&#039;truncated float.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The important part of DvScene&#039;s, the DvNode.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvNode{&lt;br /&gt;
    Guid guid; // unique identifier for the node, also used for connection with DvResource&lt;br /&gt;
    uint nodeCategory; // the type of node&lt;br /&gt;
    uint nodeSize; // size of the node data&lt;br /&gt;
    uint childCount; // amount of child nodes&lt;br /&gt;
    uint nodeFlags; // yet to be researched&lt;br /&gt;
    uint priority; // the priority of the node when reading&lt;br /&gt;
    char empty[12];&lt;br /&gt;
    char name[64]; // the name of the node&lt;br /&gt;
    char nodeData; // the data of the node, different for every node category&lt;br /&gt;
    DvNode childNodes; // the children of this node&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The Node Data is different for every single Node Category, it&#039;s the parameters of the node itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the controller of DvScenes, DvCommon.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvDisableFrame{&lt;br /&gt;
    float start;&lt;br /&gt;
    float end;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvCommon{&lt;br /&gt;
    long unknown; // not read by the game&lt;br /&gt;
    float frameStart; // the start frame of the cutscene&lt;br /&gt;
    float frameEnd; // the end frame of the cutscene&lt;br /&gt;
    uint drawNodeNumber; // amount of visual nodes (unconfirmed, not read by the game)&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* cuts; // every camera cut in cutscene&lt;br /&gt;
    DvObject&amp;lt;DvPage&amp;gt;* pages; // pages, used for QTEs and such&lt;br /&gt;
    DvObject&amp;lt;DvDisableFrame&amp;gt;* disableFrames; // ranges, which when playing the cutscene will get skipped&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* resourceCuts; // when the resource should deload, always has just one item&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* soundCuts; // not read by the game&lt;br /&gt;
    DvNode* node; // the main node of the cutscene&lt;br /&gt;
    float chainCameraIn; // not read by the game&lt;br /&gt;
    float chainCameraOut; // not read by the game&lt;br /&gt;
    int type; // unknown&lt;br /&gt;
    int skipPointTick; // not read by the game&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;All of the pointers are 32-bit and relative to DvCommon itself.&lt;br /&gt;
&lt;br /&gt;
The second important part of DvScene, is the DvResource.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvResource{&lt;br /&gt;
    Guid guid; // unique identifier for the resource, used to connect with DvNodes&lt;br /&gt;
    uint type; // the file type this resource is trying to use&lt;br /&gt;
    uint unk0; // unknown, always 0&lt;br /&gt;
    uint unk1; // unknown, always 1&lt;br /&gt;
    char filename[192]; // the filename of the file it&#039;s loading&lt;br /&gt;
    char unk2[596]; // unknown, could still be just space for the filename&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/DvScene&amp;diff=957</id>
		<title>Resources/DvScene</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/DvScene&amp;diff=957"/>
		<updated>2025-08-27T12:06:29Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Technical Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Cinematics|Cinematics]]|extension=.dvscene|games=* [[Games/Sonic Frontiers|Sonic Frontiers]] &lt;br /&gt;
* [[Games/Shadow Generations|Shadow Generations]]|tools=* [[Tools/010 Editor Binary Templates|DiEventTemplate]]&lt;br /&gt;
* [[Tools/DvSceneTool|DvSceneTool]]|status=Almost finished|container=|name=DvScene}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DvScene&#039;&#039;&#039; &#039;&#039;(also known as DiEvent)&#039;&#039; is a file format that&#039;s been used in Hedgehog Engine 2 since [[Games/Sonic Frontiers|Sonic Frontiers]], it&#039;s a collection of nodes and &lt;br /&gt;
&lt;br /&gt;
resources that are easily editable for simple modification or creation of new cutscenes/cinematics.&lt;br /&gt;
&lt;br /&gt;
The format and sub-system originates from the [[wikipedia:Yakuza_(franchise)|Yakuza game series]] in which it was known as &#039;&#039;&#039;DiEvent&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
There are no proper ways currently to edit &#039;&#039;&#039;.dvscene&#039;&#039;&#039; except for an [[Tools/010 Editor Binary Templates|010 Editor Binary Template]].&lt;br /&gt;
&lt;br /&gt;
== File Structure ==&lt;br /&gt;
Each &#039;&#039;&#039;DvScene&#039;&#039;&#039; consists of 2 parts, &#039;&#039;&#039;DvCommon&#039;&#039;&#039; and &#039;&#039;&#039;DvResource&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== DvCommon ===&lt;br /&gt;
&#039;&#039;&#039;DvCommon&#039;&#039;&#039; consists of: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Frame start and end&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Number of visual nodes&#039;&#039;&#039; (not confirmed).&lt;br /&gt;
* &#039;&#039;&#039;Cuts&#039;&#039;&#039;, the timestamps of every camera cut in the cinematic.&lt;br /&gt;
* &#039;&#039;&#039;Pages&#039;&#039;&#039;, for skipping frames in the cutscene, based on a set condition. Used for QTEs.&lt;br /&gt;
* &#039;&#039;&#039;Resource Cuts&#039;&#039;&#039;, timestamps when the Resources should deload (all of the time it&#039;s a single item, obviously).&lt;br /&gt;
* &#039;&#039;&#039;Node&#039;&#039;&#039;, the main Path DvNode.&lt;br /&gt;
&lt;br /&gt;
The main path DvNode is the base node of the entire dvscene. Path standing for its Node Category.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Every DvNode contains:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GUID&#039;&#039;&#039;, used to connect the node to resources or just to easily tell them apart. Every node has a unique GUID.&lt;br /&gt;
* &#039;&#039;&#039;Name&#039;&#039;&#039;, to easily organize the nodes.&lt;br /&gt;
* &#039;&#039;&#039;Node Category&#039;&#039;&#039;, changes the nodes type, each node type does something else.&lt;br /&gt;
* &#039;&#039;&#039;Node Flags&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Priority&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Child Nodes&#039;&#039;&#039;, the child nodes of the node.&lt;br /&gt;
* &#039;&#039;&#039;Node Data&#039;&#039;&#039;, the parameters and values that change based on the Node Category.&lt;br /&gt;
&lt;br /&gt;
The node data is dependant on the Node Category, every category has its own set of parameters.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Node Categories in Sonic Frontiers&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!In-Engine Name&lt;br /&gt;
!Basic structure&lt;br /&gt;
|-&lt;br /&gt;
|Path&lt;br /&gt;
|Transforms the child nodes of this node&lt;br /&gt;
|DvNodePath&lt;br /&gt;
|Contains a Matrix4x4 which is then used to do transforms.&lt;br /&gt;
|-&lt;br /&gt;
|Camera&lt;br /&gt;
|Creates a Camera Object in to the cinematic&lt;br /&gt;
|DvNodeCamera&lt;br /&gt;
|Usually empty, but it has support for a list of Frame Progressions, used to skip frames in the camera animation.&lt;br /&gt;
|-&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|Adds animation to the parent node Camera&lt;br /&gt;
|DvNodeCameraMotion&lt;br /&gt;
|Contains the frame start and end of the camera animation. The GUID connects the node to a Resource to set the [[Resources/Camera Animation|Camera Animation]] file. &lt;br /&gt;
|-&lt;br /&gt;
|Character&lt;br /&gt;
|Creates a Character Model Object in to the cinematic&lt;br /&gt;
|DvNodeCharacter&lt;br /&gt;
|Contains the Model Name, Skeleton Name and sometimes a so called Internal Name is used; mostly used for characters that are very common, such as Sonic, Tails etc. These have a special shortcut for each, i.e. &#039;&#039;&#039;sh - Shadow, snc - Sonic, kn - Knuckles&#039;&#039;&#039;. The GUID connects the node to a Resource to set the [[Resources/Animation State Machine|Animation State Machine]] file. &lt;br /&gt;
|-&lt;br /&gt;
|Character Motion&lt;br /&gt;
|Adds animation to the parent node Character&lt;br /&gt;
|DvNodeCharacterMotion&lt;br /&gt;
|Contains the frame start and end of the animation, [[Resources/Animation State Machine|Animation State Machine]] state name and animation speed. The GUID connects the node to a Resource to set the animation file.&lt;br /&gt;
|-&lt;br /&gt;
|Model&lt;br /&gt;
|Adds a Model Object in to the cinematic&lt;br /&gt;
|DvNodeModel&lt;br /&gt;
|The exact same as Character.&lt;br /&gt;
|-&lt;br /&gt;
|Model Motion&lt;br /&gt;
|Adds animation to the parent node Model&lt;br /&gt;
|DvNodeModelMotion&lt;br /&gt;
|The exact same as Character Motion&lt;br /&gt;
|-&lt;br /&gt;
|Model Node&lt;br /&gt;
|Creates a node to which other nodes can be attached as if it was the bone of the parent Character node&lt;br /&gt;
|DvNodeModelNode&lt;br /&gt;
|Contains the bones name.&lt;br /&gt;
|-&lt;br /&gt;
|Element&lt;br /&gt;
|Subcategory for nodes, contains mostly game specific elements such as DvElementRifleBeastLighting from [[Games/Sonic Frontiers|Sonic Frontiers]]&lt;br /&gt;
|DvElement&lt;br /&gt;
|Contains the Element ID, frame start and end, play type of the element and update timing of the element.&lt;br /&gt;
There&#039;s only 3 Element Play Types and they&#039;re very straight forward, Normal - plays the element normally; OneShot - plays only once; Always - plays always.&lt;br /&gt;
&lt;br /&gt;
Update timing is a value that consists of multiple different types to change the update timings of the element, alot of these have yet to be found purposes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DvResource ===&lt;br /&gt;
&#039;&#039;&#039;DvResource&#039;&#039;&#039; is an array of resources that are loaded for a &#039;&#039;&#039;DvScene&#039;&#039;&#039;. These are connected with &#039;&#039;&#039;GUIDs&#039;&#039;&#039; to several &#039;&#039;&#039;DvNode types&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
They only consist of a &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;GUID&#039;&#039;&#039; and &#039;&#039;&#039;file type&#039;&#039;&#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Resource Types in Sonic Frontiers&lt;br /&gt;
!Name&lt;br /&gt;
!File extension&lt;br /&gt;
!Used by Node&lt;br /&gt;
|-&lt;br /&gt;
|Character&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Animation State Machine|(.asm)]]&#039;&#039;&#039;&lt;br /&gt;
|Character&lt;br /&gt;
|-&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Camera Animation|(.cam-anim)]]&#039;&#039;&#039;&lt;br /&gt;
|Camera Motion&lt;br /&gt;
|-&lt;br /&gt;
|Character Motion&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/PXD Animation|(.anm.pxd)]]&#039;&#039;&#039;&lt;br /&gt;
|Character Motion&lt;br /&gt;
|-&lt;br /&gt;
|Model&lt;br /&gt;
|&#039;&#039;&#039;[[Resources/Animation State Machine|(.asm)]]&#039;&#039;&#039;&lt;br /&gt;
|Model&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Technical Info ==&lt;br /&gt;
All of the pointers in DvScene are 32-bit and relative to DvCommon.&lt;br /&gt;
&lt;br /&gt;
This is a structure that&#039;s used throughout DvScene, it&#039;s an easy way to read an array.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot; start=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
struct DvObject{&lt;br /&gt;
    int count; // amount of items in the array&lt;br /&gt;
    int size; // the total size of of all the elements&lt;br /&gt;
    long long unknown; // no instance with data here has been found&lt;br /&gt;
    T items; // the array itself, not a pointer&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DvScene starts with two simple values, the pointers to DvCommon and DvResource&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvScene{&lt;br /&gt;
    DvCommon* common; // 32-bit pointer relative to DvCommon&lt;br /&gt;
    DvObject&amp;lt;DvResource&amp;gt;* resources; // 32-bit pointer relative to DvCommon&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Before going into DvCommon, we first need to define the structures that are used in DvCommon.&lt;br /&gt;
&lt;br /&gt;
There&#039;s a fairly easy to use system for skipping frames for either translation issues or QTEs. They&#039;re called DvPages. &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;struct DvCondition{&lt;br /&gt;
    int type; // the condition type&lt;br /&gt;
    uint parametersSize; // the size of condition dataa&lt;br /&gt;
    long unknown; // no instance with data here has been found&lt;br /&gt;
    char parameterData; // the data of the parameter, different for every condtion type&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvTransition{&lt;br /&gt;
    uint destinationPageID; // the page it should jump to&lt;br /&gt;
    uint conditionCount; // amount of conditions&lt;br /&gt;
    ulong conditionSize; // size of conditions&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvPage{&lt;br /&gt;
    uint unk0; // unknown&lt;br /&gt;
    uint unk1; // unknown&lt;br /&gt;
    uint frameStart; // the start tick of the page, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint frameEnd; // the end tick of the page, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint transitionCount; // amount of transitions&lt;br /&gt;
    uint transitionSize; // size of transitions&lt;br /&gt;
    uint skipFrame; // the tick the cutscene should skip to, it&#039;s in ticks meaning it&#039;s * 100&lt;br /&gt;
    uint index; // the pages index&lt;br /&gt;
    uint pageSize; // size of the pageData&lt;br /&gt;
    char empty[12];&lt;br /&gt;
    char name[32]; // the name of the page&lt;br /&gt;
    char pageData; // the data of the page, hasn&#039;t been researched&lt;br /&gt;
    DvTransition transitions;&lt;br /&gt;
};&amp;lt;/syntaxhighlight&amp;gt;The DvPages use ticks, or also could be called just a &#039;&#039;truncated float.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The important part of DvScene&#039;s, the DvNode.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvNode{&lt;br /&gt;
    Guid guid; // unique identifier for the node, also used for connection with DvResource&lt;br /&gt;
    uint nodeCategory; // the type of node&lt;br /&gt;
    uint nodeSize; // size of the node data&lt;br /&gt;
    uint childCount; // amount of child nodes&lt;br /&gt;
    uint nodeFlags; // yet to be researched&lt;br /&gt;
    uint priority; // the priority of the node when reading&lt;br /&gt;
    char empty[12];&lt;br /&gt;
    char name[64]; // the name of the node&lt;br /&gt;
    char nodeData; // the data of the node, different for every node category&lt;br /&gt;
    DvNode childNodes; // the children of this node&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The Node Data is different for every single Node Category, it&#039;s the parameters of the node itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the controller of DvScenes, DvCommon.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvDisableFrame{&lt;br /&gt;
    float start;&lt;br /&gt;
    float end;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct DvCommon{&lt;br /&gt;
    long unknown; // not read by the game&lt;br /&gt;
    float frameStart; // the start frame of the cutscene&lt;br /&gt;
    float frameEnd; // the end frame of the cutscene&lt;br /&gt;
    uint drawNodeNumber; // amount of visual nodes (unconfirmed, not read by the game)&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* cuts; // every camera cut in cutscene&lt;br /&gt;
    DvObject&amp;lt;DvPage&amp;gt;* pages; // pages, used for QTEs and such&lt;br /&gt;
    DvObject&amp;lt;DvDisableFrame&amp;gt;* disableFrames; // ranges, which when playing the cutscene will get skipped&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* resourceCuts; // when the resource should deload, always has just one item&lt;br /&gt;
    DvObject&amp;lt;float&amp;gt;* soundCuts; // not read by the game&lt;br /&gt;
    DvNode* node; // the main node of the cutscene&lt;br /&gt;
    float chainCameraIn; // not read by the game&lt;br /&gt;
    float chainCameraOut; // not read by the game&lt;br /&gt;
    int type; // unknown&lt;br /&gt;
    int skipPointTick; // not read by the game&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;All of the pointers are 32-bit and relative to DvCommon itself.&lt;br /&gt;
&lt;br /&gt;
The second important part of DvScene, is the DvResource.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct DvResource{&lt;br /&gt;
    Guid guid; // unique identifier for the resource, used to connect with DvNodes&lt;br /&gt;
    uint type; // the file type this resource is trying to use&lt;br /&gt;
    uint unk0; // unknown, always 0&lt;br /&gt;
    uint unk1; // unknown, always 1&lt;br /&gt;
    char filename[192]; // the filename of the file it&#039;s loading&lt;br /&gt;
    char unk2[596]; // unknown, could still be just space for the filename&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/DvSceneTool&amp;diff=956</id>
		<title>Tools/DvSceneTool</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/DvSceneTool&amp;diff=956"/>
		<updated>2025-08-27T12:02:41Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool&lt;br /&gt;
| name = DvSceneTool&lt;br /&gt;
| logo = File:DvSceneTool_screenshot.png&lt;br /&gt;
| purpose = Editing dvscene files, the brains of cinematics.&lt;br /&gt;
| developer = Ashrindy&lt;br /&gt;
| website = https://github.com/Ashrindy/DvSceneTool&lt;br /&gt;
| download = https://github.com/Ashrindy/DvSceneTool/releases&lt;br /&gt;
|programming_language=C#|logo_caption=Design of the app with ev1770_mov opened}}&#039;&#039;&#039;DvSceneTool&#039;&#039;&#039; is a modding tool that allows you to edit [[Resources/DvScene|DvScene]] files, which are the brains of cinematics.&lt;br /&gt;
&lt;br /&gt;
This tool works on a template system, meaning it&#039;s easy to add or edit knowledge about game specific [[Resources/DvScene|DvScenes]].&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/DvSceneTool&amp;diff=955</id>
		<title>Tools/DvSceneTool</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/DvSceneTool&amp;diff=955"/>
		<updated>2025-08-27T11:56:20Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool&lt;br /&gt;
| name = DvSceneTool&lt;br /&gt;
| logo = File:DvSceneTool_screenshot.png&lt;br /&gt;
| purpose = Editing dvscene files, the brains of cinematics.&lt;br /&gt;
| developer = Ashrindy&lt;br /&gt;
| website = https://github.com/Ashrindy/DvSceneTool&lt;br /&gt;
| download = https://github.com/Ashrindy/DvSceneTool/releases&lt;br /&gt;
|programming_language=C#|logo_caption=Design of the app with ev1770_mov opened}}&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/DvSceneTool&amp;diff=954</id>
		<title>Tools/DvSceneTool</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/DvSceneTool&amp;diff=954"/>
		<updated>2025-08-27T11:54:07Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Created page with &amp;quot;{{Infobox tool | name = DvSceneTool | logo = File:DvSceneTool_screenshot.jpg | purpose = Editing dvscene files, the brains of cinematics. | developer = Ashrindy | website = https://github.com/Ashrindy/DvSceneTool | download = https://github.com/Ashrindy/DvSceneTool/releases |programming_language=C#|logo_caption=Design of the app with ev1770_mov opened}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool&lt;br /&gt;
| name = DvSceneTool&lt;br /&gt;
| logo = File:DvSceneTool_screenshot.jpg&lt;br /&gt;
| purpose = Editing dvscene files, the brains of cinematics.&lt;br /&gt;
| developer = Ashrindy&lt;br /&gt;
| website = https://github.com/Ashrindy/DvSceneTool&lt;br /&gt;
| download = https://github.com/Ashrindy/DvSceneTool/releases&lt;br /&gt;
|programming_language=C#|logo_caption=Design of the app with ev1770_mov opened}}&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=File:DvSceneTool_screenshot.png&amp;diff=953</id>
		<title>File:DvSceneTool screenshot.png</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=File:DvSceneTool_screenshot.png&amp;diff=953"/>
		<updated>2025-08-27T11:53:40Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources&amp;diff=952</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources&amp;diff=952"/>
		<updated>2025-08-27T11:33:42Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Cinematics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Resources are the data files that contain things like 3D models, textures, animations and any other kind of assets. Many of these resources are stored in proprietary formats optimized for fast loading times, and thus require special tools to be edited by modders. Many of them are also built using proprietary SEGA technologies, like the ASM animation system. On this page we provide a list of all known resources supported by the Hedgehog Engine, their support in various games and tools that can be used to edit them.&lt;br /&gt;
&lt;br /&gt;
== Archives ==&lt;br /&gt;
Archives are compressed archives (&amp;quot;zip files&amp;quot;) that contain most of the game&#039;s data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile|Packfile]]&lt;br /&gt;
|Compressed archive containing most other resources.&lt;br /&gt;
|.pac&lt;br /&gt;
|Packfile&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile Info|Packfile Info]]&lt;br /&gt;
|Contains information about a packfile.&lt;br /&gt;
|&lt;br /&gt;
|PackfileInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile Extended Info|Packfile Extended Info]]&lt;br /&gt;
|Contains extended information about a packfile.&lt;br /&gt;
|&lt;br /&gt;
|PackfileExtendedInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Depend|Depend]]&lt;br /&gt;
|Stores information about packfile dependencies.&lt;br /&gt;
|.pac.d&lt;br /&gt;
|ResDepend&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pac General|Pac General]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ResPacGeneral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Virtual Archive|Virtual Archive]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|VirtualArchive&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AR File&lt;br /&gt;
|Archive containing resources.&lt;br /&gt;
|.ar&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|-&lt;br /&gt;
|ARL File&lt;br /&gt;
|Link file containing data on what each .ar file stores and its appropriate splits.&lt;br /&gt;
|.arl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Levels ==&lt;br /&gt;
Levels are a new system in [[Sonic Frontiers]] and up that allow the game to dynamically load other resources when they are needed. They specify which resources need to be loaded to load a certain &amp;quot;level&amp;quot;. This is a system similar to Unreal Engine&#039;s level system.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Level|Level]]&lt;br /&gt;
|A special resource that&#039;s only used to check whether a level has been loaded in the engine. It does not contain any data.&lt;br /&gt;
|.level&lt;br /&gt;
|ResLevel&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Master Level|Master Level]]&lt;br /&gt;
|Information about levels: which levels depend on each other, and also which resources to load in order to load a level.&lt;br /&gt;
|.mlevel&lt;br /&gt;
|ResMasterLevel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Configuration Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Reflection|Reflection]]&lt;br /&gt;
|Reflection-enabled configuration data. Contains parameters that can be edited by developers without changing game code.&lt;br /&gt;
|.rfl&lt;br /&gt;
|ResReflection&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Set Objects ==&lt;br /&gt;
Set object data is what specifies where game objects are placed and how they are configured. This is what you&#039;ll be editing most when making a stage mod.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/ObjectWorld / GEdit|ObjectWorld / GEdit]]&lt;br /&gt;
|Object placement and parameter data (HE2).&lt;br /&gt;
|.gedit&lt;br /&gt;
|ResObjectWorld&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/HedgeSet|HedgeSet]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Set Object|Orca: Set Object]]&lt;br /&gt;
|Object placement and parameter data (HE1).&lt;br /&gt;
|.orc&lt;br /&gt;
|ResOrcaData&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/GLVL|GLVL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gismos ==&lt;br /&gt;
Gismos are small reusable objects (that can potentially have physics applied) intended usually for decoration.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Gismo Config Design|Gismo Config Design]]&lt;br /&gt;
|Defines the properties of gismo objects.&lt;br /&gt;
|.gismod&lt;br /&gt;
|ResGismoConfigDesign&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Gismo Config Plan|Gismo Config Plan]]&lt;br /&gt;
|&lt;br /&gt;
|.gismop&lt;br /&gt;
|ResGismoConfigPlan&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Models ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Model| Model]]&lt;br /&gt;
| Contains 3D model information (also contains an armature).&lt;br /&gt;
|.model&lt;br /&gt;
|ResModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Model|Terrain Model]]&lt;br /&gt;
|Contains 3D model information specifically for terrain models. Similar to &amp;quot;Model&amp;quot; but does not contain an armature.&lt;br /&gt;
|.terrain-model&lt;br /&gt;
|ResTerrainModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Heightfield|Heightfield]]&lt;br /&gt;
|Height field maps.&lt;br /&gt;
|.heightfield&lt;br /&gt;
|ResHeightField&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HeightFielder|HeightFielder]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Model Pointcloud|Model Pointcloud]]&lt;br /&gt;
| Placement information for model or terrain model instances.&lt;br /&gt;
|.pcmodel&lt;br /&gt;
|ResPointcloudModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Map|Orca: Map]]&lt;br /&gt;
|Placement information for model or terrain model instances.&lt;br /&gt;
|.map.bin&lt;br /&gt;
|ResDivMap&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Model Instance Info|MIRAGE Model Instance Info]]&lt;br /&gt;
|Contains information about model instances.&lt;br /&gt;
|.model-instanceinfo&lt;br /&gt;
|ResMirageModelInstanceInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Terrain Instance Info|MIRAGE Terrain Instance Info]]&lt;br /&gt;
|Contains information about terrain model instances.&lt;br /&gt;
|.terrain-instanceinfo&lt;br /&gt;
|ResMirageTerrainInstanceInfo&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Link Info|Vertex Link Info]]&lt;br /&gt;
|&lt;br /&gt;
|.vli&lt;br /&gt;
|ResVertexLinkInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MetaTerrainInstance&lt;br /&gt;
|A file containing model and lightfield data capable of animating, commonly used for grass and clouds.&lt;br /&gt;
|.mti&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Texture|Texture]]&lt;br /&gt;
|2D textures for model skinning.&lt;br /&gt;
|.dds&lt;br /&gt;
|ResTexture&lt;br /&gt;
|&lt;br /&gt;
* [https://developer.nvidia.com/texture-tools-exporter nVidia Texture Tools Exporter]&lt;br /&gt;
* DirectX texconv&lt;br /&gt;
* [https://www.gimp.org/ GIMP (cannot read BC7)]&lt;br /&gt;
* [https://www.getpaint.net/ Paint.NET]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Streaming Texture|Streaming Texture]]&lt;br /&gt;
|Streamed 2D textures.&lt;br /&gt;
|&lt;br /&gt;
|ResStreamingTexture&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Materials ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Material|Material]]&lt;br /&gt;
|Material information. Contains shader parameters and texture names.&lt;br /&gt;
|.material&lt;br /&gt;
|ResMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Material|Terrain Material]]&lt;br /&gt;
|Terrain material information.&lt;br /&gt;
|.terrain-material&lt;br /&gt;
|ResTerrainMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Material (Unleashed)|Material]]&lt;br /&gt;
|Contains shader information and texset resource information.&lt;br /&gt;
|.material&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|-&lt;br /&gt;
|Texture&lt;br /&gt;
|Contains parameter information for texture files linked to a material.&lt;br /&gt;
|.texture&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|-&lt;br /&gt;
|Texset&lt;br /&gt;
|Contains groupings of textures linked to a material.&lt;br /&gt;
|.texset&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
All kinds of animation data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PXD Skeleton|PXD Skeleton]]&lt;br /&gt;
|Skeleton for PXD animations.&lt;br /&gt;
|.skl.pxd&lt;br /&gt;
|ResSkeletonPxd&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]] &lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PXD Animation|PXD Animation]]&lt;br /&gt;
|Animation data.&lt;br /&gt;
|.anm.pxd&lt;br /&gt;
|ResAnimationPxd&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PBA Skeleton|PBA Skeleton]]&lt;br /&gt;
|Skeleton for physics based animations.&lt;br /&gt;
|.pba&lt;br /&gt;
|ResPhysicalSkeleton&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Animation State Machine|Animation State Machine]]&lt;br /&gt;
|Animation State Machine data. Handles animation blending, animation states, animation triggers, etc.&lt;br /&gt;
|.asm&lt;br /&gt;
|ResAnimator&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/HelperBone|HelperBone]]&lt;br /&gt;
|Currently unknown.&lt;br /&gt;
|.helperbone.bin&lt;br /&gt;
|ResHelperBone&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Material Animation|Material Animation]]&lt;br /&gt;
|Material animations.&lt;br /&gt;
|.mat-anim&lt;br /&gt;
|ResAnimMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/UV Animation|UV Animation]]&lt;br /&gt;
|Texture UV animations (presumably Wii SRT0).&lt;br /&gt;
|.uv-anim&lt;br /&gt;
|ResAnimTexSrt&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Texture Pattern Animation|Texture Pattern Animation]]&lt;br /&gt;
|Texture pattern animations (presumably Wii PAT0).&lt;br /&gt;
|.pt-anim&lt;br /&gt;
|ResAnimTexPat&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Visibility Animation|Visibility Animation]]&lt;br /&gt;
|Bone visibility animations (presumably Wii VIS0).&lt;br /&gt;
|.vis-anim&lt;br /&gt;
|ResAnimVis&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Camera Animation|Camera Animation]]&lt;br /&gt;
|Camera animations.&lt;br /&gt;
|.cam-anim&lt;br /&gt;
|ResAnimCameraContainer&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Light Animation|Light Animation]]&lt;br /&gt;
|Light animations.&lt;br /&gt;
|.lit-anim&lt;br /&gt;
|ResAnimLightContainer&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Animation Texture|Vertex Animation Texture]]&lt;br /&gt;
|Vertex animation textures (textures that efficiently encode large scale animations on vertices).&lt;br /&gt;
|.vat&lt;br /&gt;
|ResVertexAnimationTexture&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Havok Skeleton|Havok Skeleton]]&lt;br /&gt;
|Skeleton for Havok Animations&lt;br /&gt;
|.skl.hkx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Havok Animation|Havok Animation]]&lt;br /&gt;
|Animation data.&lt;br /&gt;
|.anm.hkx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lighting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Light|MIRAGE Light]]&lt;br /&gt;
|MIRAGE point lights.&lt;br /&gt;
|.light&lt;br /&gt;
|ResMirageLight&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Lightfield|MIRAGE Lightfield]]&lt;br /&gt;
|MIRAGE light field data.&lt;br /&gt;
|.lft&lt;br /&gt;
|ResMirageLightField&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SH Lightfield|SH Lightfield]]&lt;br /&gt;
|Spherical harmonics based light field data.&lt;br /&gt;
|.lf&lt;br /&gt;
|ResSHLightField&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Probe|Probe]]&lt;br /&gt;
|IBL probe data.&lt;br /&gt;
|.probe&lt;br /&gt;
|ResProbe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Light Pointcloud|Light Pointcloud]]&lt;br /&gt;
|Instance placement information for point lights.&lt;br /&gt;
|.pcrt&lt;br /&gt;
|ResPointcloudLight&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FxCol ==&lt;br /&gt;
FxCol defines collision shapes in the game world that can apply post processing effects when the player walks through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/FxColFile2|FxColFile2]]&lt;br /&gt;
|FxCol configuration.&lt;br /&gt;
|.fxcol&lt;br /&gt;
|ResFxColFile2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SvCol ==&lt;br /&gt;
SvCol defines collision shapes in the game world that control sector visibility (a form of culling).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SvCol2|SvCol2]]&lt;br /&gt;
|SvCol configuration.&lt;br /&gt;
|.svcol&lt;br /&gt;
|ResSvCol2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Effects ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Cyan Effect|Cyan Effect]]&lt;br /&gt;
|Particle effect systems.&lt;br /&gt;
|.cemt&lt;br /&gt;
|ResEffect&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/CEMT Color Editing Tool|CEMT Color Editing Tool]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Particle Location|Particle Location]]&lt;br /&gt;
|Database of particle effects with transform values and sounds&lt;br /&gt;
|.effdb&lt;br /&gt;
|ResParticleLocation&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Mesh|Bullet Mesh]]&lt;br /&gt;
|Bullet physics engine mesh. Used for collision detection.&lt;br /&gt;
|.btmesh&lt;br /&gt;
|ResPhysicsMesh&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/btmesh|btmesh]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Soft Body|Bullet Soft Body]]&lt;br /&gt;
|Bullet physics engine soft body.&lt;br /&gt;
|.btsb&lt;br /&gt;
|ResSoftBody&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Skinned Mesh Collider|Bullet Skinned Mesh Collider]]&lt;br /&gt;
|Bullet physics engine skinned mesh collider. Not exactly known what this is currently.&lt;br /&gt;
|.btsmc&lt;br /&gt;
|ResSkinnedMeshCollider&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Collision Pointcloud|Collision Pointcloud]]&lt;br /&gt;
|Instance placement info for collision meshes.&lt;br /&gt;
|.pccol&lt;br /&gt;
|ResPointCloudCollision&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]] &lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paths ==&lt;br /&gt;
Paths are 3D splines that the game engine uses for various tasks, e.g. to generate grind rails, calculate projectile movements, generate replicated objects and keep the player on a 2D rail.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Spline Path|Orca: Spline Path]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path.bin&lt;br /&gt;
|ResSplinePath&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Spline Path 2|Orca: Spline Path 2]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path2.bin&lt;br /&gt;
|ResSplinePath2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Path|Path]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path&lt;br /&gt;
|ResSplinePath&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Occlusion Capsule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Occlusion Capsule|Occlusion Capsule]]&lt;br /&gt;
|Occlusion capsules&lt;br /&gt;
|.occ&lt;br /&gt;
|ResOcclusionCapsule&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Atmosphere ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atmospheric Fog|Atmospheric Fog]]&lt;br /&gt;
|Atmospheric fog data.&lt;br /&gt;
|?&lt;br /&gt;
|ResAtmosphericFog&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Density (vegetation) ==&lt;br /&gt;
Density is HE&#039;s GPU based vegetation system.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Setting|Density Setting]]&lt;br /&gt;
|Configures the Hedgehog Engine density system. Configures all the density system&#039;s parameters and references density models.&lt;br /&gt;
|.densitysetting&lt;br /&gt;
|ResDensitySetting&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Point Cloud|Density Point Cloud]]&lt;br /&gt;
|Placement of pre-baked density models.&lt;br /&gt;
|.densitypointcloud&lt;br /&gt;
|ResDensityPointCloud&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Instance|Density Instance]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ResDensityInstance&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Grass Info|Terrain Grass Info]]&lt;br /&gt;
|&lt;br /&gt;
|.grass.bin&lt;br /&gt;
|ResTerrainGrassInfo&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NavMesh ==&lt;br /&gt;
Navmeshes are meshes that the game&#039;s AI actors can use to navigate the map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/NavMesh Config|NavMesh Config]]&lt;br /&gt;
|Navmesh configuration&lt;br /&gt;
|.nmc&lt;br /&gt;
|ResNavMeshConfig&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/NavMesh Tile|NavMesh Tile]]&lt;br /&gt;
|Navmesh tile&lt;br /&gt;
|.nmt&lt;br /&gt;
|ResNavMeshTile&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Navigation Mesh&lt;br /&gt;
|Navigation mesh map&lt;br /&gt;
|.navi.xml / .navi.xmlbin&lt;br /&gt;
|NavigationMesh&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AI State Machine ==&lt;br /&gt;
The AI state machine controls AI behavior of enemies in game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/AI State Machine|AI State Machine]]&lt;br /&gt;
|Configuration for the AI State Machine&lt;br /&gt;
|.aism&lt;br /&gt;
|ResAIStateMachine&lt;br /&gt;
|[[Tools/010 Editor Binary Templates|AshDump]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cinematics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Scene|Scene]]&lt;br /&gt;
|Legacy cinematics system.&lt;br /&gt;
|.scene&lt;br /&gt;
|ResScene&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/DvScene|DvScene]]&lt;br /&gt;
|Cinematics.&lt;br /&gt;
|.dvscene&lt;br /&gt;
|ResDvScene&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/DvSceneTool|DvSceneTool]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/USM|USM]]&lt;br /&gt;
|CRIware&#039;s video format&lt;br /&gt;
|.usm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Decals ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Decal|Decal]]&lt;br /&gt;
|Decals. Referenced in FxColManager.&lt;br /&gt;
|?&lt;br /&gt;
|ResDecal&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Decal Pointcloud|Decal Pointcloud]]&lt;br /&gt;
|Placement information for decal instances. Referenced in FxColManager.&lt;br /&gt;
|?&lt;br /&gt;
|ResDecalPointcloud&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shaders ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Shader|Vertex Shader]]&lt;br /&gt;
|Vertex shaders.&lt;br /&gt;
|.vso&lt;br /&gt;
|ResVertexShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pixel Shader|Pixel Shader]]&lt;br /&gt;
|Pixel shaders.&lt;br /&gt;
|.pso&lt;br /&gt;
|ResFragmentShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Compute Shader|Compute Shader]]&lt;br /&gt;
|Compute shaders&lt;br /&gt;
|.cso&lt;br /&gt;
|ResComputeShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Shader List|Shader List]]&lt;br /&gt;
|List of shaders.&lt;br /&gt;
|.shader-list&lt;br /&gt;
|ResShaderList&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atom Config|Atom Config]]&lt;br /&gt;
|CRIware Atom configuration data.&lt;br /&gt;
|.acf&lt;br /&gt;
|ResAtomConfig&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atom Cue Sheet|Atom Cue Sheet]]&lt;br /&gt;
|CRIware Atom cue sheet. Contains the game&#039;s audio and cue/AISAC information.&lt;br /&gt;
|.acb&lt;br /&gt;
|ResAtomCueSheet&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (cri_utf_tool)&lt;br /&gt;
* [[Tools/SonicAudioTools|SonicAudioTools]] (Deprecated)&lt;br /&gt;
* [[Tools/Eternity Audio Tool|Eternity Audio Tool]] (Outdated)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SurfRide SWIF|SurfRide SWIF]]&lt;br /&gt;
|Describes UI layout and animations. Similar to a primitive version of Adobe Flash.&lt;br /&gt;
|.swif&lt;br /&gt;
|ResSurfRideProject&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Lua|Lua]]&lt;br /&gt;
|A Lua script.&lt;br /&gt;
|.lua&lt;br /&gt;
|ResLuaData&lt;br /&gt;
|&lt;br /&gt;
* Any text editor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Haptics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vibration|Vibration]]&lt;br /&gt;
|Haptics vibration information.&lt;br /&gt;
|.vib&lt;br /&gt;
|ResVibration&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clipmap ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Clipmap Ocean|Clipmap Ocean]]&lt;br /&gt;
|&lt;br /&gt;
|.cob&lt;br /&gt;
|ResClipmapOcean&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Project|Converse Project]]&lt;br /&gt;
|Localization project data.&lt;br /&gt;
|.cnvrs-proj&lt;br /&gt;
|ResTextProject&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Text|Converse Text]]&lt;br /&gt;
|Localization text data.&lt;br /&gt;
|.cnvrs-text&lt;br /&gt;
|ResText&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Puyo Text Editor|Puyo Text Editor]]&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Meta|Converse Meta]]&lt;br /&gt;
|Localization metadata.&lt;br /&gt;
|.cnvrs-meta&lt;br /&gt;
|ResTextMeta&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fonts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bitmap Font|Bitmap Font]]&lt;br /&gt;
|Bitmap fonts.&lt;br /&gt;
|.bfnt&lt;br /&gt;
|ResBitmapFont&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Scalable Font Set|Scalable Font Set]]&lt;br /&gt;
|Vector fonts.&lt;br /&gt;
|.scfnt&lt;br /&gt;
|ResScalableFontSet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Optical Kerning|Optical Kerning]]&lt;br /&gt;
|Information about optical text kerning.&lt;br /&gt;
|.okern&lt;br /&gt;
|ResOpticalKerning&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unicode ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/ICU data|ICU data]]&lt;br /&gt;
|Data for libicu (unicode library)&lt;br /&gt;
|.icu&lt;br /&gt;
|ResIcuData&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Acceleration Structures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/K-D Tree|K-D Tree]]&lt;br /&gt;
|A serialized [[wikipedia:K-d_tree|k-d tree]]. This resource has only been seen as a runtime resource in the engine or embedded in [[Resources/Path|Path]] resources.&lt;br /&gt;
|N/A&lt;br /&gt;
|ResKdTree&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unknown ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Name Extra|Name Extra]]&lt;br /&gt;
|&lt;br /&gt;
|.nextra&lt;br /&gt;
|ResNameExtra&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pointcloud|Pointcloud]]&lt;br /&gt;
|&lt;br /&gt;
|.pointcloud&lt;br /&gt;
|ResPointcloud&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=951</id>
		<title>Sonic Frontiers/Internals/GOComponent</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=951"/>
		<updated>2025-08-12T19:15:38Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GOComponent ==&lt;br /&gt;
&#039;&#039;&#039;GOComponent&#039;&#039;&#039; &#039;&#039;(Game Object Component)&#039;&#039; is a component that usually has certain functionality to easily access and use systems, methods and such in a game object. GOCs are attached to &#039;&#039;&#039;Game Objects&#039;&#039;&#039;, which add basic functionality or easy control over certain aspects, such as &#039;&#039;&#039;GOCVisualModel&#039;&#039;&#039; adds an easy way to show a model at the Game Objects position.&lt;br /&gt;
&lt;br /&gt;
== GOComponents &#039;&#039;(currently in rangers-sdk)&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
* GOCAnimation&lt;br /&gt;
* GOCAnimationBlend&lt;br /&gt;
* GOCAnimationSimple&lt;br /&gt;
* GOCAnimationSingle&lt;br /&gt;
* GOCAnimator&lt;br /&gt;
* GOCCharacterIk&lt;br /&gt;
* GOCLookAt&lt;br /&gt;
* GOCPhysicalAnimation&lt;br /&gt;
&lt;br /&gt;
=== Boss ===&lt;br /&gt;
&lt;br /&gt;
* GOCBossActionSelect&lt;br /&gt;
* GOCBossCyloopColliderHelper&lt;br /&gt;
* GOCBossMoveableRange&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
&lt;br /&gt;
* GOCBoxCollider&lt;br /&gt;
* GOCCapsuleCollider&lt;br /&gt;
* GOCColliderQuery&lt;br /&gt;
* GOCCollisionQuery&lt;br /&gt;
* GOCCylinderCollider&lt;br /&gt;
* GOCHeightFieldCollider&lt;br /&gt;
* GOCMeshCollider&lt;br /&gt;
* GOCMoveSphereColliderQuery&lt;br /&gt;
* GOCSphereCollider&lt;br /&gt;
&lt;br /&gt;
=== Effect ===&lt;br /&gt;
&lt;br /&gt;
* GOCEffect&lt;br /&gt;
* GOCParticleLocator&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
&lt;br /&gt;
* GOCAI&lt;br /&gt;
* GOCEnemyAttackSign&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* GOCActivator&lt;br /&gt;
* GOCContact&lt;br /&gt;
* GOCCyloopPoint&lt;br /&gt;
* GOCEvent&lt;br /&gt;
* GOCEventCollision&lt;br /&gt;
* GOCGravity&lt;br /&gt;
* GOCGrind&lt;br /&gt;
* GOCHealth&lt;br /&gt;
* GOCHitStop&lt;br /&gt;
* GOCNavMeshAgent&lt;br /&gt;
* GOCTargetPositionHelper&lt;br /&gt;
* GOCTransform&lt;br /&gt;
* GOCParamBlackboard&lt;br /&gt;
* GOCScript&lt;br /&gt;
* PathComponent&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* GOCCamera&lt;br /&gt;
* GOCOcclusionCapsule&lt;br /&gt;
* GOCPointLight&lt;br /&gt;
* GOCRenderTexture&lt;br /&gt;
* GOCVisualDebugDraw&lt;br /&gt;
* GOCVisualModel&lt;br /&gt;
* GOCVisualTransformed&lt;br /&gt;
* GOCVisualUserModel&lt;br /&gt;
&lt;br /&gt;
=== HID ===&lt;br /&gt;
&lt;br /&gt;
* GOCInput&lt;br /&gt;
* GOCVibration&lt;br /&gt;
&lt;br /&gt;
=== Movement ===&lt;br /&gt;
&lt;br /&gt;
* GOCMotor&lt;br /&gt;
* GOCMotorConstant&lt;br /&gt;
* GOCMotorOnPath&lt;br /&gt;
* GOCMotorRotate&lt;br /&gt;
* GOCMovement&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
* GOCPlayerCollider&lt;br /&gt;
* GOCPlayerEffect&lt;br /&gt;
* GOCPlayerHsm&lt;br /&gt;
* GOCPlayerKinematicParams&lt;br /&gt;
* GOCPlayerParameter&lt;br /&gt;
* GOCPlayerState&lt;br /&gt;
* GOCPlayerVisual&lt;br /&gt;
&lt;br /&gt;
=== Reflection ===&lt;br /&gt;
&lt;br /&gt;
* GOCRflParameter&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
* GOCSound&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
&lt;br /&gt;
* GOCSprite&lt;br /&gt;
* GOCUICollider&lt;br /&gt;
* GOCUIComposition&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=950</id>
		<title>Sonic Frontiers/Internals/GOComponent</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=950"/>
		<updated>2025-08-09T20:56:01Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* GOComponent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GOComponent ==&lt;br /&gt;
&#039;&#039;&#039;GOComponent&#039;&#039;&#039; &#039;&#039;(Game Object Component)&#039;&#039; is a part of a very basic &#039;&#039;&#039;ECS&#039;&#039;&#039; &#039;&#039;(Entity Component System)&#039;&#039; which the &#039;&#039;&#039;HE2&#039;&#039;&#039; utilizes. GOCs are attached to &#039;&#039;&#039;Game Objects&#039;&#039;&#039;, which add basic functionality or easy control over certain aspects, such as &#039;&#039;&#039;GOCVisualModel&#039;&#039;&#039; adds an easy way to show a model at the Game Objects position.&lt;br /&gt;
&lt;br /&gt;
== GOComponents &#039;&#039;(currently in rangers-sdk)&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
* GOCAnimation&lt;br /&gt;
* GOCAnimationBlend&lt;br /&gt;
* GOCAnimationSimple&lt;br /&gt;
* GOCAnimationSingle&lt;br /&gt;
* GOCAnimator&lt;br /&gt;
* GOCCharacterIk&lt;br /&gt;
* GOCLookAt&lt;br /&gt;
* GOCPhysicalAnimation&lt;br /&gt;
&lt;br /&gt;
=== Boss ===&lt;br /&gt;
&lt;br /&gt;
* GOCBossActionSelect&lt;br /&gt;
* GOCBossCyloopColliderHelper&lt;br /&gt;
* GOCBossMoveableRange&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
&lt;br /&gt;
* GOCBoxCollider&lt;br /&gt;
* GOCCapsuleCollider&lt;br /&gt;
* GOCColliderQuery&lt;br /&gt;
* GOCCollisionQuery&lt;br /&gt;
* GOCCylinderCollider&lt;br /&gt;
* GOCHeightFieldCollider&lt;br /&gt;
* GOCMeshCollider&lt;br /&gt;
* GOCMoveSphereColliderQuery&lt;br /&gt;
* GOCSphereCollider&lt;br /&gt;
&lt;br /&gt;
=== Effect ===&lt;br /&gt;
&lt;br /&gt;
* GOCEffect&lt;br /&gt;
* GOCParticleLocator&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
&lt;br /&gt;
* GOCAI&lt;br /&gt;
* GOCEnemyAttackSign&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* GOCActivator&lt;br /&gt;
* GOCContact&lt;br /&gt;
* GOCCyloopPoint&lt;br /&gt;
* GOCEvent&lt;br /&gt;
* GOCEventCollision&lt;br /&gt;
* GOCGravity&lt;br /&gt;
* GOCGrind&lt;br /&gt;
* GOCHealth&lt;br /&gt;
* GOCHitStop&lt;br /&gt;
* GOCNavMeshAgent&lt;br /&gt;
* GOCTargetPositionHelper&lt;br /&gt;
* GOCTransform&lt;br /&gt;
* GOCParamBlackboard&lt;br /&gt;
* GOCScript&lt;br /&gt;
* PathComponent&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* GOCCamera&lt;br /&gt;
* GOCOcclusionCapsule&lt;br /&gt;
* GOCPointLight&lt;br /&gt;
* GOCRenderTexture&lt;br /&gt;
* GOCVisualDebugDraw&lt;br /&gt;
* GOCVisualModel&lt;br /&gt;
* GOCVisualTransformed&lt;br /&gt;
* GOCVisualUserModel&lt;br /&gt;
&lt;br /&gt;
=== HID ===&lt;br /&gt;
&lt;br /&gt;
* GOCInput&lt;br /&gt;
* GOCVibration&lt;br /&gt;
&lt;br /&gt;
=== Movement ===&lt;br /&gt;
&lt;br /&gt;
* GOCMotor&lt;br /&gt;
* GOCMotorConstant&lt;br /&gt;
* GOCMotorOnPath&lt;br /&gt;
* GOCMotorRotate&lt;br /&gt;
* GOCMovement&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
* GOCPlayerCollider&lt;br /&gt;
* GOCPlayerEffect&lt;br /&gt;
* GOCPlayerHsm&lt;br /&gt;
* GOCPlayerKinematicParams&lt;br /&gt;
* GOCPlayerParameter&lt;br /&gt;
* GOCPlayerState&lt;br /&gt;
* GOCPlayerVisual&lt;br /&gt;
&lt;br /&gt;
=== Reflection ===&lt;br /&gt;
&lt;br /&gt;
* GOCRflParameter&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
* GOCSound&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
&lt;br /&gt;
* GOCSprite&lt;br /&gt;
* GOCUICollider&lt;br /&gt;
* GOCUIComposition&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=949</id>
		<title>Sonic Frontiers/Internals/GOComponent</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponent&amp;diff=949"/>
		<updated>2025-08-09T20:51:46Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Created page with &amp;quot;== GOComponent ==  == GOComponents ==  === Animation ===  * GOCAnimation * GOCAnimationBlend * GOCAnimationSimple * GOCAnimationSingle * GOCAnimator * GOCCharacterIk * GOCLookAt * GOCPhysicalAnimation  === Boss ===  * GOCBossActionSelect * GOCBossCyloopColliderHelper * GOCBossMoveableRange  === Collision ===  * GOCBoxCollider * GOCCapsuleCollider * GOCColliderQuery * GOCCollisionQuery * GOCCylinderCollider * GOCHeightFieldCollider * GOCMeshCollider * GOCMoveSphereCollide...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GOComponent ==&lt;br /&gt;
&lt;br /&gt;
== GOComponents ==&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
* GOCAnimation&lt;br /&gt;
* GOCAnimationBlend&lt;br /&gt;
* GOCAnimationSimple&lt;br /&gt;
* GOCAnimationSingle&lt;br /&gt;
* GOCAnimator&lt;br /&gt;
* GOCCharacterIk&lt;br /&gt;
* GOCLookAt&lt;br /&gt;
* GOCPhysicalAnimation&lt;br /&gt;
&lt;br /&gt;
=== Boss ===&lt;br /&gt;
&lt;br /&gt;
* GOCBossActionSelect&lt;br /&gt;
* GOCBossCyloopColliderHelper&lt;br /&gt;
* GOCBossMoveableRange&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
&lt;br /&gt;
* GOCBoxCollider&lt;br /&gt;
* GOCCapsuleCollider&lt;br /&gt;
* GOCColliderQuery&lt;br /&gt;
* GOCCollisionQuery&lt;br /&gt;
* GOCCylinderCollider&lt;br /&gt;
* GOCHeightFieldCollider&lt;br /&gt;
* GOCMeshCollider&lt;br /&gt;
* GOCMoveSphereColliderQuery&lt;br /&gt;
* GOCSphereCollider&lt;br /&gt;
&lt;br /&gt;
=== Effect ===&lt;br /&gt;
&lt;br /&gt;
* GOCEffect&lt;br /&gt;
* GOCParticleLocator&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
&lt;br /&gt;
* GOCAI&lt;br /&gt;
* GOCEnemyAttackSign&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* GOCActivator&lt;br /&gt;
* GOCContact&lt;br /&gt;
* GOCCyloopPoint&lt;br /&gt;
* GOCEvent&lt;br /&gt;
* GOCEventCollision&lt;br /&gt;
* GOCGravity&lt;br /&gt;
* GOCGrind&lt;br /&gt;
* GOCHealth&lt;br /&gt;
* GOCHitStop&lt;br /&gt;
* GOCNavMeshAgent&lt;br /&gt;
* GOCTargetPositionHelper&lt;br /&gt;
* GOCTransform&lt;br /&gt;
* GOCParamBlackboard&lt;br /&gt;
* GOCScript&lt;br /&gt;
* PathComponent&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* GOCCamera&lt;br /&gt;
* GOCOcclusionCapsule&lt;br /&gt;
* GOCPointLight&lt;br /&gt;
* GOCRenderTexture&lt;br /&gt;
* GOCVisualDebugDraw&lt;br /&gt;
* GOCVisualModel&lt;br /&gt;
* GOCVisualTransformed&lt;br /&gt;
* GOCVisualUserModel&lt;br /&gt;
&lt;br /&gt;
=== HID ===&lt;br /&gt;
&lt;br /&gt;
* GOCInput&lt;br /&gt;
* GOCVibration&lt;br /&gt;
&lt;br /&gt;
=== Movement ===&lt;br /&gt;
&lt;br /&gt;
* GOCMotor&lt;br /&gt;
* GOCMotorConstant&lt;br /&gt;
* GOCMotorOnPath&lt;br /&gt;
* GOCMotorRotate&lt;br /&gt;
* GOCMovement&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
* GOCPlayerCollider&lt;br /&gt;
* GOCPlayerEffect&lt;br /&gt;
* GOCPlayerHsm&lt;br /&gt;
* GOCPlayerKinematicParams&lt;br /&gt;
* GOCPlayerParameter&lt;br /&gt;
* GOCPlayerState&lt;br /&gt;
* GOCPlayerVisual&lt;br /&gt;
&lt;br /&gt;
=== Reflection ===&lt;br /&gt;
&lt;br /&gt;
* GOCRflParameter&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
* GOCSound&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
&lt;br /&gt;
* GOCSprite&lt;br /&gt;
* GOCUICollider&lt;br /&gt;
* GOCUIComposition&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals&amp;diff=948</id>
		<title>Sonic Frontiers/Internals</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals&amp;diff=948"/>
		<updated>2025-08-09T20:51:03Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Sonic Frontiers/Internals/GOComponent|GOComponent]]&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponents&amp;diff=947</id>
		<title>Sonic Frontiers/Internals/GOComponents</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals/GOComponents&amp;diff=947"/>
		<updated>2025-08-09T20:47:56Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Created page with &amp;quot;== GOComponents ==  === Animation ===  * GOCAnimation * GOCAnimationBlend * GOCAnimationSimple * GOCAnimationSingle * GOCAnimator * GOCCharacterIk * GOCLookAt * GOCPhysicalAnimation  === Boss ===  * GOCBossActionSelect * GOCBossCyloopColliderHelper * GOCBossMoveableRange  === Collision ===  * GOCBoxCollider * GOCCapsuleCollider * GOCColliderQuery * GOCCollisionQuery * GOCCylinderCollider * GOCHeightFieldCollider * GOCMeshCollider * GOCMoveSphereColliderQuery * GOCSphereC...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GOComponents ==&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
* GOCAnimation&lt;br /&gt;
* GOCAnimationBlend&lt;br /&gt;
* GOCAnimationSimple&lt;br /&gt;
* GOCAnimationSingle&lt;br /&gt;
* GOCAnimator&lt;br /&gt;
* GOCCharacterIk&lt;br /&gt;
* GOCLookAt&lt;br /&gt;
* GOCPhysicalAnimation&lt;br /&gt;
&lt;br /&gt;
=== Boss ===&lt;br /&gt;
&lt;br /&gt;
* GOCBossActionSelect&lt;br /&gt;
* GOCBossCyloopColliderHelper&lt;br /&gt;
* GOCBossMoveableRange&lt;br /&gt;
&lt;br /&gt;
=== Collision ===&lt;br /&gt;
&lt;br /&gt;
* GOCBoxCollider&lt;br /&gt;
* GOCCapsuleCollider&lt;br /&gt;
* GOCColliderQuery&lt;br /&gt;
* GOCCollisionQuery&lt;br /&gt;
* GOCCylinderCollider&lt;br /&gt;
* GOCHeightFieldCollider&lt;br /&gt;
* GOCMeshCollider&lt;br /&gt;
* GOCMoveSphereColliderQuery&lt;br /&gt;
* GOCSphereCollider&lt;br /&gt;
&lt;br /&gt;
=== Effect ===&lt;br /&gt;
&lt;br /&gt;
* GOCEffect&lt;br /&gt;
* GOCParticleLocator&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
&lt;br /&gt;
* GOCAI&lt;br /&gt;
* GOCEnemyAttackSign&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* GOCActivator&lt;br /&gt;
* GOCContact&lt;br /&gt;
* GOCCyloopPoint&lt;br /&gt;
* GOCEvent&lt;br /&gt;
* GOCEventCollision&lt;br /&gt;
* GOCGravity&lt;br /&gt;
* GOCGrind&lt;br /&gt;
* GOCHealth&lt;br /&gt;
* GOCHitStop&lt;br /&gt;
* GOCNavMeshAgent&lt;br /&gt;
* GOCTargetPositionHelper&lt;br /&gt;
* GOCTransform&lt;br /&gt;
* GOCParamBlackboard&lt;br /&gt;
* GOCScript&lt;br /&gt;
* PathComponent&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* GOCCamera&lt;br /&gt;
* GOCOcclusionCapsule&lt;br /&gt;
* GOCPointLight&lt;br /&gt;
* GOCRenderTexture&lt;br /&gt;
* GOCVisualDebugDraw&lt;br /&gt;
* GOCVisualModel&lt;br /&gt;
* GOCVisualTransformed&lt;br /&gt;
* GOCVisualUserModel&lt;br /&gt;
&lt;br /&gt;
=== HID ===&lt;br /&gt;
&lt;br /&gt;
* GOCInput&lt;br /&gt;
* GOCVibration&lt;br /&gt;
&lt;br /&gt;
=== Movement ===&lt;br /&gt;
&lt;br /&gt;
* GOCMotor&lt;br /&gt;
* GOCMotorConstant&lt;br /&gt;
* GOCMotorOnPath&lt;br /&gt;
* GOCMotorRotate&lt;br /&gt;
* GOCMovement&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
* GOCPlayerCollider&lt;br /&gt;
* GOCPlayerEffect&lt;br /&gt;
* GOCPlayerHsm&lt;br /&gt;
* GOCPlayerKinematicParams&lt;br /&gt;
* GOCPlayerParameter&lt;br /&gt;
* GOCPlayerState&lt;br /&gt;
* GOCPlayerVisual&lt;br /&gt;
&lt;br /&gt;
=== Reflection ===&lt;br /&gt;
&lt;br /&gt;
* GOCRflParameter&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
* GOCSound&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
&lt;br /&gt;
* GOCSprite&lt;br /&gt;
* GOCUICollider&lt;br /&gt;
* GOCUIComposition&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals&amp;diff=946</id>
		<title>Sonic Frontiers/Internals</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals&amp;diff=946"/>
		<updated>2025-08-09T20:34:56Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Sonic Frontiers/Internals/GOComponents|GOComponents]]&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals&amp;diff=945</id>
		<title>Sonic Frontiers/Internals</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/Internals&amp;diff=945"/>
		<updated>2025-08-09T20:34:18Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Created page with &amp;quot;GOComponents&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GOComponents&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers&amp;diff=944</id>
		<title>Sonic Frontiers</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers&amp;diff=944"/>
		<updated>2025-08-09T20:06:24Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox game&lt;br /&gt;
| name = Sonic Frontiers&lt;br /&gt;
| developer = Sonic Team&lt;br /&gt;
| publisher = SEGA&lt;br /&gt;
| release_date = November 8, 2022&lt;br /&gt;
| engine = Hedgehog Engine 2&lt;br /&gt;
|logo=File:Sonic-frontiers.jpg|logo_caption=Sonic Frontiers Key Art}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sonic Frontiers&#039;&#039;&#039; &#039;&#039;(codenamed rangers)&#039;&#039; was released on the 8th of November, 2022.&lt;br /&gt;
&lt;br /&gt;
It uses Hedgehog Engine 2, but has some notable differences to [[Sonic Forces]], the previous game to use HE2, including differences in file structure and file formats used.&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Frontiers/Guides|Guides]]&lt;br /&gt;
* [[Sonic Frontiers/Internals|Internals]]&lt;br /&gt;
&lt;br /&gt;
=== Resource References ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Frontiers/Heightmaps|Heightmaps]]&lt;br /&gt;
* [[Sonic Frontiers/ID Mappings|ID Mappings]]&lt;br /&gt;
* [[Sonic Frontiers/StageData_Parameters|StageData Parameters]]&lt;br /&gt;
* [[Sonic Frontiers/Master_Trial_Parameters|Master Trial Parameters]]&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools&amp;diff=931</id>
		<title>Tools</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools&amp;diff=931"/>
		<updated>2025-04-03T20:55:48Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a list of modding tools that can be used to edit Hedgehog Engine resources.&lt;br /&gt;
&lt;br /&gt;
== Archive unpackers ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
* [https://github.com/soopercool101/BrawlCrate BrawlCrate]&lt;br /&gt;
&lt;br /&gt;
== Level Editors ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/GLVL|GLVL]]&lt;br /&gt;
&lt;br /&gt;
== Parameter editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
&lt;br /&gt;
* [https://www.sweetscape.com/010editor/ 010 Editor] with [[Tools/010 Editor Binary Templates|RFL binary templates]]&lt;br /&gt;
&lt;br /&gt;
== Modeling and Animation tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.blender.org/ Blender]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]] (ASM editor)&lt;br /&gt;
&lt;br /&gt;
== Texture editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://developer.nvidia.com/texture-tools-exporter nVidia Texture Tools Exporter]&lt;br /&gt;
* [https://github.com/microsoft/DirectXTex/wiki/Texconv DirectX Texconv]&lt;br /&gt;
* [https://www.gimp.org/ GIMP]&lt;br /&gt;
* [https://www.getpaint.net/ Paint.NET]&lt;br /&gt;
* [[Tools/SkythTools|NeedleTextureStreamingPackage]]&lt;br /&gt;
&lt;br /&gt;
== Audio tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (cri_utf_tool, cri_awb_tool)&lt;br /&gt;
* [https://github.com/libertyernie/LoopingAudioConverter LoopingAudioConverter]&lt;br /&gt;
* [https://www.foobar2000.org/ foobar2000] (with [https://www.foobar2000.org/components/view/foo_input_vgmstream libvgmstream plugin])&lt;br /&gt;
* [[Tools/SonicAudioTools|SonicAudioTools]] (Deprecated)&lt;br /&gt;
* [[Tools/Eternity Audio Tool|Eternity Audio Tool]] (Outdated)&lt;br /&gt;
&lt;br /&gt;
== GI baking tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/HedgeGI|HedgeGI]]&lt;br /&gt;
&lt;br /&gt;
== Localization editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/Puyo Text Editor|Puyo Text Editor]]&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
&lt;br /&gt;
== UI editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/DevTools|DevTools]] (SurfRide Editor)&lt;br /&gt;
&lt;br /&gt;
== Cutscene editing tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/DevTools|DevTools]] (DvScene Editor)&lt;br /&gt;
&lt;br /&gt;
== General resource conversion tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Tools/HedgeTools|HedgeTools]]&lt;br /&gt;
* [[Tools/SkythTools|SkythTools]]&lt;br /&gt;
* [[Tools/HedgeNeedle|HedgeNeedle]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]]&lt;br /&gt;
&lt;br /&gt;
== Other useful tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
* [https://www.sweetscape.com/010editor/ 010 Editor]&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/Converse_Editor&amp;diff=929</id>
		<title>Tools/Converse Editor</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/Converse_Editor&amp;diff=929"/>
		<updated>2025-03-31T09:15:47Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool&lt;br /&gt;
| name = Converse Editor&lt;br /&gt;
| purpose = Editing text/converse related files&lt;br /&gt;
| developer = Ashrindy&lt;br /&gt;
| website = https://github.com/Ashrindy/ConverseEditor&lt;br /&gt;
| download = https://github.com/Ashrindy/ConverseEditor/releases&lt;br /&gt;
|programming_language=C#}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Converse Editor&#039;&#039;&#039; is a WIP text editing tool for Hedgehog Engine 2 games, primarily focusing on [[Sonic Frontiers|Sonic Frontiers]] and [[Shadow Generations|Shadow Generations]] as of now. It has a GUI, unlike older tools used before such as [[Tools/Puyo Text Editor|Puyo Text Editor]].&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Density_Setting&amp;diff=792</id>
		<title>Resources/Density Setting</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Density_Setting&amp;diff=792"/>
		<updated>2025-01-27T12:27:24Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Density (vegetation)|Density (vegetation)]]|extension=.densitysetting|games=* [[Sonic Frontiers|Sonic Frontiers]]|tools=* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]|status=Mostly done|container=BINA|name=Density Setting}} &#039;&#039;&#039;&#039;&#039;&#039;Density Setting&#039;&#039;&#039;&#039;&#039;&#039; is used to setup precomputed foliage that&#039;s used in &#039;&#039;&#039;&#039;&#039;&#039;[[Resources/Density Point Cloud|Density Point Cloud]].&#039;&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Density_Point_Cloud&amp;diff=787</id>
		<title>Resources/Density Point Cloud</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Density_Point_Cloud&amp;diff=787"/>
		<updated>2025-01-27T12:22:29Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Density (vegetation)|Density (vegetation)]]|extension=.densitypointcloud|games=* [[Sonic Frontiers|Sonic Frontiers]]|tools=* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]]|status=Done|container=BINA|name=Density Point Cloud}}&#039;&#039;&#039;&#039;&#039;&#039;Density Point Cloud&#039;&#039;&#039;&#039;&#039;&#039; is used to store precomputed foliage such as trees, grass, moss etc.It&#039;s communicates with&#039;&#039;&#039;&#039;&#039;&#039;[[Resources/Density Setting|Density Setting]]&#039;&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Can be turned off with NeedleFxSceneData RFL using the &#039;&#039;&#039;precomputedEnabled&#039;&#039;&#039; variable.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=783</id>
		<title>Resources/Terrain Material</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=783"/>
		<updated>2025-01-27T10:35:07Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|name=Terrain Material|container=BINA|status=A few unknown values, otherwise done|extension=.terrain-material|games=* [[Sonic Frontiers|Sonic Frontiers]]|tools=* [[Tools/KnuxTools|KnuxTools]]|type=[[Resources#Materials|Materials]]}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Terrain Materials&#039;&#039;&#039; are materials that are assigned to a heightmap through the use of an splatmap. The splatmap uses R8_UNORM DirectDraw encoding.&lt;br /&gt;
&lt;br /&gt;
Each colour on the splatmap corresponds to a certain material ID, defined in a terrain-material file. Each material entry in the terrain-material file contains a material type, index to identify the material, an Albedo and PRM map for the base texture, and an Albedo, PRM and Displacement map for the detail.&lt;br /&gt;
&lt;br /&gt;
The base texture is simply the texture that will be seen from a distance, when detail hasn&#039;t loaded in yet.&lt;br /&gt;
&lt;br /&gt;
Detail is extra geometry that will be rendered when the player is close up, it is displaced from the surface of the heightmap based on the displacement texture of the material.&lt;br /&gt;
&lt;br /&gt;
Draw distance for detail is determined in the stage&#039;s NeedleFxSceneData RFL.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=782</id>
		<title>Resources/Terrain Material</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=782"/>
		<updated>2025-01-27T10:34:16Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|name=Terrain Material|container=BINA|status=A few unknown values, otherwise done|extension=.terrain-material|games=* [[Sonic Frontiers|Sonic Frontiers]]|tools=* [[Tools/KnuxTools|KnuxTools]]|type=[[Resources#Materials|Materials]]}}&lt;br /&gt;
&lt;br /&gt;
Terrain materials are materials that are assigned to a heightmap through the use of an splatmap. The splatmap uses R8_UNORM DirectDraw encoding.&lt;br /&gt;
&lt;br /&gt;
Each colour on the splatmap corresponds to a certain material ID, defined in a terrain-material file. Each material entry in the terrain-material file contains a material type, index to identify the material, an Albedo and PRM map for the base texture, and an Albedo, PRM and Displacement map for the detail.&lt;br /&gt;
&lt;br /&gt;
The base texture is simply the texture that will be seen from a distance, when detail hasn&#039;t loaded in yet.&lt;br /&gt;
&lt;br /&gt;
Detail is extra geometry that will be rendered when the player is close up, it is displaced from the surface of the heightmap based on the displacement texture of the material.&lt;br /&gt;
&lt;br /&gt;
Draw distance for detail is determined in the stage&#039;s NeedleFxSceneData RFL.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=781</id>
		<title>Resources/Terrain Material</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=781"/>
		<updated>2025-01-27T10:29:48Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|name=Terrain Material|container=BINA|status=A few unknown values, otherwise done|extension=.terrain-material|games=* [[Sonic Frontiers|Sonic Frontiers]]|tools=* [[Tools/KnuxTools|KnuxTools]]}}&lt;br /&gt;
&lt;br /&gt;
Terrain materials are materials that are assigned to a heightmap through the use of an splatmap. The splatmap uses R8_UNORM DirectDraw encoding.&lt;br /&gt;
&lt;br /&gt;
Each colour on the splatmap corresponds to a certain material ID, defined in a terrain-material file. Each material entry in the terrain-material file contains a material type, index to identify the material, an Albedo and PRM map for the base texture, and an Albedo, PRM and Displacement map for the detail.&lt;br /&gt;
&lt;br /&gt;
The base texture is simply the texture that will be seen from a distance, when detail hasn&#039;t loaded in yet.&lt;br /&gt;
&lt;br /&gt;
Detail is extra geometry that will be rendered when the player is close up, it is displaced from the surface of the heightmap based on the displacement texture of the material.&lt;br /&gt;
&lt;br /&gt;
Draw distance for detail is determined in the stage&#039;s NeedleFxSceneData RFL.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=780</id>
		<title>Resources/Terrain Material</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=780"/>
		<updated>2025-01-27T10:28:59Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|name=Terrain Material|container=BINA|status=A few unknown values, otherwise done|extension=.terrain-material|games=* [[Sonic Frontiers|Sonic Frontiers]]}}&lt;br /&gt;
&lt;br /&gt;
Terrain materials are materials that are assigned to a heightmap through the use of an splatmap. The splatmap uses R8_UNORM DirectDraw encoding.&lt;br /&gt;
&lt;br /&gt;
Each colour on the splatmap corresponds to a certain material ID, defined in a terrain-material file. Each material entry in the terrain-material file contains a material type, index to identify the material, an Albedo and PRM map for the base texture, and an Albedo, PRM and Displacement map for the detail.&lt;br /&gt;
&lt;br /&gt;
The base texture is simply the texture that will be seen from a distance, when detail hasn&#039;t loaded in yet.&lt;br /&gt;
&lt;br /&gt;
Detail is extra geometry that will be rendered when the player is close up, it is displaced from the surface of the heightmap based on the displacement texture of the material.&lt;br /&gt;
&lt;br /&gt;
Draw distance for detail is determined in the stage&#039;s NeedleFxSceneData RFL.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=779</id>
		<title>Resources/Terrain Material</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Terrain_Material&amp;diff=779"/>
		<updated>2025-01-27T10:26:19Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|name=Terrain Material|container=BINA|status=A few unknown values, otherwise done}}&lt;br /&gt;
&lt;br /&gt;
Terrain materials are materials that are assigned to a heightmap through the use of an splatmap. The splatmap uses R8_UNORM DirectDraw encoding.&lt;br /&gt;
&lt;br /&gt;
Each colour on the splatmap corresponds to a certain material ID, defined in a terrain-material file. Each material entry in the terrain-material file contains a material type, index to identify the material, an Albedo and PRM map for the base texture, and an Albedo, PRM and Displacement map for the detail.&lt;br /&gt;
&lt;br /&gt;
The base texture is simply the texture that will be seen from a distance, when detail hasn&#039;t loaded in yet.&lt;br /&gt;
&lt;br /&gt;
Detail is extra geometry that will be rendered when the player is close up, it is displaced from the surface of the heightmap based on the displacement texture of the material.&lt;br /&gt;
&lt;br /&gt;
Draw distance for detail is determined in the stage&#039;s NeedleFxSceneData RFL.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/ObjectWorld_/_GEdit&amp;diff=778</id>
		<title>Resources/ObjectWorld / GEdit</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/ObjectWorld_/_GEdit&amp;diff=778"/>
		<updated>2025-01-27T10:23:40Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Technical info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Set Objects|Set Objects]]|extension=.gedit|games=* [[Sonic Forces|Sonic Forces]]&lt;br /&gt;
* [[Sonic Origins|Sonic Origins]]&lt;br /&gt;
* [[Sonic Frontiers|Sonic Frontiers]] &lt;br /&gt;
* [[Shadow Generations|Shadow Generations]]|tools=* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/HedgeSet|HedgeSet]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]|status=Done|container=BINA|name=Object World}}&lt;br /&gt;
&#039;&#039;&#039;Object World&#039;&#039;&#039; &#039;&#039;(more well known as GEdit)&#039;&#039; is the set object data format for Hedgehog Engine 2 games. Set object data is a list of objects that should spawn in the stage, such as Springs, Rings, Goal Rings and more.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
It&#039;s made up of a list of objects using &#039;&#039;&#039;[[Resources/Reflection|Reflection]]&#039;&#039;&#039; for their parameters. &lt;br /&gt;
&lt;br /&gt;
Each object containing:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;GUID&#039;&#039;&#039;, unique for every object as its their identifier&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Parent GUID&#039;&#039;&#039;, the object its parented to, referenced by a GUID&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Object Name&#039;&#039;&#039;, the name of the object&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Type Name&#039;&#039;&#039;, name of the object type&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Position&#039;&#039;&#039;, the position of the object&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Rotation&#039;&#039;&#039;, the rotation of the object&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Components&#039;&#039;&#039;, a list of Game Object Components &#039;&#039;(more known as tags),&#039;&#039; they are used to spawn GOComponents for the Game Object such as GOCActivator (RangeSpawning), to determine the Game Objects spawning distance&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Parameters&#039;&#039;&#039;, these are just the parameters of the object, every Object Type has a set of their own, e.g. Springs have a parameter for the velocity for when the player touches them. These are using [[Resources/Reflection|Reflection]]. The reflection resources are included in their entirety (minus BinaryFile container), but the parameter pointer points directly to the data. I.e., in games that use Reflection v2, which contains a small header, the headers are included in the gedit resource, but the pointers point to the internal data object.&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
Structs taken from [https://www.github.com/angryzor/universal-csl universal-csl]&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct ComponentData {&lt;br /&gt;
    unsigned long long unk1;&lt;br /&gt;
    const char* type;&lt;br /&gt;
    unsigned long long size;&lt;br /&gt;
    void* data; // reflection&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;struct ObjectTransformData {&lt;br /&gt;
    Position position;&lt;br /&gt;
    Position rotation;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ObjectId {&lt;br /&gt;
    // Forces&lt;br /&gt;
    unsigned int id{};&lt;br /&gt;
&lt;br /&gt;
    // Frontiers and onward&lt;br /&gt;
    uint64_t objectId{};&lt;br /&gt;
    uint64_t groupId{};&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ObjectData {&lt;br /&gt;
    enum class Flag : unsigned int {&lt;br /&gt;
        DEALLOCATE,&lt;br /&gt;
        DEALLOCATE_SPAWNER_DATA,&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    Bitset&amp;lt;Flag&amp;gt; flags;&lt;br /&gt;
    const char* gameObjectClass;&lt;br /&gt;
    VariableString name; // const char* in Forces&lt;br /&gt;
    ObjectId id;&lt;br /&gt;
    ObjectId parentID;&lt;br /&gt;
    ObjectTransformData transform;&lt;br /&gt;
    ObjectTransformData localTransform;&lt;br /&gt;
    Array&amp;lt;ComponentData*&amp;gt; componentData;&lt;br /&gt;
    void* spawnerData; // reflection&lt;br /&gt;
};&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct ObjectWorldData {&lt;br /&gt;
    unsigned int unk1;&lt;br /&gt;
    unsigned int unk2;&lt;br /&gt;
    unsigned char flags;&lt;br /&gt;
    Array&amp;lt;ObjectData*&amp;gt; objects;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/ObjectWorld_/_GEdit&amp;diff=777</id>
		<title>Resources/ObjectWorld / GEdit</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/ObjectWorld_/_GEdit&amp;diff=777"/>
		<updated>2025-01-27T10:22:50Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Set Objects|Set Objects]]|extension=.gedit|games=* [[Sonic Forces|Sonic Forces]]&lt;br /&gt;
* [[Sonic Origins|Sonic Origins]]&lt;br /&gt;
* [[Sonic Frontiers|Sonic Frontiers]] &lt;br /&gt;
* [[Shadow Generations|Shadow Generations]]|tools=* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/HedgeSet|HedgeSet]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]|status=Done|container=BINA|name=Object World}}&lt;br /&gt;
&#039;&#039;&#039;Object World&#039;&#039;&#039; &#039;&#039;(more well known as GEdit)&#039;&#039; is the set object data format for Hedgehog Engine 2 games. Set object data is a list of objects that should spawn in the stage, such as Springs, Rings, Goal Rings and more.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
It&#039;s made up of a list of objects using &#039;&#039;&#039;[[Resources/Reflection|Reflection]]&#039;&#039;&#039; for their parameters. &lt;br /&gt;
&lt;br /&gt;
Each object containing:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;GUID&#039;&#039;&#039;, unique for every object as its their identifier&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Parent GUID&#039;&#039;&#039;, the object its parented to, referenced by a GUID&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Object Name&#039;&#039;&#039;, the name of the object&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Type Name&#039;&#039;&#039;, name of the object type&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Position&#039;&#039;&#039;, the position of the object&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Rotation&#039;&#039;&#039;, the rotation of the object&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Components&#039;&#039;&#039;, a list of Game Object Components &#039;&#039;(more known as tags),&#039;&#039; they are used to spawn GOComponents for the Game Object such as GOCActivator (RangeSpawning), to determine the Game Objects spawning distance&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Parameters&#039;&#039;&#039;, these are just the parameters of the object, every Object Type has a set of their own, e.g. Springs have a parameter for the velocity for when the player touches them. These are using [[Resources/Reflection|Reflection]]. The reflection resources are included in their entirety (minus BinaryFile container), but the parameter pointer points directly to the data. I.e., in games that use Reflection v2, which contains a small header, the headers are included in the gedit resource, but the pointers point to the internal data object.&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
Structs taken from [https://www.github.com/angryzor/universal-csl universal-csl]&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct ComponentData {&lt;br /&gt;
    unsigned long long unk1;&lt;br /&gt;
    const char* type;&lt;br /&gt;
    unsigned long long size;&lt;br /&gt;
    void* data; // reflection&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct ObjectTransformData {&lt;br /&gt;
    Position position;&lt;br /&gt;
    Position rotation;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ObjectId {&lt;br /&gt;
    // Forces&lt;br /&gt;
    unsigned int id{};&lt;br /&gt;
&lt;br /&gt;
    // Frontiers and onward&lt;br /&gt;
    uint64_t objectId{};&lt;br /&gt;
    uint64_t groupId{};&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ObjectData {&lt;br /&gt;
    enum class Flag : unsigned int {&lt;br /&gt;
        DEALLOCATE,&lt;br /&gt;
        DEALLOCATE_SPAWNER_DATA,&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    Bitset&amp;lt;Flag&amp;gt; flags;&lt;br /&gt;
    const char* gameObjectClass;&lt;br /&gt;
    VariableString name; // const char* in Forces&lt;br /&gt;
    ObjectId id;&lt;br /&gt;
    ObjectId parentID;&lt;br /&gt;
    ObjectTransformData transform;&lt;br /&gt;
    ObjectTransformData localTransform;&lt;br /&gt;
    Array&amp;lt;ComponentData*&amp;gt; componentData;&lt;br /&gt;
    void* spawnerData; // reflection&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct ObjectWorldData {&lt;br /&gt;
    unsigned int unk1;&lt;br /&gt;
    unsigned int unk2;&lt;br /&gt;
    unsigned char flags;&lt;br /&gt;
    Array&amp;lt;ObjectData&amp;gt; objects;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources/Particle_Location&amp;diff=776</id>
		<title>Resources/Particle Location</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources/Particle_Location&amp;diff=776"/>
		<updated>2025-01-27T10:05:24Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Resource|type=[[Resources#Effects|Effects]]|extension=.effdb|games=* [[Sonic Forces|Sonic Forces]]&lt;br /&gt;
* [[Sonic Origins|Sonic Origins]]&lt;br /&gt;
* [[Sonic Frontiers|Sonic Frontiers]] &lt;br /&gt;
* [[Shadow Generations|Shadow Generations]]|tools=* [[Tools/AshDumpTool|AshDumpTool]]|status=Done|container=BINA|name=Particle Location}}&#039;&#039;&#039;Particle Location&#039;&#039;&#039; &#039;&#039;(also known as effdb and Particle Locator)&#039;&#039; is the so called Effect Database format that&#039;s used to spawn particles and sound effects for any Animation State. It coincides with the &#039;&#039;&#039;[[Resources/Animation State Machine|Animation State Machine]]&#039;&#039;&#039; format as it contains an array for every state in that file.&lt;br /&gt;
&lt;br /&gt;
Every state can have any amount of [[Resources/Cyan Effect|particles]] and/or sounds &#039;&#039;(in [[Sonic Forces]] only one sound can be used per state)&#039;&#039; attached to it, every particle can have its own offset in terms of position, rotation and scale.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
It&#039;s made up of a list of states each containing a list of particles and sounds.&lt;br /&gt;
&lt;br /&gt;
Each state containing:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;State name&#039;&#039;&#039;, the name of the state it should add onto&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Particles&#039;&#039;&#039;, list of the particles that should be added&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Sounds&#039;&#039;&#039;, list of the sounds that should be used, a simple list of sound names, &#039;&#039;(in [[Sonic Forces]] this is not an array but just a singular sound name)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Now, each particle contains:&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Attached to bone&#039;&#039;&#039;, decides whetever it should be attached to a bone&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Use Position&#039;&#039;&#039;, decides if it should use the position value&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Use Rotation&#039;&#039;&#039;, decides if it should use the rotation value&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Use Scale&#039;&#039;&#039;, decides if it should use the scale value&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Particle Name&#039;&#039;&#039;, the name of the [[Resources/Cyan Effect|particle (.cemt)]] it should use&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Bone name&#039;&#039;&#039;, the name of the bone it should attach to, won&#039;t be used if the Attached to bone is set to false&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Position&#039;&#039;&#039;, a position offset it should attach with, won&#039;t be used if the Use Position is set to false&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Rotation&#039;&#039;&#039;, a rotation offset it should attach with, won&#039;t be used if the Use Rotation is set to false&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;Scale&#039;&#039;&#039;, a scale offset it should attach with, won&#039;t be used if the Use Scale is set to false&lt;br /&gt;
&lt;br /&gt;
== Technical info ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct Particle {&lt;br /&gt;
    enum class Flag : unsigned char {&lt;br /&gt;
        IGNORE_RELATIVE_POSITION,&lt;br /&gt;
        USE_POSITION,&lt;br /&gt;
        USE_ROTATION,&lt;br /&gt;
        USE_SCALE,&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    bool attachedToBone;&lt;br /&gt;
    Bitset&amp;lt;Flag&amp;gt; flags;&lt;br /&gt;
    const char* particleName;&lt;br /&gt;
    const char* boneName;&lt;br /&gt;
    Vector3 position;&lt;br /&gt;
    Quaternion rotation;&lt;br /&gt;
    Vector3 scale;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct State {&lt;br /&gt;
    const char* stateName;&lt;br /&gt;
    int particleCount;&lt;br /&gt;
    Particle particles*;&lt;br /&gt;
    int soundNameCount;&lt;br /&gt;
    const char** soundNames; // in Forces const char*&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
struct EffdbData{&lt;br /&gt;
    unsigned int magic;&lt;br /&gt;
    unsigned int version;&lt;br /&gt;
    int stateCount;&lt;br /&gt;
    State* states;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Resources&amp;diff=775</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Resources&amp;diff=775"/>
		<updated>2025-01-26T16:09:04Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Levels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Resources are the data files that contain things like 3D models, textures, animations and any other kind of assets. Many of these resources are stored in proprietary formats optimized for fast loading times, and thus require special tools to be edited by modders. Many of them are also built using proprietary SEGA technologies, like the ASM animation system. On this page we provide a list of all known resources supported by the Hedgehog Engine, their support in various games and tools that can be used to edit them.&lt;br /&gt;
&lt;br /&gt;
== Archives ==&lt;br /&gt;
Archives are compressed archives (&amp;quot;zip files&amp;quot;) that contain most of the game&#039;s data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile|Packfile]]&lt;br /&gt;
|Compressed archive containing most other resources.&lt;br /&gt;
|.pac&lt;br /&gt;
|Packfile&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile Info|Packfile Info]]&lt;br /&gt;
|Contains information about a packfile.&lt;br /&gt;
|&lt;br /&gt;
|PackfileInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Packfile Extended Info|Packfile Extended Info]]&lt;br /&gt;
|Contains extended information about a packfile.&lt;br /&gt;
|&lt;br /&gt;
|PackfileExtendedInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Depend|Depend]]&lt;br /&gt;
|Stores information about packfile dependencies.&lt;br /&gt;
|.pac.d&lt;br /&gt;
|ResDepend&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pac General|Pac General]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ResPacGeneral&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Virtual Archive|Virtual Archive]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|VirtualArchive&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AR File&lt;br /&gt;
|Archive containing resources.&lt;br /&gt;
|.ar&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|ARL File&lt;br /&gt;
|Link file containing data on what each .ar file stores and its appropriate splits.&lt;br /&gt;
|.arl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeArcPack|HedgeArcPack]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Levels ==&lt;br /&gt;
Levels are a new system in [[Sonic Frontiers]] and up that allow the game to dynamically load other resources when they are needed. They specify which resources need to be loaded to load a certain &amp;quot;level&amp;quot;. This is a system similar to Unreal Engine&#039;s level system.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Level|Level]]&lt;br /&gt;
|A special resource that&#039;s only used to check whether a level has been loaded in the engine. It does not contain any data.&lt;br /&gt;
|.level&lt;br /&gt;
|ResLevel&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Master Level|Master Level]]&lt;br /&gt;
|Information about levels: which levels depend on each other, and also which resources to load in order to load a level.&lt;br /&gt;
|.mlevel&lt;br /&gt;
|ResMasterLevel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Configuration Parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Reflection|Reflection]]&lt;br /&gt;
|Reflection-enabled configuration data. Contains parameters that can be edited by developers without changing game code.&lt;br /&gt;
|.rfl&lt;br /&gt;
|ResReflection&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Set Objects ==&lt;br /&gt;
Set object data is what specifies where game objects are placed and how they are configured. This is what you&#039;ll be editing most when making a stage mod.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/ObjectWorld / GEdit|ObjectWorld / GEdit]]&lt;br /&gt;
|Object placement and parameter data (HE2).&lt;br /&gt;
|.gedit&lt;br /&gt;
|ResObjectWorld&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/HedgeSet|HedgeSet]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Set Object|Orca: Set Object]]&lt;br /&gt;
|Object placement and parameter data (HE1).&lt;br /&gt;
|.orc&lt;br /&gt;
|ResOrcaData&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/GLVL|GLVL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gismos ==&lt;br /&gt;
Gismos are small reusable objects (that can potentially have physics applied) intended usually for decoration.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Gismo Config Design|Gismo Config Design]]&lt;br /&gt;
|Defines the properties of gismo objects.&lt;br /&gt;
|.gismod&lt;br /&gt;
|ResGismoConfigDesign&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Gismo Config Plan|Gismo Config Plan]]&lt;br /&gt;
|&lt;br /&gt;
|.gismop&lt;br /&gt;
|ResGismoConfigPlan&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Models ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Model| Model]]&lt;br /&gt;
| Contains 3D model information (also contains an armature).&lt;br /&gt;
|.model&lt;br /&gt;
|ResModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Model|Terrain Model]]&lt;br /&gt;
|Contains 3D model information specifically for terrain models. Similar to &amp;quot;Model&amp;quot; but does not contain an armature.&lt;br /&gt;
|.terrain-model&lt;br /&gt;
|ResTerrainModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/ModelConverter|ModelConverter]]&lt;br /&gt;
* [[Tools/modelfbx|modelfbx]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Heightfield|Heightfield]]&lt;br /&gt;
|Height field maps.&lt;br /&gt;
|.heightfield&lt;br /&gt;
|ResHeightField&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HeightFielder|HeightFielder]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Model Pointcloud|Model Pointcloud]]&lt;br /&gt;
| Placement information for model or terrain model instances.&lt;br /&gt;
|.pcmodel&lt;br /&gt;
|ResPointcloudModel&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Map|Orca: Map]]&lt;br /&gt;
|Placement information for model or terrain model instances.&lt;br /&gt;
|.map.bin&lt;br /&gt;
|ResDivMap&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Model Instance Info|MIRAGE Model Instance Info]]&lt;br /&gt;
|Contains information about model instances.&lt;br /&gt;
|.model-instanceinfo&lt;br /&gt;
|ResMirageModelInstanceInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Terrain Instance Info|MIRAGE Terrain Instance Info]]&lt;br /&gt;
|Contains information about terrain model instances.&lt;br /&gt;
|.terrain-instanceinfo&lt;br /&gt;
|ResMirageTerrainInstanceInfo&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Link Info|Vertex Link Info]]&lt;br /&gt;
|&lt;br /&gt;
|.vli&lt;br /&gt;
|ResVertexLinkInfo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MetaTerrainInstance&lt;br /&gt;
|A file containing model and lightfield data capable of animating, commonly used for grass and clouds.&lt;br /&gt;
|.mti&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Texture|Texture]]&lt;br /&gt;
|2D textures for model skinning.&lt;br /&gt;
|.dds&lt;br /&gt;
|ResTexture&lt;br /&gt;
|&lt;br /&gt;
* [https://developer.nvidia.com/texture-tools-exporter nVidia Texture Tools Exporter]&lt;br /&gt;
* DirectX texconv&lt;br /&gt;
* [https://www.gimp.org/ GIMP (cannot read BC7)]&lt;br /&gt;
* [https://www.getpaint.net/ Paint.NET]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Streaming Texture|Streaming Texture]]&lt;br /&gt;
|Streamed 2D textures.&lt;br /&gt;
|&lt;br /&gt;
|ResStreamingTexture&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Materials ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Material|Material]]&lt;br /&gt;
|Material information. Contains shader parameters and texture names.&lt;br /&gt;
|.material&lt;br /&gt;
|ResMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Material|Terrain Material]]&lt;br /&gt;
|Terrain material information.&lt;br /&gt;
|.terrain-material&lt;br /&gt;
|ResTerrainMaterial&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Material (Unleashed)|Material]]&lt;br /&gt;
|Contains shader information and texset resource information.&lt;br /&gt;
|.material&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|-&lt;br /&gt;
|Texture&lt;br /&gt;
|Contains parameter information for texture files linked to a material.&lt;br /&gt;
|.texture&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|-&lt;br /&gt;
|Texset&lt;br /&gt;
|Contains groupings of textures linked to a material.&lt;br /&gt;
|.texset&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/HedgeEdit|HedgeEdit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
All kinds of animation data.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PXD Skeleton|PXD Skeleton]]&lt;br /&gt;
|Skeleton for PXD animations.&lt;br /&gt;
|.skl.pxd&lt;br /&gt;
|ResSkeletonPxd&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]] &lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PXD Animation|PXD Animation]]&lt;br /&gt;
|Animation data.&lt;br /&gt;
|.anm.pxd&lt;br /&gt;
|ResAnimationPxd&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Sonic Frontiers Animation Tools|Sonic Frontiers Animation Tools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/PBA Skeleton|PBA Skeleton]]&lt;br /&gt;
|Skeleton for physics based animations.&lt;br /&gt;
|.pba&lt;br /&gt;
|ResPhysicalSkeleton&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Animation State Machine|Animation State Machine]]&lt;br /&gt;
|Animation State Machine data. Handles animation blending, animation states, animation triggers, etc.&lt;br /&gt;
|.asm&lt;br /&gt;
|ResAnimator&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/HelperBone|HelperBone]]&lt;br /&gt;
|Currently unknown.&lt;br /&gt;
|.helperbone.bin&lt;br /&gt;
|ResHelperBone&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Material Animation|Material Animation]]&lt;br /&gt;
|Material animations.&lt;br /&gt;
|.mat-anim&lt;br /&gt;
|ResAnimMaterial&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/UV Animation|UV Animation]]&lt;br /&gt;
|Texture UV animations (presumably Wii SRT0).&lt;br /&gt;
|.uv-anim&lt;br /&gt;
|ResAnimTexSrt&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Texture Pattern Animation|Texture Pattern Animation]]&lt;br /&gt;
|Texture pattern animations (presumably Wii PAT0).&lt;br /&gt;
|.pt-anim&lt;br /&gt;
|ResAnimTexPat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Visibility Animation|Visibility Animation]]&lt;br /&gt;
|Bone visibility animations (presumably Wii VIS0).&lt;br /&gt;
|.vis-anim&lt;br /&gt;
|ResAnimVis&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Camera Animation|Camera Animation]]&lt;br /&gt;
|Camera animations.&lt;br /&gt;
|.cam-anim&lt;br /&gt;
|ResAnimCameraContainer&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (he_anim_tool)&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Light Animation|Light Animation]]&lt;br /&gt;
|Light animations.&lt;br /&gt;
|.lit-anim&lt;br /&gt;
|ResAnimLightContainer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Animation Texture|Vertex Animation Texture]]&lt;br /&gt;
|Vertex animation textures (textures that efficiently encode large scale animations on vertices).&lt;br /&gt;
|.vat&lt;br /&gt;
|ResVertexAnimationTexture&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Havok Skeleton|Havok Skeleton]]&lt;br /&gt;
|Skeleton for Havok Animations&lt;br /&gt;
|.skl.hkx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Havok Animation|Havok Animation]]&lt;br /&gt;
|Animation data.&lt;br /&gt;
|.anm.hkx&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lighting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Light|MIRAGE Light]]&lt;br /&gt;
|MIRAGE point lights.&lt;br /&gt;
|.light&lt;br /&gt;
|ResMirageLight&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/MIRAGE Lightfield|MIRAGE Lightfield]]&lt;br /&gt;
|MIRAGE light field data.&lt;br /&gt;
|.lft&lt;br /&gt;
|ResMirageLightField&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SH Lightfield|SH Lightfield]]&lt;br /&gt;
|Spherical harmonics based light field data.&lt;br /&gt;
|.lf&lt;br /&gt;
|ResSHLightField&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Probe|Probe]]&lt;br /&gt;
|IBL probe data.&lt;br /&gt;
|.probe&lt;br /&gt;
|ResProbe&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Light Pointcloud|Light Pointcloud]]&lt;br /&gt;
|Instance placement information for point lights.&lt;br /&gt;
|.pcrt&lt;br /&gt;
|ResPointcloudLight&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FxCol ==&lt;br /&gt;
FxCol defines collision shapes in the game world that can apply post processing effects when the player walks through them.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/FxColFile2|FxColFile2]]&lt;br /&gt;
|FxCol configuration.&lt;br /&gt;
|.fxcol&lt;br /&gt;
|ResFxColFile2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SvCol ==&lt;br /&gt;
SvCol defines collision shapes in the game world that control sector visibility (a form of culling).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SvCol2|SvCol2]]&lt;br /&gt;
|SvCol configuration.&lt;br /&gt;
|.svcol&lt;br /&gt;
|ResSvCol2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Effects ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Cyan Effect|Cyan Effect]]&lt;br /&gt;
|Particle effect systems.&lt;br /&gt;
|.cemt&lt;br /&gt;
|ResEffect&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/CEMT Color Editing Tool|CEMT Color Editing Tool]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Particle Location|Particle Location]]&lt;br /&gt;
|Database of particle effects with transform values and sounds&lt;br /&gt;
|.effdb&lt;br /&gt;
|ResParticleLocation&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Mesh|Bullet Mesh]]&lt;br /&gt;
|Bullet physics engine mesh. Used for collision detection.&lt;br /&gt;
|.btmesh&lt;br /&gt;
|ResPhysicsMesh&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/btmesh|btmesh]]&lt;br /&gt;
* [[Tools/HEIO|HEIO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Soft Body|Bullet Soft Body]]&lt;br /&gt;
|Bullet physics engine soft body.&lt;br /&gt;
|.btsb&lt;br /&gt;
|ResSoftBody&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bullet Skinned Mesh Collider|Bullet Skinned Mesh Collider]]&lt;br /&gt;
|Bullet physics engine skinned mesh collider. Not exactly known what this is currently.&lt;br /&gt;
|.btsmc&lt;br /&gt;
|ResSkinnedMeshCollider&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Collision Pointcloud|Collision Pointcloud]]&lt;br /&gt;
|Instance placement info for collision meshes.&lt;br /&gt;
|.pccol&lt;br /&gt;
|ResPointCloudCollision&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]] &lt;br /&gt;
* [[Tools/AshDumpTool|AshDumpTool]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paths ==&lt;br /&gt;
Paths are 3D splines that the game engine uses for various tasks, e.g. to generate grind rails, calculate projectile movements, generate replicated objects and keep the player on a 2D rail.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Spline Path|Orca: Spline Path]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path.bin&lt;br /&gt;
|ResSplinePath&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Orca: Spline Path 2|Orca: Spline Path 2]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path2.bin&lt;br /&gt;
|ResSplinePath2&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Path|Path]]&lt;br /&gt;
|Contains path information.&lt;br /&gt;
|.path&lt;br /&gt;
|ResSplinePath&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
* [[Tools/KnuxTools|KnuxTools]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Occlusion Capsule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Occlusion Capsule|Occlusion Capsule]]&lt;br /&gt;
|Occlusion capsules&lt;br /&gt;
|.occ&lt;br /&gt;
|ResOcclusionCapsule&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Atmosphere ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atmospheric Fog|Atmospheric Fog]]&lt;br /&gt;
|Atmospheric fog data.&lt;br /&gt;
|?&lt;br /&gt;
|ResAtmosphericFog&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Density (vegetation) ==&lt;br /&gt;
Density is HE&#039;s GPU based vegetation system.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Setting|Density Setting]]&lt;br /&gt;
|Configures the Hedgehog Engine density system. Configures all the density system&#039;s parameters and references density models.&lt;br /&gt;
|.densitysetting&lt;br /&gt;
|ResDensitySetting&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Point Cloud|Density Point Cloud]]&lt;br /&gt;
|Placement of pre-baked density models.&lt;br /&gt;
|.densitypointcloud&lt;br /&gt;
|ResDensityPointCloud&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Blendhog Level Creator|Blendhog Level Creator]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Density Instance|Density Instance]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ResDensityInstance&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Terrain Grass Info|Terrain Grass Info]]&lt;br /&gt;
|&lt;br /&gt;
|.grass.bin&lt;br /&gt;
|ResTerrainGrassInfo&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NavMesh ==&lt;br /&gt;
Navmeshes are meshes that the game&#039;s AI actors can use to navigate the map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/NavMesh Config|NavMesh Config]]&lt;br /&gt;
|Navmesh configuration&lt;br /&gt;
|.nmc&lt;br /&gt;
|ResNavMeshConfig&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/NavMesh Tile|NavMesh Tile]]&lt;br /&gt;
|Navmesh tile&lt;br /&gt;
|.nmt&lt;br /&gt;
|ResNavMeshTile&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Navigation Mesh&lt;br /&gt;
|Navigation mesh map&lt;br /&gt;
|.navi.xml / .navi.xmlbin&lt;br /&gt;
|NavigationMesh&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AI State Machine ==&lt;br /&gt;
The AI state machine controls AI behavior of enemies in game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/AI State Machine|AI State Machine]]&lt;br /&gt;
|Configuration for the AI State Machine&lt;br /&gt;
|.aism&lt;br /&gt;
|ResAIStateMachine&lt;br /&gt;
|[[Tools/010 Editor Binary Templates|AshDump]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cinematics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Scene|Scene]]&lt;br /&gt;
|Legacy cinematics system.&lt;br /&gt;
|.scene&lt;br /&gt;
|ResScene&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/DvScene|DvScene]]&lt;br /&gt;
|Cinematics.&lt;br /&gt;
|.dvscene&lt;br /&gt;
|ResDvScene&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/USM|USM]]&lt;br /&gt;
|CRIware&#039;s video format&lt;br /&gt;
|.usm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Decals ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Decal|Decal]]&lt;br /&gt;
|Decals. Referenced in FxColManager.&lt;br /&gt;
|?&lt;br /&gt;
|ResDecal&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Decal Pointcloud|Decal Pointcloud]]&lt;br /&gt;
|Placement information for decal instances. Referenced in FxColManager.&lt;br /&gt;
|?&lt;br /&gt;
|ResDecalPointcloud&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shaders ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vertex Shader|Vertex Shader]]&lt;br /&gt;
|Vertex shaders.&lt;br /&gt;
|.vso&lt;br /&gt;
|ResVertexShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pixel Shader|Pixel Shader]]&lt;br /&gt;
|Pixel shaders.&lt;br /&gt;
|.pso&lt;br /&gt;
|ResFragmentShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Compute Shader|Compute Shader]]&lt;br /&gt;
|Compute shaders&lt;br /&gt;
|.cso&lt;br /&gt;
|ResComputeShader&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Shader List|Shader List]]&lt;br /&gt;
|List of shaders.&lt;br /&gt;
|.shader-list&lt;br /&gt;
|ResShaderList&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atom Config|Atom Config]]&lt;br /&gt;
|CRIware Atom configuration data.&lt;br /&gt;
|.acf&lt;br /&gt;
|ResAtomConfig&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Atom Cue Sheet|Atom Cue Sheet]]&lt;br /&gt;
|CRIware Atom cue sheet. Contains the game&#039;s audio and cue/AISAC information.&lt;br /&gt;
|.acb&lt;br /&gt;
|ResAtomCueSheet&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/KwasTools|KwasTools]] (cri_utf_tool)&lt;br /&gt;
* [[Tools/SonicAudioTools|SonicAudioTools]] (Deprecated)&lt;br /&gt;
* [[Tools/Eternity Audio Tool|Eternity Audio Tool]] (Outdated)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/SurfRide SWIF|SurfRide SWIF]]&lt;br /&gt;
|Describes UI layout and animations. Similar to a primitive version of Adobe Flash.&lt;br /&gt;
|.swif&lt;br /&gt;
|ResSurfRideProject&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/DevTools|DevTools]]&lt;br /&gt;
* [[Tools/010 Editor Binary Templates|010 Editor Binary Templates]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name&lt;br /&gt;
!Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Lua|Lua]]&lt;br /&gt;
|A Lua script.&lt;br /&gt;
|.lua&lt;br /&gt;
|ResLuaData&lt;br /&gt;
|&lt;br /&gt;
* Any text editor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Haptics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Vibration|Vibration]]&lt;br /&gt;
|Haptics vibration information.&lt;br /&gt;
|.vib&lt;br /&gt;
|ResVibration&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clipmap ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Clipmap Ocean|Clipmap Ocean]]&lt;br /&gt;
|&lt;br /&gt;
|.cob&lt;br /&gt;
|ResClipmapOcean&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Project|Converse Project]]&lt;br /&gt;
|Localization project data.&lt;br /&gt;
|.cnvrs-proj&lt;br /&gt;
|ResTextProject&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Text|Converse Text]]&lt;br /&gt;
|Localization text data.&lt;br /&gt;
|.cnvrs-text&lt;br /&gt;
|ResText&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Puyo Text Editor|Puyo Text Editor]]&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Converse Meta|Converse Meta]]&lt;br /&gt;
|Localization metadata.&lt;br /&gt;
|.cnvrs-meta&lt;br /&gt;
|ResTextMeta&lt;br /&gt;
|&lt;br /&gt;
* [[Tools/Converse Editor|Converse Editor]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fonts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Bitmap Font|Bitmap Font]]&lt;br /&gt;
|Bitmap fonts.&lt;br /&gt;
|.bfnt&lt;br /&gt;
|ResBitmapFont&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Scalable Font Set|Scalable Font Set]]&lt;br /&gt;
|Vector fonts.&lt;br /&gt;
|.scfnt&lt;br /&gt;
|ResScalableFontSet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Optical Kerning|Optical Kerning]]&lt;br /&gt;
|Information about optical text kerning.&lt;br /&gt;
|.okern&lt;br /&gt;
|ResOpticalKerning&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unicode ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/ICU data|ICU data]]&lt;br /&gt;
|Data for libicu (unicode library)&lt;br /&gt;
|.icu&lt;br /&gt;
|ResIcuData&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Acceleration Structures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/K-D Tree|K-D Tree]]&lt;br /&gt;
|A serialized [[wikipedia:K-d_tree|k-d tree]]. This resource has only been seen as a runtime resource in the engine or embedded in [[Resources/Path|Path]] resources.&lt;br /&gt;
|N/A&lt;br /&gt;
|ResKdTree&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unknown ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
!Extension&lt;br /&gt;
!Engine name!! Editing tools&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Name Extra|Name Extra]]&lt;br /&gt;
|&lt;br /&gt;
|.nextra&lt;br /&gt;
|ResNameExtra&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Resources/Pointcloud|Pointcloud]]&lt;br /&gt;
|&lt;br /&gt;
|.pointcloud&lt;br /&gt;
|ResPointcloud&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers/ID_Mappings&amp;diff=774</id>
		<title>Sonic Frontiers/ID Mappings</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers/ID_Mappings&amp;diff=774"/>
		<updated>2025-01-26T16:02:41Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: /* Characters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Worlds ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+World ID Guide&lt;br /&gt;
!Letter&lt;br /&gt;
!World Type&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Island&lt;br /&gt;
|-&lt;br /&gt;
|t&lt;br /&gt;
|Training/Master Trial&lt;br /&gt;
|-&lt;br /&gt;
|d&lt;br /&gt;
|Cyberspace Level&lt;br /&gt;
|-&lt;br /&gt;
|f&lt;br /&gt;
|Fishing Spot, usually w1&lt;br /&gt;
|-&lt;br /&gt;
|h&lt;br /&gt;
|Hacking Level, usually w1&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Battle Rush Stage&lt;br /&gt;
|-&lt;br /&gt;
|w1&lt;br /&gt;
|Grassy Island&lt;br /&gt;
|-&lt;br /&gt;
|w2&lt;br /&gt;
|Desert Island&lt;br /&gt;
|-&lt;br /&gt;
|w3&lt;br /&gt;
|Volcanic Island&lt;br /&gt;
|-&lt;br /&gt;
|w4&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|w5&lt;br /&gt;
|Miscellaneous&lt;br /&gt;
|-&lt;br /&gt;
|w6&lt;br /&gt;
|Green Hill&lt;br /&gt;
|-&lt;br /&gt;
|w7&lt;br /&gt;
|Chemical Plant&lt;br /&gt;
|-&lt;br /&gt;
|w8&lt;br /&gt;
|Sky Sanctuary&lt;br /&gt;
|-&lt;br /&gt;
|w9&lt;br /&gt;
|Eternal Highway&lt;br /&gt;
|}&lt;br /&gt;
All the IDs have been obtained from &#039;&#039;&#039;raw/script/script_resident.pac/stagedata.lua&#039;&#039;&#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible&amp;quot;&lt;br /&gt;
|+World IDs&lt;br /&gt;
!Name&lt;br /&gt;
!ID&lt;br /&gt;
!2D/3D&lt;br /&gt;
|-&lt;br /&gt;
|[Unused] Alpha Kronos&lt;br /&gt;
|w1r01&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|[Unused] Beta Kronos&lt;br /&gt;
|w1r02&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Kronos Island&lt;br /&gt;
|w1r03&lt;br /&gt;
|Mixed&lt;br /&gt;
|-&lt;br /&gt;
|Ares Island&lt;br /&gt;
|w2r01&lt;br /&gt;
|Mixed&lt;br /&gt;
|-&lt;br /&gt;
|Chaos Island&lt;br /&gt;
|w3r01&lt;br /&gt;
|Mixed&lt;br /&gt;
|-&lt;br /&gt;
|Rhea Island&lt;br /&gt;
|w1r05&lt;br /&gt;
|Mixed&lt;br /&gt;
|-&lt;br /&gt;
|Ouranos Island&lt;br /&gt;
|w1r04&lt;br /&gt;
|Mixed&lt;br /&gt;
|-&lt;br /&gt;
|Final Horizon Ouranos Island&lt;br /&gt;
|w1r06&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|[Unused] Unknown Island&lt;br /&gt;
|w4r01&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|The End Boss&lt;br /&gt;
|w5r01&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Training Room&lt;br /&gt;
|w5t01&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|Master Trial Arena&lt;br /&gt;
|w5t02&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|1-1&lt;br /&gt;
|w6d01&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|1-2&lt;br /&gt;
|w8d01&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|1-3&lt;br /&gt;
|w9d04&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|1-4&lt;br /&gt;
|w6d02&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|1-5&lt;br /&gt;
|w7d04&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|1-6&lt;br /&gt;
|w6d06&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|1-7&lt;br /&gt;
|w9d06&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|2-1&lt;br /&gt;
|w6d05&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|2-2&lt;br /&gt;
|w8d03&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|2-3&lt;br /&gt;
|w7d02&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|2-4&lt;br /&gt;
|w7d06&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|2-5&lt;br /&gt;
|w8d04&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|2-6&lt;br /&gt;
|w6d03&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|2-7&lt;br /&gt;
|w8d05&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|3-1&lt;br /&gt;
|w6d04&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|3-2&lt;br /&gt;
|w6d08&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|3-3&lt;br /&gt;
|w8d02&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|3-4&lt;br /&gt;
|w6d09&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|3-5&lt;br /&gt;
|w6d07&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|3-6&lt;br /&gt;
|w8d06&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|3-7&lt;br /&gt;
|w7d03&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|4-1&lt;br /&gt;
|w7d08&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-2&lt;br /&gt;
|w9d02&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-3&lt;br /&gt;
|w7d01&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-4&lt;br /&gt;
|w9d03&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-5&lt;br /&gt;
|w6d10&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-6&lt;br /&gt;
|w7d07&lt;br /&gt;
|2D&lt;br /&gt;
|-&lt;br /&gt;
|4-7&lt;br /&gt;
|w9d05&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-8&lt;br /&gt;
|w7d05&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-9&lt;br /&gt;
|w9d07&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-A [1-4 Remix]&lt;br /&gt;
|w6d21&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-B [3-1 Remix]&lt;br /&gt;
|w6d22&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-C [4-5 Remix]&lt;br /&gt;
|w6d23&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-D [4-3 Remix]&lt;br /&gt;
|w7d21&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-E [1-5 Remix]&lt;br /&gt;
|w7d22&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-F [2-4 Remix]&lt;br /&gt;
|w7d23&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-G [4-2 Remix]&lt;br /&gt;
|w9d21&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-H [4-4 Remix]&lt;br /&gt;
|w9d22&lt;br /&gt;
|3D&lt;br /&gt;
|-&lt;br /&gt;
|4-I [1-7 Remix]&lt;br /&gt;
|w9d23&lt;br /&gt;
|3D&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bosses and Minibosses ==&lt;br /&gt;
All internal names were obtained from &#039;&#039;&#039;&amp;quot;raw\miniboss&amp;quot;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;quot;raw\boss&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible&amp;quot;&lt;br /&gt;
|+Miniboss Internal Names&lt;br /&gt;
!In-Game Name&lt;br /&gt;
!Internal Name&lt;br /&gt;
|-&lt;br /&gt;
|Asura&lt;br /&gt;
|Ashura&lt;br /&gt;
|-&lt;br /&gt;
|Ninja&lt;br /&gt;
|Blade&lt;br /&gt;
|-&lt;br /&gt;
|Caterpillar&lt;br /&gt;
|Charger&lt;br /&gt;
|-&lt;br /&gt;
|Tower&lt;br /&gt;
|Daruma&lt;br /&gt;
|-&lt;br /&gt;
|Squid&lt;br /&gt;
|Flyer&lt;br /&gt;
|-&lt;br /&gt;
|Shark&lt;br /&gt;
|Skier&lt;br /&gt;
|-&lt;br /&gt;
|Spider&lt;br /&gt;
|Spider&lt;br /&gt;
|-&lt;br /&gt;
|Sumo&lt;br /&gt;
|Sumo&lt;br /&gt;
|-&lt;br /&gt;
|Tank&lt;br /&gt;
|Tyrant&lt;br /&gt;
|-&lt;br /&gt;
|Fortress&lt;br /&gt;
|Warship&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible&amp;quot;&lt;br /&gt;
|+Boss Internal Names&lt;br /&gt;
!In-Game Name&lt;br /&gt;
!Internal Name&lt;br /&gt;
|-&lt;br /&gt;
|Giganto&lt;br /&gt;
|Giant&lt;br /&gt;
|-&lt;br /&gt;
|Wyvern&lt;br /&gt;
|Dragon&lt;br /&gt;
|-&lt;br /&gt;
|Knight&lt;br /&gt;
|Knight&lt;br /&gt;
|-&lt;br /&gt;
|Supreme&lt;br /&gt;
|Rifle&lt;br /&gt;
|-&lt;br /&gt;
|Supreme (The End)&lt;br /&gt;
|RifleBeast&lt;br /&gt;
|-&lt;br /&gt;
|The End&lt;br /&gt;
|the_end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Enemies ==&lt;br /&gt;
All internal names were obtained from &#039;&#039;&#039;&amp;quot;raw\enemy&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible&amp;quot;&lt;br /&gt;
|+Open Zone Enemy Internal Names&lt;br /&gt;
!In-Game Name&lt;br /&gt;
!Internal Name&lt;br /&gt;
|-&lt;br /&gt;
|Soldier&lt;br /&gt;
|Jellyman/Man&lt;br /&gt;
|-&lt;br /&gt;
|Cyclone&lt;br /&gt;
|Twister&lt;br /&gt;
|-&lt;br /&gt;
|Shell&lt;br /&gt;
|Defender&lt;br /&gt;
|-&lt;br /&gt;
|Sniper&lt;br /&gt;
|Sniper&lt;br /&gt;
|-&lt;br /&gt;
|Jellyfish&lt;br /&gt;
|Umbrella&lt;br /&gt;
|-&lt;br /&gt;
|Wolf&lt;br /&gt;
|Wolf&lt;br /&gt;
|-&lt;br /&gt;
|Bubble&lt;br /&gt;
|Bubble&lt;br /&gt;
|-&lt;br /&gt;
|Banger&lt;br /&gt;
|Bommer&lt;br /&gt;
|-&lt;br /&gt;
|Eagle&lt;br /&gt;
|Bird&lt;br /&gt;
|-&lt;br /&gt;
|Capture&lt;br /&gt;
|Robber&lt;br /&gt;
|-&lt;br /&gt;
|Balloon&lt;br /&gt;
|Aquaball&lt;br /&gt;
|-&lt;br /&gt;
|Hopper&lt;br /&gt;
|Jumper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible&amp;quot;&lt;br /&gt;
|+Cyber Space Enemy Internal Names&lt;br /&gt;
!In-Game Name&lt;br /&gt;
!Internal Name&lt;br /&gt;
|-&lt;br /&gt;
|Motobug&lt;br /&gt;
|Motora&lt;br /&gt;
|-&lt;br /&gt;
|Buzz Bomber/Buzzer&lt;br /&gt;
|Beeton&lt;br /&gt;
|-&lt;br /&gt;
|Spinner&lt;br /&gt;
|SpinnerI&lt;br /&gt;
|-&lt;br /&gt;
|Chopper&lt;br /&gt;
|Batabata&lt;br /&gt;
|-&lt;br /&gt;
|Egg Robo&lt;br /&gt;
|EggRobo&lt;br /&gt;
|-&lt;br /&gt;
|Crabmeat&lt;br /&gt;
|Ganigani&lt;br /&gt;
|-&lt;br /&gt;
|Spiny&lt;br /&gt;
|Lander&lt;br /&gt;
|-&lt;br /&gt;
|Grabber&lt;br /&gt;
|Grabber&lt;br /&gt;
|-&lt;br /&gt;
|Helicopter&lt;br /&gt;
|Helicopter&lt;br /&gt;
|-&lt;br /&gt;
|Tank&lt;br /&gt;
|Tank&lt;br /&gt;
|-&lt;br /&gt;
|Cannon&lt;br /&gt;
|CannonType&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Characters ==&lt;br /&gt;
All internal names were obtained from &#039;&#039;&#039;&amp;quot;raw/character&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Character Internal Name&lt;br /&gt;
!Name&lt;br /&gt;
!Internal Name&lt;br /&gt;
|-&lt;br /&gt;
|Cyber Amy&lt;br /&gt;
|amy&lt;br /&gt;
|-&lt;br /&gt;
|Birthday styled Amy&lt;br /&gt;
|amy_birthday&lt;br /&gt;
|-&lt;br /&gt;
|Amy&lt;br /&gt;
|amy_orig&lt;br /&gt;
|-&lt;br /&gt;
|Playable Amy&lt;br /&gt;
|amyP&lt;br /&gt;
|-&lt;br /&gt;
|Ancients&lt;br /&gt;
|ancients&lt;br /&gt;
|-&lt;br /&gt;
|Child Ancients&lt;br /&gt;
|ancientschild&lt;br /&gt;
|-&lt;br /&gt;
|Master King Ancients&lt;br /&gt;
|ancientsexpertking&lt;br /&gt;
|-&lt;br /&gt;
|Ancients General&lt;br /&gt;
|ancientsgeneral&lt;br /&gt;
|-&lt;br /&gt;
|Ancients Senior&lt;br /&gt;
|ancientssenior&lt;br /&gt;
|-&lt;br /&gt;
|Ancients Woman&lt;br /&gt;
|ancientswoman&lt;br /&gt;
|-&lt;br /&gt;
|Big The Cat&lt;br /&gt;
|big&lt;br /&gt;
|-&lt;br /&gt;
|Eggman&lt;br /&gt;
|eggman&lt;br /&gt;
|-&lt;br /&gt;
|Eggman and Eggmobile&lt;br /&gt;
|eggmanT&lt;br /&gt;
|-&lt;br /&gt;
|Eggman and Eggmobile NPC&lt;br /&gt;
|eggmobileride&lt;br /&gt;
|-&lt;br /&gt;
|Cyber Knuckles&lt;br /&gt;
|knuckles&lt;br /&gt;
|-&lt;br /&gt;
|Birthday styled Knuckles&lt;br /&gt;
|knuckles_birthday&lt;br /&gt;
|-&lt;br /&gt;
|Knuckles&lt;br /&gt;
|knuckles_orig&lt;br /&gt;
|-&lt;br /&gt;
|Playable Knuckles&lt;br /&gt;
|knucklesP&lt;br /&gt;
|-&lt;br /&gt;
|Kronos Koco Accessories&lt;br /&gt;
|kodamaA&lt;br /&gt;
|-&lt;br /&gt;
|Ares Koco Accessories&lt;br /&gt;
|kodamaB&lt;br /&gt;
|-&lt;br /&gt;
|Chaos Koco Accessories&lt;br /&gt;
|kodamaC&lt;br /&gt;
|-&lt;br /&gt;
|Birthday Koco Accessories&lt;br /&gt;
|kodamabirthday&lt;br /&gt;
|-&lt;br /&gt;
|Koco Child&lt;br /&gt;
|kodamachild&lt;br /&gt;
|-&lt;br /&gt;
|Koco&lt;br /&gt;
|kodamacommon&lt;br /&gt;
|-&lt;br /&gt;
|Crown Koco&lt;br /&gt;
|kodamacrown&lt;br /&gt;
|-&lt;br /&gt;
|Pilot Koco&lt;br /&gt;
|kodamadisciple&lt;br /&gt;
|-&lt;br /&gt;
|Easter Koco&lt;br /&gt;
|kodamaegg&lt;br /&gt;
|-&lt;br /&gt;
|Elder Koco&lt;br /&gt;
|kodamaelder&lt;br /&gt;
|-&lt;br /&gt;
|FH Elder Koco&lt;br /&gt;
|kodamaelder02&lt;br /&gt;
|-&lt;br /&gt;
|FH Expert/Trial Koco&lt;br /&gt;
|kodamaexpert&lt;br /&gt;
|-&lt;br /&gt;
|FH Master Koco&lt;br /&gt;
|kodamaexpertking&lt;br /&gt;
|-&lt;br /&gt;
|FH Tablet Koco&lt;br /&gt;
|kodamahack&lt;br /&gt;
|-&lt;br /&gt;
|Lover Koco&lt;br /&gt;
|kodamalover&lt;br /&gt;
|-&lt;br /&gt;
|FH Map Koco&lt;br /&gt;
|kodamamap&lt;br /&gt;
|-&lt;br /&gt;
|Mother Koco&lt;br /&gt;
|kodamamother&lt;br /&gt;
|-&lt;br /&gt;
|FH Skill Point Koco&lt;br /&gt;
|kodamapeddler&lt;br /&gt;
|-&lt;br /&gt;
|FH Training Dummy Koco&lt;br /&gt;
|kodamapunch&lt;br /&gt;
|-&lt;br /&gt;
|Soldier Koco&lt;br /&gt;
|kodamasoldier&lt;br /&gt;
|-&lt;br /&gt;
|Hermit Koco&lt;br /&gt;
|kodamaster&lt;br /&gt;
|-&lt;br /&gt;
|FH Hermit Koco&lt;br /&gt;
|kodamaster02&lt;br /&gt;
|-&lt;br /&gt;
|FH Tower Koco&lt;br /&gt;
|kodamatower&lt;br /&gt;
|-&lt;br /&gt;
|Warrior Koco&lt;br /&gt;
|kodamawarrior&lt;br /&gt;
|-&lt;br /&gt;
|Sage&lt;br /&gt;
|sage&lt;br /&gt;
|-&lt;br /&gt;
|Sonic&lt;br /&gt;
|sonic&lt;br /&gt;
|-&lt;br /&gt;
|Birthday styled Sonic&lt;br /&gt;
|sonic_birthday&lt;br /&gt;
|-&lt;br /&gt;
|Sonic with a Crown&lt;br /&gt;
|sonic_crown&lt;br /&gt;
|-&lt;br /&gt;
|Sonic&#039;s Board&lt;br /&gt;
|sonicboard&lt;br /&gt;
|-&lt;br /&gt;
|Corrupted Sonic&lt;br /&gt;
|soniccyber&lt;br /&gt;
|-&lt;br /&gt;
|Sonic (unknown changes)&lt;br /&gt;
|sonicT&lt;br /&gt;
|-&lt;br /&gt;
|Super Sonic&lt;br /&gt;
|supersonic&lt;br /&gt;
|-&lt;br /&gt;
|Super Sonic 2&lt;br /&gt;
|supersonic2&lt;br /&gt;
|-&lt;br /&gt;
|Cyber Super Sonic&lt;br /&gt;
|supersoniccyber&lt;br /&gt;
|-&lt;br /&gt;
|Damaged Super Sonic&lt;br /&gt;
|supersonicdamage&lt;br /&gt;
|-&lt;br /&gt;
|Cyber Tails&lt;br /&gt;
|tails&lt;br /&gt;
|-&lt;br /&gt;
|Birthday styled Tails&lt;br /&gt;
|tails_birthday&lt;br /&gt;
|-&lt;br /&gt;
|Tails&lt;br /&gt;
|tails_orig&lt;br /&gt;
|-&lt;br /&gt;
|Shadow Tails&lt;br /&gt;
|tails_shadow&lt;br /&gt;
|-&lt;br /&gt;
|Playable Tails&lt;br /&gt;
|tailsP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DLC ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!DLC Name&lt;br /&gt;
!ID&lt;br /&gt;
|-&lt;br /&gt;
|Digital Art Book&lt;br /&gt;
|artbook&lt;br /&gt;
|-&lt;br /&gt;
|Mini Digital Soundtrack&lt;br /&gt;
|soundtrack&lt;br /&gt;
|-&lt;br /&gt;
|Sonic Adventure 2 Shoes&lt;br /&gt;
|dlccrm&lt;br /&gt;
|-&lt;br /&gt;
|Digital Deluxe Edition&lt;br /&gt;
|dlcddx&lt;br /&gt;
|-&lt;br /&gt;
|Monster Hunter Collaboration Pack&lt;br /&gt;
|dlcmhr&lt;br /&gt;
|-&lt;br /&gt;
|Holiday Cheer Suit&lt;br /&gt;
|dlcxmas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&#039;&#039;Undocumented&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Frontiers&amp;diff=773</id>
		<title>Sonic Frontiers</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Frontiers&amp;diff=773"/>
		<updated>2025-01-26T15:17:49Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox game&lt;br /&gt;
| name = Sonic Frontiers&lt;br /&gt;
| developer = Sonic Team&lt;br /&gt;
| publisher = SEGA&lt;br /&gt;
| release_date = November 8, 2022&lt;br /&gt;
| engine = Hedgehog Engine 2&lt;br /&gt;
|logo=File:Sonic-frontiers.jpg|logo_caption=Sonic Frontiers Key Art}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sonic Frontiers&#039;&#039;&#039; &#039;&#039;(codenamed rangers)&#039;&#039; was released on the 8th of November, 2022.&lt;br /&gt;
&lt;br /&gt;
It uses Hedgehog Engine 2, but has some notable differences to [[Sonic Forces]], the previous game to use HE2, including differences in file structure and file formats used.&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Frontiers/Guides|Guides]]&lt;br /&gt;
&lt;br /&gt;
=== Resource References ===&lt;br /&gt;
&lt;br /&gt;
* [[Sonic Frontiers/Heightmaps|Heightmaps]]&lt;br /&gt;
* [[Sonic Frontiers/ID Mappings|ID Mappings]]&lt;br /&gt;
* [[Sonic Frontiers/StageData_Parameters|StageData Parameters]]&lt;br /&gt;
* [[Sonic Frontiers/Master_Trial_Parameters|Master Trial Parameters]]&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=File:Sonic-frontiers.jpg&amp;diff=772</id>
		<title>File:Sonic-frontiers.jpg</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=File:Sonic-frontiers.jpg&amp;diff=772"/>
		<updated>2025-01-26T15:17:08Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/AshDumpTool&amp;diff=771</id>
		<title>Tools/AshDumpTool</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/AshDumpTool&amp;diff=771"/>
		<updated>2025-01-26T15:13:03Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool|name=AshDumpTool|purpose=Converting binary formats to XML and back|developer=Ashrindy|download=https://github.com/Ashrindy/AshDumpLib/releases|website=https://github.com/Ashrindy/AshDumpLib|programming_language=C#}}&#039;&#039;&#039;AshDumpTool&#039;&#039;&#039; is a pack of tools used to convert from a non-human readable format to a more human readable format such as [[wikipedia:XML|XML]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requires [https://dotnet.microsoft.com/en-us/download/dotnet/7.0 .NET 7.0 Runtime]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Ashrindy/AshDumpLib/releases Can be found here!]&lt;br /&gt;
&lt;br /&gt;
== Supported formats ==&lt;br /&gt;
&lt;br /&gt;
* [[Resources/Particle Location|Particle Location (.effdb)]]&lt;br /&gt;
* [[Resources/Model Pointcloud|Model Pointcloud (.pcmodel)]]&lt;br /&gt;
* [[Resources/Collision Pointcloud|Collision Pointcloud (.pccol)]]&lt;br /&gt;
* [[Resources/Light Pointcloud|Light Pointcloud (.pcrt)]]&lt;br /&gt;
* [[Resources/Density Point Cloud|Density Point Cloud (.densitypointcloud)]]&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Sonic_Forces&amp;diff=770</id>
		<title>Sonic Forces</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Sonic_Forces&amp;diff=770"/>
		<updated>2025-01-26T15:12:28Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox game&lt;br /&gt;
| name = Sonic Forces&lt;br /&gt;
| developer = Sonic Team, Hardlight&lt;br /&gt;
| publisher = SEGA&lt;br /&gt;
| release_date = November 7, 2017&lt;br /&gt;
| engine = Hedgehog Engine 2&lt;br /&gt;
|logo=File:Sonic-forces.jpg|logo_caption=Sunset Heights}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sonic Forces&#039;&#039;&#039; &#039;&#039;(codenamed wars)&#039;&#039; was released on the 7th of November, 2017. &lt;br /&gt;
&lt;br /&gt;
It uses Hedgehog Engine 2, and is one of the earliest Sonic games to use it.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=File:Sonic-forces.jpg&amp;diff=769</id>
		<title>File:Sonic-forces.jpg</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=File:Sonic-forces.jpg&amp;diff=769"/>
		<updated>2025-01-26T15:11:22Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: Screenshot of Sonic Forces&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of Sonic Forces&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/DevTools&amp;diff=768</id>
		<title>Tools/DevTools</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/DevTools&amp;diff=768"/>
		<updated>2025-01-26T15:08:31Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool&lt;br /&gt;
| name = HE2 DevTools&lt;br /&gt;
| logo = File:HE2_DevTools_screenshot.jpg&lt;br /&gt;
| purpose = Debugging and live editing of resources.&lt;br /&gt;
| developer = angryzor&lt;br /&gt;
| website = https://github.com/angryzor/sonic-frontiers-devtools&lt;br /&gt;
| download = https://github.com/angryzor/sonic-frontiers-devtools/releases&lt;br /&gt;
|programming_language=C++|logo_caption=Hot reloading textures}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DevTools&#039;&#039;&#039; is a modding and debugging tool that allows you to inspect the engine&#039;s internals while ingame. You can use it to troubleshoot issues, edit resources with live feedback and edit [[Resources/ObjectWorld / GEdit|gedit]] levels.&lt;br /&gt;
&lt;br /&gt;
The tool runs on the [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]] tool for its functions.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/KnuxTools&amp;diff=767</id>
		<title>Tools/KnuxTools</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/KnuxTools&amp;diff=767"/>
		<updated>2025-01-26T15:07:23Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool|name=KnuxTools|purpose=Converting binary formats to JSON and back|developer=KnuxFan|download=https://github.com/Knuxfan24/KnuxLib/releases|programming_language=C#}}&#039;&#039;&#039;KnuxTools&#039;&#039;&#039; is a collection of converters in one single application. It&#039;s mostly used for [[Resources/Model Pointcloud|PointCloud]], [[Resources/MasterLevel|MasterLevel]] and [[Resources/SplinePath|SplinePath]].&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/Restoration_Issue_Pocketknife&amp;diff=766</id>
		<title>Tools/Restoration Issue Pocketknife</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/Restoration_Issue_Pocketknife&amp;diff=766"/>
		<updated>2025-01-26T15:06:58Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool|name=Restoration Issue Pocketknife|purpose=Converting binary formats to JSON and back|developer=angryzor|website=https://github.com/angryzor/rip|download=https://github.com/angryzor/rip/releases|programming_language=C++}}&#039;&#039;&#039;Restoration Issue Pocketknife&#039;&#039;&#039;, also known as RIP, is used to rip HE2 binary game resources from and to other formats in particular JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tool created by [https://gamebanana.com/members/729953 angryzor]: https://gamebanana.com/tools/18503&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/HedgeEdit&amp;diff=765</id>
		<title>Tools/HedgeEdit</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/HedgeEdit&amp;diff=765"/>
		<updated>2025-01-26T15:05:44Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool|name=HedgeEdit|logo=File:Hedgeedit.jpg|purpose=Editing stages, materials, set data, scripts and more.|developer=Radfordhound, Sajid|website=[https://gamebanana.com/wips/48616&amp;amp;#124; HedgeEdit on GameBanana]|logo_caption=w3a01|programming_language=C#}}&#039;&#039;&#039;HedgeEdit&#039;&#039;&#039; is a standalone level editor app in which you&#039;re able to edit the objects, terrain and more. Supports all Hedgehog Engine games up till [[Sonic Forces]].&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/modelfbx&amp;diff=764</id>
		<title>Tools/modelfbx</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/modelfbx&amp;diff=764"/>
		<updated>2025-01-26T15:01:27Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool|name=modelfbx|purpose=Converting [[Resources/Model|.models]] to fbx|developer=Darío|download=[https://github.com/DarioSamo/libgens-sonicglvl/blob/master/bin/modelfbx.exe&amp;amp;#124; modelfbx in libgens repository]}}&#039;&#039;&#039;modelfbx&#039;&#039;&#039; is a tool created by Darío to easily convert Hedgehog Engine .[[Resources/Model|model]] files to the more used format FBX.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
	<entry>
		<id>https://hemodding.wiki/index.php?title=Tools/ModelConverter&amp;diff=763</id>
		<title>Tools/ModelConverter</title>
		<link rel="alternate" type="text/html" href="https://hemodding.wiki/index.php?title=Tools/ModelConverter&amp;diff=763"/>
		<updated>2025-01-26T14:55:32Z</updated>

		<summary type="html">&lt;p&gt;Ashrindy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox tool|name=Model Converter|purpose=Converting fbx to [[Resources/Model|.models]]|developer=Skyth|website=https://github.com/blueskythlikesclouds/ModelConverter|download=https://github.com/blueskythlikesclouds/ModelConverter/releases}}&#039;&#039;&#039;ModelConverter&#039;&#039;&#039; is a tool created by Skyth for converting FBX files to .[[Resources/Model|model]] files, with support for all Hedgehog Engine games. Some games utilise the same converter mode; [[Sonic Origins|Origins]] and [[Shadow Generations]] use the [[Sonic Frontiers|Frontiers]] mode.&lt;/div&gt;</summary>
		<author><name>Ashrindy</name></author>
	</entry>
</feed>