Skip to content

angryzor/sonic-frontiers-devtools

Repository files navigation

Sonic Frontiers DevTools

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.

The level editor

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:

The level editor Debug comments in the level editor

As well as debug information left in the game's binary:

Rendering of debug visuals

DevTools is able to manipulate datastructures and resources inside the game's memory through reflection:

RFL editing

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:

Resource browser

DevTools can edit NeedleFXSceneData graphics parameters in realtime, giving you instant feedback when modding postprocessing and lighting parameters:

NeedleFxSceneData editing

DevTools can edit materials and scene parameters in realtime:

Material and scene param editing

DevTools can edit SurfRide (SWIF) projects in realtime:

Material and scene param editing

DevTools provides inspectors for a variety of game systems, such as the memory allocation system, the rendering engine, GraphicsContext and GameUpdater:

The memory inspector The rendering engine inspector The GameUpdater inspector