Welcome
This is an in-engine toolkit that aspires to eventually become a full featured game editor. This tool is currently in rapid development. Check back soon for more features.
Download
Latest Release
Fetching latest release...
About
This is an in-engine modding toolkit for the SEGA game Sonic Frontiers. Releases can be found on GitHub or on the project's GameBanana page. A HMM update server is also available.
Setting up the development environment
Using Visual Studio 2022's CMake integration
You will need to have the following prerequisites installed:
- Visual Studio 2022
Check out the project and make sure to also check out its submodules:
git clone --recurse-submodules https://github.com/angryzor/sonic-frontiers-devtools.git
Simply open the project folder in Visual Studio 2022 (File > Open > CMake...) and it should automatically detect the CMakeLists.txt file.
The following presets are available:
- x64 Debug: Debug build.
- x64 Debug ImGui Demo: Debug build with ImGui demo window enabled (for editing themes etc.).
- x64 Release: Release build.
- x64 RelWithDebInfo: Release build with debug information.
Using CMake with the Visual Studio 2022 generator
You will need to have the following prerequisites installed:
- Visual Studio 2022
- CMake 3.28 or higher
Check out the project and make sure to also check out its submodules:
git clone --recurse-submodules https://github.com/angryzor/sonic-frontiers-devtools.git
Now let CMake do its thing:
cmake -B build
If you have Sonic Frontiers installed in a non-standard location, you can specify that location with the DEVTOOLS_GAME_FOLDER
variable:
cmake -B build -DDEVTOOLS_GAME_FOLDER="C:\ShadowFrontiers"
Once CMake is finished, navigate to the build directory and open devtools.sln
with VS2022. You should have a fully working environment available.
Building the INSTALL project will install the mod into HedgeModManager's Mods
directory.
Screenshots
DevTools has a builtin level editor complete with rendering of debug visualizations such as volumes and colliders:
As well as debug information left in the game's binary:
DevTools is able to manipulate datastructures and resources inside the game's memory through reflection:
DevTools has a resource browser where you can see the game's currently loaded resources, edit them and hot reload them while the game is running:
DevTools can edit NeedleFXSceneData graphics parameters in realtime, giving you instant feedback when modding postprocessing and lighting parameters:
DevTools provides inspectors for a variety of game systems, such as the memory allocation system:
Roadmap
This section outlines the future developments and features planned for Sonic Frontiers DevTools.
- Inspectors for all GOComponents. See what's going on inside your game objects.
- Lua console - Interactively test your Lua scripts.
- DvScene editor - build your own cinematics.
- UI editor - Edit SWIF UIs in-engine. Test your new UI designs and export them to a SWIF project to be used in your mod.
Controls
This section provides a list of important hotkeys and controls for using Sonic Frontiers DevTools effectively.
- F8: Bring up the devtools
- F7: While devtools are open, toggle passthrough of mouse events to the game
- F6: Toggle debug camera (hover the toolbar toggle to see the controls)
- F3: Object pause
- F4: Debug pause
- F5: Step frame-by-frame
- Holding ALT while left clicking will bring up a selection menu with all the objects under your cursor instead of selecting directly, for more fine grained selection.
- In level editor mode:
- Escape: deselect object
- Delete: remove object
- Shift+Click: place object
- Caps Lock: toggle place mode
- While a gizmo is active:
- G: Move
- R: Rotate
- S: Scale
- Alt+Space: Toggle local/world coordinate system
- X/Y/Z: Restrict transformations along X/Y/Z axis
- Shift+X/Y/Z: Restrict transformation along everything but X/Y/Z axis
Issues
This section lists known issues and troubleshooting tips for using Sonic Frontiers DevTools.
- There is something wrong with the mouse hook. It only starts blocking mouse events once you alt-tab, I will have to take a good look at it in the future. So, if something is wrong with your mouse, press F7 a few times until it goes away.