Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

174 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forza Livery Studio

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. Preferred communication is via Discord Channel, but you can leave the issue here as well.

Preview

Design vinyl groups in 2D, then inspect the finished livery on the car in a live 3D preview.

Forza Livery Studio main workspace

Forza Livery Studio editor preview Forza Livery Studio livery preview

Forza Livery Studio design tools Forza Livery Studio car preview

Features

  • 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 or SVG image overlays as guide layers.
  • 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++.

Usage

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.

Building

Windows

Requirements: Qt6 (including Qt SVG) via vcpkg, C++ compiler, zlib.

Run the build script:

.\tools\build.ps1

See developer guide for detailed instructions.

Linux (Arch)

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-build

Configure and build:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Run:

chmod +x ./build/ForzaLiveryStudio
./build/ForzaLiveryStudio

See developer guide for detailed build and development instructions.

Status

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
Horizon 5 Import Import
Motosport 23 Import Import

Documentation

Q/A

  • 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? - in the discord channel "suggestions"
  • Why not Rust? - https://youtu.be/8ue3PXu3W8Q

Credits

  • 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.

About

The best and only vinyl editor for Forza game series

Resources

Stars

23 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages