I hate love this name. A standalone C++ QT editor for Forza vinyl groups and liveries. Does not modify the game memory in runtime. We are not responsible for any damage done to your groups/liveries, use at your own discretion.
- Import/export to Forza proprietary binary format.
- Save/load project to json files.
- Full transformations for shapes and groups.
- Custom groups, reusable in multiple projects.
- Add raster image overlay as guide layer.
- Direct shape parity with the game engine.
- 3D car preview with live livery projection; auto-loads the matching car model.
- Blazingly fast perfomance thanks to C++.
Download the latest release, launch ForzaLiveryStudio.exe. Read manual for keyboard shortcuts and tools guide.
Configure all the windows as you need them and press Window -> Save Layout. If you want to rename the default shapes, go to assets/vector/shape_names.json.
All settings as well as custom groups are stored in your QSettings, in the registry HKEY_CURRENT_USER\Software\ForzaTools\ForzaLiveryStudio.
Requirements: Qt6 via vcpkg, C++ compiler, zlib.
Run the build script:
.\tools\build.ps1See developer guide for detailed instructions.
Requirements: Qt6, zlib, CMake 3.24+, C++20 compiler.
Install dependencies:
# Arch (SteamOS)
sudo pacman -S qt6-base qt6-tools qt6-svg zlib cmake gcc ninja
# Ubuntu/Debian
sudo apt install qt6-base-dev qt6-tools-dev qt6-svg-dev zlib1g-dev cmake g++ ninja-build
# Fedora
sudo dnf install qt6-qtbase-devel qt6-qttools-devel qt6-qtsvg-devel zlib-devel cmake gcc-c++ ninja-buildConfigure and build:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build buildRun:
chmod +x ./build/ForzaLiveryStudio
./build/ForzaLiveryStudioSee developer guide for detailed build and development instructions.
The import/export for groups is fully supported, core functionality in place. Source-backed liveries can be imported, previewed in 3D on a car model. The icons are handmade, we need a proper designer, I know they are ugly but at least we wont get sued. Livery import/export may have some shape transform mutations due to alingment issues, create an issue and attach a livery if that happens, we will investigate.
| Version | Group | Livery |
|---|---|---|
| Horizon 6 | Import/Export | Import/Export |
| Motosport 23 | Import | Import |
- User Manual - keyboard shortcuts, tools, panels, and recommended pipelines.
- Developer Guide - build steps, repository layout, code map, and core entry points.
- C_group Binary Format - technical reference for the vinyl group binary payload.
- C_livery Binary Format - technical reference for the livery binary container and embedded groups.
- Header File Format - structure of the Forza Horizon header metadata file.
- TODO - planned features and improvements.
- Did you use AI? - Yes. Initially all of project base has been built in python by hands, but due to performance limitations we decided to port the project to C++. To speed up porting we used AI.
- When
[FeatureName]? - Tomorrow. - Can I get banned for this? - No.
- I want
[FeatureName], where to request? - Create an issue in this repo. - Why not Rust? - https://youtu.be/8ue3PXu3W8Q
- Fr4g3z - cool guy, helped a lot, complained a lot, format reversing.
- Mixbob - lazy bastard, tested ingame, usage feedback.
- Zloysvin - PR Manager / shape renamer.
- Pengyss - non-uniform group tranform algorithm.
- Eaterrius - big money man, provided tokens.
- Doliman100 - reverse engineering Forza file formats and documentation.
- All the people's liveries/groups I used to decode the format.