Difference between revisions of "Modding:Sonic Forces"

From The VG Resource Wiki
Jump to: navigation, search
(Created page with "==Intro== Hi! I’m gonna keep this simple, but seeing as there’s like a very small number of tutorials for anything relating to modding 3D Sonic games, I’m gonna focus on...")
 
Line 8: Line 8:
 
* [https://github.com/thesupersonic16/HedgeModManager/releases/tag/7.3-2 HedgeModManager]
 
* [https://github.com/thesupersonic16/HedgeModManager/releases/tag/7.3-2 HedgeModManager]
 
* [https://github.com/PTKickass/ForcesModInstaller PackCPK]
 
* [https://github.com/PTKickass/ForcesModInstaller PackCPK]
* [https://gist.github.com/blueskythlikesclouds/887d227301dd3c0ea3c62ab6984388cc SFPac] OR HedgeArcPack
+
* [https://gist.github.com/blueskythlikesclouds/887d227301dd3c0ea3c62ab6984388cc SFPac] OR [https://ci.appveyor.com/project/Radfordhound/hedgelib/build/artifacts HedgeArcPack]
  
==Using HedgeModManager==
+
===Using HedgeModManager===
 
HedgeModManager has its own installation instructions, so just follow those, and I’ll just continue with the next tool you need.
 
HedgeModManager has its own installation instructions, so just follow those, and I’ll just continue with the next tool you need.
  
 
===Using PackCPK===
 
===Using PackCPK===
  
PackCPK is what you’ll need to unpack the CPK files in Sonic Forces (which contain all of the game’s assets and such). After downloading PackCPK, right click on Sonic Forces in your Steam Library, and hit properties. This will open a menu. On the left, navigate to Local Files and hit the browse button at the top right. This will open the location of Sonic Forces’ files on your PC. Click into the ‘image’ folder, then ‘x64’, then ‘disk’. Inside the ‘disk’ folder, there are several CPK files. Wars_0 contains all of the essential game assets (such as enemies, characters, and ui) as well as all the stage folders for lost valley through aqua road. Wars_1 contains everything from sunset heights to the final boss. Wars_dlc01 contains all of the episode shadow files, dlc02 contains super sonic’s files, and the rest are all of the other avatar costume dlcs and whatnot. There’s also wars_patch, which contains all of the game’s gedit files and other miscellaneous files. For what we’ll be doing, you’ll want to unpack wars_0, wars_1, and wars_patch. Make sure you do these separately, and they may take a while. Keep in mind that often times, PackCPK sometimes misses files, so to be safe, you may want to run the CPKs through a second time after the first attempt.
+
PackCPK is what you’ll need to unpack the CPK files in Sonic Forces (which contain all of the game’s assets and such). After downloading PackCPK, right click on Sonic Forces in your Steam Library, and hit properties. This will open a menu. On the left, navigate to Local Files and hit the browse button at the top right. This will open the location of Sonic Forces’ files on your PC. Click into the ‘image’ folder, then ‘x64’, then ‘disk’. Inside the ‘disk’ folder, there are several CPK files. Wars_0 contains all of the essential game assets (such as enemies, characters, and UI) as well as all the stage folders for Lost Valley through Aqua Road. Wars_1 contains everything from sunset heights to the final boss. Wars_dlc01 contains all of the episode shadow files, dlc02 contains Super Sonic’s files, and the rest are all of the other avatar costume dlcs and whatnot. There’s also wars_patch, which contains all of the game’s gedit files and other miscellaneous files. For what we’ll be doing, you’ll want to unpack wars_0, wars_1, and wars_patch. Make sure you do these separately, and they may take a while. Keep in mind that often times, PackCPK sometimes misses files, so to be safe, you may want to run the CPKs through a second time after the first attempt.
  
 
===Creating a mod folder===
 
===Creating a mod folder===
Line 23: Line 23:
 
===Putting your stage files in your mod folder===
 
===Putting your stage files in your mod folder===
  
Next, navigate back to your unpacked CPKs. We’ll be starting with Lost Valley. Go into your wars_0 folder, and find the folder labeled ‘w5a01’. This actually brings me to something important: You may be confused by the naming scheme of stages, so here’s something to help you out: ‘w’ refers to the ‘world’ number, where w1 is death egg, w2 is chemical plant, w3 is city, w4 is mystic jungle, w5 is green hill, w6 is metropolis, and w7 is eggman empire fortress. The letter and the 2 numbers after the world number represent the type of act and the character. ‘A’ means it is a stage from the main story. ‘D’ means it is a dlc stage, ‘B’ means it’s a boss stage, and ‘X’ or ‘S’ means it’s an extra or secret stage. For stages from the main story, the number 01 means it is a Sonic stage, 02 is an avatar stage, 03 is a tag team stage, and 04 is a classic stage. For boss stages or secret/extra stages, the number refers to the act or stage number. (For example, w7b02 is the final boss, since it’s the second boss in that world).
+
Next, navigate back to your unpacked CPKs. We’ll be starting with Lost Valley. Go into your wars_0 folder, and find the folder labeled ‘w5a01’. This actually brings me to something important: You may be confused by the naming scheme of stages, so here’s something to help you out: ‘w’ refers to the ‘world’ number, where w1 is Death Egg, w2 is Chemical Plant, w3 is City, w4 is Mystic Jungle, w5 is Green Hill, w6 is Metropolis, and w7 is Eggman Empire Fortress. The letter and the 2 numbers after the world number represent the type of act and the character. ‘A’ means it is a stage from the main story. ‘D’ means it is a dlc stage, ‘B’ means it’s a boss stage, and ‘X’ or ‘S’ means it’s an extra or secret stage. For stages from the main story, the number 01 means it is a Sonic stage, 02 is an avatar stage, 03 is a tag team stage, and 04 is a Classic stage. For boss stages or secret/extra stages, the number refers to the act or stage number. (For example, w7b02 is the final boss, since it’s the second boss in that world).
  
 
Anyways, back to what i was saying before: click into the w5a01 folder. You’ll see a bunch of pacs. You won’t need to do much with these for now, but just know that these files are opened using ‘SFPac’. Back out of the w5a01 folder, and copy it into the ‘wars_patch’ folder in your mod. While still in your mod’s wars_patch folder, you’ll want to create a folder named ‘gedit’. Next, navigate back to the folder containing the game’s CPKs, and go into *it’s* wars_patch folder (NOT the one in your mod that you just copied files into!). Once inside, you’ll see a ‘gedit’ folder. Go inside it, and copy ‘w5a01_gedit.pac’ into your mod’s gedit folder. Now, you’re ready to start using HedgeEdit. (If you haven’t already downloaded it, do that now). Next, I’m going to teach you how to open stages in HedgeEdit. Simply go into your mod’s wars_patch folder, and copy that directory. Open hedgeedit, click ‘open’ and paste the directory where it says ‘data directory’. Then, enter the ID of the stage you’re looking to edit in the STAGE ID box (w5a01 in our case). If the game is not already set to Sonic Forces, be sure to set it as such.  
 
Anyways, back to what i was saying before: click into the w5a01 folder. You’ll see a bunch of pacs. You won’t need to do much with these for now, but just know that these files are opened using ‘SFPac’. Back out of the w5a01 folder, and copy it into the ‘wars_patch’ folder in your mod. While still in your mod’s wars_patch folder, you’ll want to create a folder named ‘gedit’. Next, navigate back to the folder containing the game’s CPKs, and go into *it’s* wars_patch folder (NOT the one in your mod that you just copied files into!). Once inside, you’ll see a ‘gedit’ folder. Go inside it, and copy ‘w5a01_gedit.pac’ into your mod’s gedit folder. Now, you’re ready to start using HedgeEdit. (If you haven’t already downloaded it, do that now). Next, I’m going to teach you how to open stages in HedgeEdit. Simply go into your mod’s wars_patch folder, and copy that directory. Open hedgeedit, click ‘open’ and paste the directory where it says ‘data directory’. Then, enter the ID of the stage you’re looking to edit in the STAGE ID box (w5a01 in our case). If the game is not already set to Sonic Forces, be sure to set it as such.  
Line 32: Line 32:
 
'''SFPac''': When you need to open a .pac file, simply drag the .pac (NOT the .00s) into SFPac. This will unpack the contents of the pac into a folder of the same name (unless your antivirus registers it as a false positive). To repack, just drag the folder back into SFPac. Be aware that there is a size limit, although you’re not going to hit it unless you’re literally spamming files.
 
'''SFPac''': When you need to open a .pac file, simply drag the .pac (NOT the .00s) into SFPac. This will unpack the contents of the pac into a folder of the same name (unless your antivirus registers it as a false positive). To repack, just drag the folder back into SFPac. Be aware that there is a size limit, although you’re not going to hit it unless you’re literally spamming files.
  
'''HedgeArcPac''': Basically the same thing, but… it has its own instructions so just follow those
+
'''HedgeArcPac''': Basically the same thing, but… it has its own instructions so just follow those.
  
 
==Bugs & Other Issues==
 
==Bugs & Other Issues==
Line 41: Line 41:
  
 
'''Ring bug''':
 
'''Ring bug''':
When placing or moving Rings using the arrows, their vertical height will be offset by 6 units (this is not reflected visually). If you want to move rings without encountering this issue, you can type the position in manually. This issue has been patched for ObjRing and ObjRedRing as of V3. Other objects that possess this issue will be updated in the future.
+
When placing or moving Rings using the arrows, their vertical height will be offset by 6 units (this is not reflected visually). If you want to move rings without encountering this issue, you can type the position in manually. ''This issue has been patched for ObjRing and ObjRedRing as of V3. Other objects that possess this issue will be updated in the future.''
  
 
'''Object selection bug''':
 
'''Object selection bug''':
Line 50: Line 50:
  
 
'''Rendering bugs''':
 
'''Rendering bugs''':
Fix in progress.
+
''Fix in progress.''
  
* Collapsing Tabs:
+
'''Collapsing Tabs''':
 
Whenever you place an object, the scene view tabs will collapse. Whenever you save, the scene view and assets dialogue will close. This gets very annoying very fast, but uh… Too bad, F in the chat.
 
Whenever you place an object, the scene view tabs will collapse. Whenever you save, the scene view and assets dialogue will close. This gets very annoying very fast, but uh… Too bad, F in the chat.
  
'''Stage-specific issues''':
+
'''Movement arrows disappearing''':
 
 
* Adding objects into Sunset Heights will end up causing camera IDs to conflict (as they have no group IDs of their own). To circumvent this, just add your own group IDs.
 
 
 
* Jumpboard Event Triggers in Metropolitan Highway will always corrupt when loaded, you’ll have to manually replace the object IDs and event types within them by editing the object. Otherwise, this will lead to a crash.
 
 
 
* Final Judgement’s objects are rotated vertically, so the rotation bug fucks all of that up. Final judgement is currently uneditable until HedgeEdit 2 is completed in 10 years.
 
 
 
* Jumpboards break if you try to set their event triggers in some stages:
 
I don't know why. You can’t fix them to my knowledge so… sorry again. Just use switchvolumes.
 
 
 
* Movement arrows disappearing:
 
 
Movement arrows disappear when you select multiple objects.
 
Movement arrows disappear when you select multiple objects.
  
* Actstgmission issues:
+
'''Actstgmission issues''':
 
If using an edited actstgmission, keep in mind that the dynamic & static sectors will override hedgeedit’s defaults, so you’ll want to remove or edit your actstgmission to include all sectors.
 
If using an edited actstgmission, keep in mind that the dynamic & static sectors will override hedgeedit’s defaults, so you’ll want to remove or edit your actstgmission to include all sectors.
  
* RigidBody parameters:
+
'''RigidBody parameters''':
 
The isEventDriven parameter for Rigid Bodies are backwards. (True = False, False = True).
 
The isEventDriven parameter for Rigid Bodies are backwards. (True = False, False = True).
  
* Crash on Load:
+
'''Crash on Load''':
 
Sometimes HedgeEdit will crash when loading a stage, to prevent this, just move the camera around like a maniac until it finishes loading.
 
Sometimes HedgeEdit will crash when loading a stage, to prevent this, just move the camera around like a maniac until it finishes loading.
  
* There’s no undo button:
+
'''There’s no undo button''':
 
Yep.
 
Yep.
  
* NormalFloor movement types often break:
+
'''NormalFloor movement types often break''':
 
In some cases, NormalFloors use the incorrect movement type no matter what you set them to.
 
In some cases, NormalFloors use the incorrect movement type no matter what you set them to.
  
* Green Hill Mat Issues:
+
'''Green Hill Mat Issues''':
 
Often times, placing grass platforms in Green Hill stages will make the grass appear red and the platform itself white. You *should* be able to fix this by replacing the materials with the originals but I’m not 100% sure.
 
Often times, placing grass platforms in Green Hill stages will make the grass appear red and the platform itself white. You *should* be able to fix this by replacing the materials with the originals but I’m not 100% sure.
  
* Not really a bug, but:
+
'''Virton object incompatibilities''':
 
This isn’t really a bug but I suppose it fits here. The virtron objects from Episode Shadow only work in Guardian Rock, Sunset Heights, or Aqua Road.
 
This isn’t really a bug but I suppose it fits here. The virtron objects from Episode Shadow only work in Guardian Rock, Sunset Heights, or Aqua Road.
  
* Objects carrying over:
+
'''Objects carrying over''':
 
Hitting new or opening a new gedit while another one is active won’t remove the objects from the previous gedit. Make sure you restart HedgeEdit before changing to a different stage.
 
Hitting new or opening a new gedit while another one is active won’t remove the objects from the previous gedit. Make sure you restart HedgeEdit before changing to a different stage.
  
* Casino Forest Objects do not work with Modern Sonic or the Avatar:
+
'''Casino Forest Objects do not work with Modern Sonic or the Avatar''':
 
This one’s probably obvious, but the game crashes if you try to use casino forest objects with modern sonic or the avatar.
 
This one’s probably obvious, but the game crashes if you try to use casino forest objects with modern sonic or the avatar.
  
* Particle Limit:
+
'''Particle Limit''':
 
Sonic Forces has a really small particle limit, so if you hit it, stuff like homing attack and boost particles are gonna start disappearing. This also disables any SFX tied to these particles.
 
Sonic Forces has a really small particle limit, so if you hit it, stuff like homing attack and boost particles are gonna start disappearing. This also disables any SFX tied to these particles.
 +
 +
'''Stage-specific issues''':
 +
 +
* Adding objects into Sunset Heights will end up causing camera IDs to conflict (as they have no group IDs of their own). To circumvent this, just add your own group IDs.
 +
 +
* Jumpboard Event Triggers in Metropolitan Highway will always corrupt when loaded, you’ll have to manually replace the object IDs and event types within them by editing the object. Otherwise, this will lead to a crash.
 +
 +
* Final Judgement’s objects are rotated vertically, so the rotation bug fucks all of that up. Final judgement is currently uneditable until HedgeEdit 2 is completed in 10 years.
 +
 +
* Jumpboards break if you try to set their event triggers in some stages. I don't know why. You can’t fix them to my knowledge so… sorry again. Just use switchvolumes.
 +
 +
==Set Layers==
 +
After you’ve opened and loaded the stage you’re looking to edit in HedgeEdit, hit ‘edit’ at the top and click ‘scene view’. You’ll see a box open up on the right with two groups: ‘Set Layers’ and ‘Terrain Instances’. Terrain instances can be ignored, as it serves no real function currently. What you’ll want to focus on here is the ‘Set Layers’ tab. In each stage, different groups of objects are loaded into their own Set Layers. Whenever you open a stage in HedgeEdit, you’ll need to select one of these layers by clicking on it in order to place objects. The currently selected layer will be shown in parenthesis at the top of the window next to the program’s name. To avoid disorganization, you’ll want to pay attention to whatever set layers you use. If you want to rename or delete a set layer, you can right click a layer and pick an option. Please note that deleting or renaming a set layer does not actually remove or rename it inside your gedit file, so if you need to do that, you’ll want to close HedgeEdit after making that change, open the gedit file in your mod using SFPac, and remove anything you don’t need from there, then repack it by running the folder through SFPac again.
 +
 +
==Stage Objects & Enemies==
 +
Now that you understand how to open stages and set layers, let’s get to the basics: Object Placement. I’m not gonna be super thorough with this, but I’ll be going over anything that might be confusing in the second half of this video.
 +
 +
Let me start by letting you know that, if there’s a specific object from another stage you want to use, you’re gonna want to copy it’s assets (which may include files from both the object pac AND terrain common) into your mod’s object pac or terrain common. Though, as long as it’s the same in-game location (such as Green Hill) it usually should work without having to add files.
 +
 +
Quick note: You can move the camera in HedgeEdit by holding right click and moving the mouse. You can also press the arrow keys or wasd keys to move, and hold shift to move faster.
 +
 +
Most object descriptions are at the bottom of the object template xmls, unfortunately HedgeEdit doesn’t display object descriptions in-editor and I really don’t want to spend thirty minutes reading all of the object descriptions, so… sorry. You can open up the templates in notepad.
 +
 +
Onto enemies. I’m only going to be focusing on the ones that aren’t self-explanatory.
 +
 +
'''Valkeen''' (must be spawned using a trigger):
 +
 +
{| class="wikitable"
 +
|-
 +
! Name
 +
! Function
 +
|-
 +
| PathUID
 +
| Duh
 +
|-
 +
| AttackDelay
 +
| The amount of time before the badnik begins dropping bombs.
 +
|-
 +
| Movespeed
 +
| The speed of the badnik when in flight.
 +
|-
 +
| EscapeMoveSpeed
 +
| The speed of the badnik when it is disabled and flying away.
 +
|-
 +
| Popspeed
 +
| The speed of the badnik before it reaches its pop position.
 +
|-
 +
| PassingAddSpeed
 +
| How much to increase this badniks flight speed as it passes by you.
 +
|-
 +
| DropTime
 +
| The amount of time the badnik is attacking you for.
 +
|-
 +
| CaptureDistance
 +
| ''Unknown.''
 +
|-
 +
| CaptureDistancePassing
 +
| ''I don’t care.'' (In all serious it might have to do with how it follows the path.)
 +
|-
 +
| TurnRoll
 +
| How much the object rotates when steering.
 +
|-
 +
| PopPosition
 +
| The position offset where the badnik will spawn in relation to its origin point (ignoring the path). It will begin firing after reaching this position, and despawn once it reaches the path origin.
 +
|-
 +
| PathOffsetPosition
 +
| Duh
 +
|-
 +
| AttackType
 +
| Normal = It attacks always, Passing = Attacks as it passes you, Reversal = It turns back the other way before dropping bombs.
 +
|-
 +
| CaptureType
 +
| ''Unknown.''
 +
|-
 +
| HasGravity
 +
| Duh (but I don't know why you'd ever want to use it.)
 +
|-
 +
| In3D
 +
| Duh
 +
|-
 +
| DoesRespawn
 +
| Duh
 +
|-
 +
| DoesAttack
 +
| Duh
 +
|-
 +
| MoveTime
 +
|How long the object moves for
 +
|}

Revision as of 21:19, 4 April 2021

Intro

Hi! I’m gonna keep this simple, but seeing as there’s like a very small number of tutorials for anything relating to modding 3D Sonic games, I’m gonna focus on the Sonic Forces corner of HedgeEdit, a level-editing tool made by Radfordhound. Keep in mind that this only covers editing object layouts, since HedgeEdit can’t edit terrain or anything like that. If there’s enough demand, I’ll make more tutorials. Also, some of the object templates in the base download are either missing or broken, so I’ll also be including a download to some updated templates I made in the HedgeEdit DL link (These may be updated from time to time, so check back here every so often. I’ll have a comment detailing the last update date).

To start level modding in Sonic Forces, you’ll need a couple of other tools.

Tools:

Using HedgeModManager

HedgeModManager has its own installation instructions, so just follow those, and I’ll just continue with the next tool you need.

Using PackCPK

PackCPK is what you’ll need to unpack the CPK files in Sonic Forces (which contain all of the game’s assets and such). After downloading PackCPK, right click on Sonic Forces in your Steam Library, and hit properties. This will open a menu. On the left, navigate to Local Files and hit the browse button at the top right. This will open the location of Sonic Forces’ files on your PC. Click into the ‘image’ folder, then ‘x64’, then ‘disk’. Inside the ‘disk’ folder, there are several CPK files. Wars_0 contains all of the essential game assets (such as enemies, characters, and UI) as well as all the stage folders for Lost Valley through Aqua Road. Wars_1 contains everything from sunset heights to the final boss. Wars_dlc01 contains all of the episode shadow files, dlc02 contains Super Sonic’s files, and the rest are all of the other avatar costume dlcs and whatnot. There’s also wars_patch, which contains all of the game’s gedit files and other miscellaneous files. For what we’ll be doing, you’ll want to unpack wars_0, wars_1, and wars_patch. Make sure you do these separately, and they may take a while. Keep in mind that often times, PackCPK sometimes misses files, so to be safe, you may want to run the CPKs through a second time after the first attempt.

Creating a mod folder

After the aforementioned CPKs are unpacked, you’re gonna want to open HedgeModManager, and hit ‘Add Mod’ at the bottom left. This will open a dialogue box with several options. You’ll want to hit the last choice (making one), and then hit ‘ok’. This will open *another* dialogue box. For now, you can ignore everything above the ‘description’ tab. For everything in the description tab, you can fill out basically whatever you want, it’s pretty self-explanatory. Once you’re done, you can hit ‘OK’. This will open up a new folder for your mod. Click into the ‘disk’ folder in the new window, and create a folder named ‘wars_patch’ with an underscore between wars and patch.

Putting your stage files in your mod folder

Next, navigate back to your unpacked CPKs. We’ll be starting with Lost Valley. Go into your wars_0 folder, and find the folder labeled ‘w5a01’. This actually brings me to something important: You may be confused by the naming scheme of stages, so here’s something to help you out: ‘w’ refers to the ‘world’ number, where w1 is Death Egg, w2 is Chemical Plant, w3 is City, w4 is Mystic Jungle, w5 is Green Hill, w6 is Metropolis, and w7 is Eggman Empire Fortress. The letter and the 2 numbers after the world number represent the type of act and the character. ‘A’ means it is a stage from the main story. ‘D’ means it is a dlc stage, ‘B’ means it’s a boss stage, and ‘X’ or ‘S’ means it’s an extra or secret stage. For stages from the main story, the number 01 means it is a Sonic stage, 02 is an avatar stage, 03 is a tag team stage, and 04 is a Classic stage. For boss stages or secret/extra stages, the number refers to the act or stage number. (For example, w7b02 is the final boss, since it’s the second boss in that world).

Anyways, back to what i was saying before: click into the w5a01 folder. You’ll see a bunch of pacs. You won’t need to do much with these for now, but just know that these files are opened using ‘SFPac’. Back out of the w5a01 folder, and copy it into the ‘wars_patch’ folder in your mod. While still in your mod’s wars_patch folder, you’ll want to create a folder named ‘gedit’. Next, navigate back to the folder containing the game’s CPKs, and go into *it’s* wars_patch folder (NOT the one in your mod that you just copied files into!). Once inside, you’ll see a ‘gedit’ folder. Go inside it, and copy ‘w5a01_gedit.pac’ into your mod’s gedit folder. Now, you’re ready to start using HedgeEdit. (If you haven’t already downloaded it, do that now). Next, I’m going to teach you how to open stages in HedgeEdit. Simply go into your mod’s wars_patch folder, and copy that directory. Open hedgeedit, click ‘open’ and paste the directory where it says ‘data directory’. Then, enter the ID of the stage you’re looking to edit in the STAGE ID box (w5a01 in our case). If the game is not already set to Sonic Forces, be sure to set it as such.

One more quick thing: Be aware that HedgeEdit copies anything you load or save to it’s own cache folder (to make loading faster) so if you’re running low on space, you might want to check there every now and then to clean out anything you don’t need.

Using SFPac/HedgeArcPack

SFPac: When you need to open a .pac file, simply drag the .pac (NOT the .00s) into SFPac. This will unpack the contents of the pac into a folder of the same name (unless your antivirus registers it as a false positive). To repack, just drag the folder back into SFPac. Be aware that there is a size limit, although you’re not going to hit it unless you’re literally spamming files.

HedgeArcPac: Basically the same thing, but… it has its own instructions so just follow those.

Bugs & Other Issues

DON’T SKIP THIS ONE. I figured I’d put this here since it’s a pretty important one. Since the currently available version of HedgeEdit is unfinished (and basically obsolete as a rewrite is in the works), there are a lot of bugs. Some of these, you’ll be able to get around, but others you’ll have to deal with.

Rotation Bug: The rotation bug is a really fucking horrible bug that makes it so you can’t accurately rotate under 0 degrees (negative values) or over 89.4 degrees. This also affects object parenting, which I will go over later. Keep in mind that once you deselect or save an object, it’s x and z rotation values will swap for no reason. There is no real way around this one, sadly.

Ring bug: When placing or moving Rings using the arrows, their vertical height will be offset by 6 units (this is not reflected visually). If you want to move rings without encountering this issue, you can type the position in manually. This issue has been patched for ObjRing and ObjRedRing as of V3. Other objects that possess this issue will be updated in the future.

Object selection bug: I have no idea what causes this, but in a modified Lost Valley & Imperial Tower, you can’t select objects that don’t have a model set (basically, anything that uses the Default checkerboard cube. You’ll have to go into the scene view to fish the object out.

Not having a gedit file in the mod folder... ...with a name that matches the one you’re editing before you save will cause a crash when attempting to save.

Rendering bugs: Fix in progress.

Collapsing Tabs: Whenever you place an object, the scene view tabs will collapse. Whenever you save, the scene view and assets dialogue will close. This gets very annoying very fast, but uh… Too bad, F in the chat.

Movement arrows disappearing: Movement arrows disappear when you select multiple objects.

Actstgmission issues: If using an edited actstgmission, keep in mind that the dynamic & static sectors will override hedgeedit’s defaults, so you’ll want to remove or edit your actstgmission to include all sectors.

RigidBody parameters: The isEventDriven parameter for Rigid Bodies are backwards. (True = False, False = True).

Crash on Load: Sometimes HedgeEdit will crash when loading a stage, to prevent this, just move the camera around like a maniac until it finishes loading.

There’s no undo button: Yep.

NormalFloor movement types often break: In some cases, NormalFloors use the incorrect movement type no matter what you set them to.

Green Hill Mat Issues: Often times, placing grass platforms in Green Hill stages will make the grass appear red and the platform itself white. You *should* be able to fix this by replacing the materials with the originals but I’m not 100% sure.

Virton object incompatibilities: This isn’t really a bug but I suppose it fits here. The virtron objects from Episode Shadow only work in Guardian Rock, Sunset Heights, or Aqua Road.

Objects carrying over: Hitting new or opening a new gedit while another one is active won’t remove the objects from the previous gedit. Make sure you restart HedgeEdit before changing to a different stage.

Casino Forest Objects do not work with Modern Sonic or the Avatar: This one’s probably obvious, but the game crashes if you try to use casino forest objects with modern sonic or the avatar.

Particle Limit: Sonic Forces has a really small particle limit, so if you hit it, stuff like homing attack and boost particles are gonna start disappearing. This also disables any SFX tied to these particles.

Stage-specific issues:

  • Adding objects into Sunset Heights will end up causing camera IDs to conflict (as they have no group IDs of their own). To circumvent this, just add your own group IDs.
  • Jumpboard Event Triggers in Metropolitan Highway will always corrupt when loaded, you’ll have to manually replace the object IDs and event types within them by editing the object. Otherwise, this will lead to a crash.
  • Final Judgement’s objects are rotated vertically, so the rotation bug fucks all of that up. Final judgement is currently uneditable until HedgeEdit 2 is completed in 10 years.
  • Jumpboards break if you try to set their event triggers in some stages. I don't know why. You can’t fix them to my knowledge so… sorry again. Just use switchvolumes.

Set Layers

After you’ve opened and loaded the stage you’re looking to edit in HedgeEdit, hit ‘edit’ at the top and click ‘scene view’. You’ll see a box open up on the right with two groups: ‘Set Layers’ and ‘Terrain Instances’. Terrain instances can be ignored, as it serves no real function currently. What you’ll want to focus on here is the ‘Set Layers’ tab. In each stage, different groups of objects are loaded into their own Set Layers. Whenever you open a stage in HedgeEdit, you’ll need to select one of these layers by clicking on it in order to place objects. The currently selected layer will be shown in parenthesis at the top of the window next to the program’s name. To avoid disorganization, you’ll want to pay attention to whatever set layers you use. If you want to rename or delete a set layer, you can right click a layer and pick an option. Please note that deleting or renaming a set layer does not actually remove or rename it inside your gedit file, so if you need to do that, you’ll want to close HedgeEdit after making that change, open the gedit file in your mod using SFPac, and remove anything you don’t need from there, then repack it by running the folder through SFPac again.

Stage Objects & Enemies

Now that you understand how to open stages and set layers, let’s get to the basics: Object Placement. I’m not gonna be super thorough with this, but I’ll be going over anything that might be confusing in the second half of this video.

Let me start by letting you know that, if there’s a specific object from another stage you want to use, you’re gonna want to copy it’s assets (which may include files from both the object pac AND terrain common) into your mod’s object pac or terrain common. Though, as long as it’s the same in-game location (such as Green Hill) it usually should work without having to add files.

Quick note: You can move the camera in HedgeEdit by holding right click and moving the mouse. You can also press the arrow keys or wasd keys to move, and hold shift to move faster.

Most object descriptions are at the bottom of the object template xmls, unfortunately HedgeEdit doesn’t display object descriptions in-editor and I really don’t want to spend thirty minutes reading all of the object descriptions, so… sorry. You can open up the templates in notepad.

Onto enemies. I’m only going to be focusing on the ones that aren’t self-explanatory.

Valkeen (must be spawned using a trigger):

Name Function
PathUID Duh
AttackDelay The amount of time before the badnik begins dropping bombs.
Movespeed The speed of the badnik when in flight.
EscapeMoveSpeed The speed of the badnik when it is disabled and flying away.
Popspeed The speed of the badnik before it reaches its pop position.
PassingAddSpeed How much to increase this badniks flight speed as it passes by you.
DropTime The amount of time the badnik is attacking you for.
CaptureDistance Unknown.
CaptureDistancePassing I don’t care. (In all serious it might have to do with how it follows the path.)
TurnRoll How much the object rotates when steering.
PopPosition The position offset where the badnik will spawn in relation to its origin point (ignoring the path). It will begin firing after reaching this position, and despawn once it reaches the path origin.
PathOffsetPosition Duh
AttackType Normal = It attacks always, Passing = Attacks as it passes you, Reversal = It turns back the other way before dropping bombs.
CaptureType Unknown.
HasGravity Duh (but I don't know why you'd ever want to use it.)
In3D Duh
DoesRespawn Duh
DoesAttack Duh
MoveTime How long the object moves for