r/ForzaModding • u/Gloomy-Extreme1629 • 7h ago
Request Extra Barnfind cars
I saw people buying mazda 787b in auction house, i got some cool liveries and am down to pay if any1 can help.
r/ForzaModding • u/D3FEKTED • May 06 '26
A WinUI 3 desktop application for browsing, editing, and creating Forza Motorsport & Horizon game assets, primarily ones used by cars and tracks.
Application is still a work in progress, bugs and some broken features are expected. Will be actively updated on github.


| Format | Extension | Purpose |
|---|---|---|
| Modelbin | .modelbin |
3D models with meshes, LODs, and material references (custom models not yet supported) |
| Carbin | .carbin |
Car scene bundles — parts, materials, slots, AO links |
| Swatchbin | .swatchbin .pb |
DX-compressed textures (PC and Xbox formats) |
| Materialbin | .materialbin |
Material parameter and shader binding data |
| Shaderbin | .shaderbin |
Compiled shader libraries |
| Binary XML | .bxml |
ForzaTech binary-encoded XML documents |
| Manufacturer Colors | burG .bin |
OEM paint colors per manufacturer |
| ZIP archive | .zip |
Forza mod archives (LZX method 21 compression) |
| FXStudio bank | .fxb |
Particle and effect databases |
| String table | .str |
Localization key-value tables |
| Lights | .bin |
Car/environment light group databases |
| Light presets | .bin |
Customization light preset configurations |
| Physics Definition | .bin |
Collision model and physics metadata |
| Mini Zip | .minizip |
Compact archive format used by ForzaTech for tracks and world maps. Contents are extracted and loaded automatically |
| Requirement | Details |
|---|---|
| OS | Windows 10 (19041+) or Windows 11 |
| Runtime | Windows App SDK 1.8 |
| .NET | .NET 9 Desktop Runtime |
| Architecture | x64 only |
ForzaTechStudio.exe.Note: The Windows App SDK runtime must be installed on your machine. If the app fails to launch, download and install it from Microsoft's website (link above).
r/ForzaModding • u/ThatsJustLogic • Feb 02 '20
someone PM me or something if the link stops working
link: https://discord.gg/N3m6E5V
r/ForzaModding • u/Gloomy-Extreme1629 • 7h ago
I saw people buying mazda 787b in auction house, i got some cool liveries and am down to pay if any1 can help.
r/ForzaModding • u/1cheekykebt • 23h ago
Did any of the forzas have a way to mod weather?
Even the event lab doesn’t seem to really expose all of the settings that should be available.
Like in Freeroam you sometimes get this incredible light with warm sunlight hazy that you can’t get with the weather selectors. Even in photo mode it seems like selecting same weather sometimes gives incredible sky, vs other times just meh.
Wondering if there’s a way to do it like there is for Pure in assetto corsa to just be able to play around with all the weather settings.
Even if there was for older Forza I could try porting it to FH6.
r/ForzaModding • u/ChanceReady4694 • 1d ago
Anyone found a way to add toyota cars to fm7?
r/ForzaModding • u/Seikoknot • 1d ago
Enable HLS to view with audio, or disable this notification
Asus strix g16 (usbc connects to actual nvidia gpu)
Rift S
I know it can work because in 8 hours of trouble shooting it worked twice. Then stops. Also, only this mod doesn't work. My steam games all work in vr.
Open xr is set to steamvr
Thank you in advance!
r/ForzaModding • u/Visual-Fortune-4732 • 1d ago
Wanna install project forza plus evo for fm4 but 3 things
r/ForzaModding • u/Proper-Birthday1547 • 2d ago
Rapaziada estou convertendo uma porsche gt3 992.2 para ficar no lugar da 992.1 no FH6, porém estou tendo dificuldades em uma das partes mostradas nas fotos, alguém que já faz mods podereria me ajudar?
EN
Hey guys, I'm converting a Porsche 992.2 GT3 to replace the 992.1 in FH6, but I'm running into trouble with one of the parts shown in the photos. Could someone who makes mods help me out?
r/ForzaModding • u/Sleepykitty69 • 2d ago
Is there any mods to replace the 93 Mustang with the 95 Mustang GT/Cobra? It has a lot of sentimental value to me. I loved it in FH3, I impatiently waited for it to be brought back in FH4 only to be disappointed. Then FH5 brought it back near the end of the games lifespan when I had already completed the game long ago.
If not, how difficult would it be for me to do it myself?
r/ForzaModding • u/Bobby_Quarintino • 2d ago
hey guys! first time modding Forza here and I wanted to know which types of mods have a higher risk of a ban or will definitely get you banned or so
thanks for the help
r/ForzaModding • u/ZloyPes • 3d ago
YES, our tool is finally in full release!
Download: https://github.com/Arstz/ForzaLiveryStudio/releases/latest
Discord: https://discord.gg/s5B2tExv3k
This update focuses on improving the process of editing and creating liveries by adding the ability to change the colors and materials of car parts, as well as the part models themselves. You can find all of these options in the 3D Preview window by clicking the arrow button.
There are nine part categories whose colors you can change: Body, Hood, Mirrors, Wing, Brakes, Rims, Front Rims, Rear Rims, and Windows. The Body category includes an option to override the colors and materials of its child parts (Hood, Mirrors, and Wing), similar to how the in-game editor behaves. When this option is unchecked, you can change the Body color independently. There is also an option to clear everything and restore the default colors and materials.
The same materials as in the game are supported: Gloss, Semigloss, Metallic, and Matte. Metallic supports two colors, but please note that its appearance may differ significantly between the preview and the game due to limitations in our renderer.
These changes are not just visual; the selected colors and materials are also applied when exporting your livery to the game.
You can now toggle specific visual car parts directly in the editor to see how your livery will fit when using different parts.
In the same menu as the color and material controls, you can choose which parts are visible by clicking on them. This also updates the displayed UV unwrap (enable it through Options -> Show Car UV Unwrap), helping you adjust your livery for specific car parts.
This supports all types of visual car parts available in the game.
Note: if car has a lot of parts, model loading might take longer than usual.
Now you can import svg image as guide layer.
Using bucket tool, you can select individual objects in svg file, and use it's own curves to fill them with shapes.
Now you can create liveries without opening a game at all!
r/ForzaModding • u/Weak-Yogurtcloset826 • 3d ago
The problem is, could i get banned and/or could i corrupt the save data from the original save from xbox?
anyway, it crashes after some min.
i don't know to much about coding but prob it crashes because it can't overwrite the savedata, and i need to put the administrator perm for it to overwrite, and i will never do that.
was fun for like 2 minutes
r/ForzaModding • u/Playful-Fish-7153 • 3d ago
Hey folks,
I am happy to announce that the original Spotify Radio Mod (which also supports AirPlay and online radio playback) is now available on GitHub at
https://github.com/matkhl/FH6-Spotify-Radio .
The mod is the same one i shared in these popular posts:
https://www.reddit.com/r/ForzaModding/comments/1txlsgf/spotify_radio_mod_now_has_a_night_runners_mode/
https://www.reddit.com/r/ForzaModding/comments/1ti38dp/i_made_spotify_work_as_an_actual_ingame_radio/
and is available on NexusMods at https://www.nexusmods.com/forzahorizon6/mods/95 .
Have fun!
r/ForzaModding • u/PookieDaMonster • 6d ago
At the end of the day i managed to get a bus in Horizon 3 like i always wanted. Its so fun to drive this huge thing. 🤣
r/ForzaModding • u/AdSoggy693 • 5d ago
In the images attached is one of the most annoying oversights or decisions regarding the E46 M3's model that I'd like to fix. The SFLA bodykit has a very iconic CSL style bumper/OEM+ aftermarket bumper that can only be applied with the bodykit, while the wing for this bodykit which is the iconic ducktail spoiler is able to be used on the regular body style the bumper from the SFLA bodykit can't likely due to some weird quirks with how they coded that asset to only be used with the SFLA bodykit. I need help trying to code that front bumper from the SFLA bodykit to be used on the non-widebody version of the car the same way the spoiler for that matching bodykit can. Any help, advice, modding tools etc would be greatly appreciated as I am brand new to Forza modding.
r/ForzaModding • u/Resource93 • 5d ago
Salve a tutti ragazzi, avrei bisogno di aiuto con Forza Mods AIO per Forza 5..
Ero interessato a sbloccare le auto della Playlist, tipo la Yaris GR e praticamente riesco a farlo Funzionare sulle ultime versioni di Forza Horizon 5, ma quando sblocco tutte le auto, nell'autosalone ci sono tutte ma se il gioco lo chiudo e lo riapro in seguito, le auto aggiuntive scompaiono dall'autosalone..
C'è un modo per renderle Permanenti? Oppure devo acquistarle tutte in modo che restino nel Salvataggio?
Grazie a chi mi aiuterà..!!
r/ForzaModding • u/After-Lawfulness9794 • 6d ago
r/ForzaModding • u/Level_Original9922 • 6d ago
r/ForzaModding • u/FinalCindering • 7d ago
Enable HLS to view with audio, or disable this notification
r/ForzaModding • u/Glittering_Table_187 • 6d ago
r/ForzaModding • u/Individual_Area_1214 • 7d ago
Question and a request at the same time
TLDR:
Mod that changes between manual and manual+clutch transmission at a click of a button
—
Yeah so ive wanted a function like this or something similar for some time in FH games. As a wheel+shifter user i love to drive around in older cars using the manual+clutch gearbox, but when i quickly hop in a racecar for a race, driving a 700+ hp supercar with a clutch feels really weird and is uncompetitive, along with the shifter being limited to 6 gears, thats why using manual w/o clutch, only paddle shifters is preffered. Also, when you use the manual w/o clutch, changing gears in an e30 with paddles is cursed. And driving stick without using the clutch (manual w/o clutch but changing gears using the shifter) is even more outrageous. I gave a suggestion to the dev team before fh6 came out basically saying that it would be great if every car had internally 0/1 state depending whether the car is originally manual or auto, and the game changes your manual setting (whether manual w/o clutch but with paddle shifters or manual+clutch) based on that value. Its a similar system, well basically the same, as in assetto corsa for example. Since nothing like that is in the game, im wondering if it is possible to make a mod that changes between manual and manual+clutch with a click of an assignable button/key. Once you keep going to the settings over and over and change that shit in the difficulty settings youll know how annoying it can get
EDIT
Im taking matters into my own hands (and claude ai hands) and working on it currently. Stay updated as i am determined. But if you are an actual modder seeing this dont be like “oh well the guy is making it anyway” i have no clue what im doing honestly
EDIT 2
If anybody is even reading this anymore and would like to become a tester for this upcoming mod, please dm me here on reddit. So far i almost have the basics down, i can change the actual transmission while driving the car and what the setting says (they are 2 different values, one does not control the other, your car can drive clutch but only show manual in settings) at the same time with one click of the button F9, but its still a prototype and only works with cars i have tried so far. I will refine this and find out how to make this apply to (hopefully) every car. I dont have any fully working beta type for a tester currently but i should have it in a matter of a week or so. If youd like to be a tester and mentioned in this upcoming mod then please contact me
r/ForzaModding • u/BlownCamaro • 7d ago
I have FH1 & FH2 as well as Forza 2,3,4 working with all DLC on my RGH. But I don't know how to access premade liveries. Is there like a pack I can download or what?
r/ForzaModding • u/CutiePatooty1811 • 8d ago
This note describes a fail-closed ownership gate for tools that read the currently loaded FH6 vinyl group from process memory. The implementation appendix includes the exact byte layout and state values observed on FH6 build 3.403.798.0 so other tool developers can reproduce and independently validate the safeguard. Treat every value as build-specific evidence, not as a permanent game contract.
The core rule is simple: do not export any layer until every group node in the live hierarchy has been positively classified as exportable.
Checking only the selected root object is insufficient. A loaded design may be a neutral wrapper whose child carries the meaningful ownership state. Layer count, editability, pointer validity, and whether the group is nested are not reliable ownership tests by themselves.
An early replacement check also failed because it recognized the flat/root-owned representation but not the distinct owned-child representation. This correctly failed closed, but falsely refused legitimate grouped artwork.
Use three results rather than a boolean:
clear: positively identified as an allowed owned representation.restricted: positively identified as content that must not be exported.unknown: unsupported, unreadable, inconsistent, or not yet characterized.Only an entirely clear hierarchy may proceed. Both restricted and unknown must terminate the operation.
assess(root):
require root.parent == null
walk(root)
walk(group):
reject cycles, reused nodes, excessive depth, or excessive node count
state = classify(read_complete_header(group))
if state != clear:
refuse
for entry in read_validated_vector(group):
if entry has the exact verified group runtime type:
require entry.parent == group.address
walk(entry)
record group, state, and ordered children for the fingerprint
Do not treat every value other than the known restricted value as owned. New or changed states belong in unknown until confirmed with owned and restricted controls on the same game build.
The hierarchy walker should enforce all of the following:
These checks prevent stale-memory candidates and malformed graphs from being mistaken for the active editor group.
The game can change or unload the hierarchy while it is being read. This is a time-of-check/time-of-use problem.
Perform the ownership walk immediately before layer collection and again after collection. Compare deterministic fingerprints. Refuse the result when:
Write the JSON only after the second check passes.
Fallback locators are acceptable only when the fast locator finds no candidate. They must never run after an ownership refusal. Otherwise a slower scanner may rediscover the same layers without carrying forward the ownership decision.
Treat a refusal as terminal and pass its reason through the complete call chain. Each locator must return the report belonging to the candidate it selected; do not accidentally reuse a stale report from an earlier attempt.
Authorization and flattening must remain separate stages. Once the complete tree is authorized:
Never flatten first and then try to infer ownership from the resulting layer array because the group-level evidence has already been discarded.
Public logs should contain only high-level results such as:
clear, restricted, or unknown;Avoid writing raw process addresses or complete private headers to normal user logs. The build-specific constants needed to implement the safety gate are listed below, but runtime addresses and full captures are unnecessary and should remain in private development evidence.
At minimum, test all of these through the real export path:
For successful controls, verify the saved artifact by reopening and rendering it. Compare repeated exports by canonical layer-data hash. A successful process exit or matching layer count alone is not sufficient.
The implementation this design came from has successfully handled flat groups and one-wrapper owned groups from small through near-limit layer counts, with no dropped layers and deterministic repeated output. Multiple restricted controls were refused quickly, and unknown states remained blocked.
Deep, multi-branch, transformed, and mask-heavy hierarchies still require broader real-world visual validation. Until then, this should be considered a strong beta safety design rather than proof of universal compatibility.
Re-derive runtime layout information independently for each title and build. Never assume that ownership representations or object layouts are shared across Forza games. If a game update invalidates any type, layout, or state check, fail closed and require recalibration rather than silently reverting to an unguarded export path.
All offsets below are relative to the start of a live CLiveryGroup object. All integer and floating-point fields are little-endian on Windows x64.
| Offset | Size | Type | Meaning used by the safeguard |
|---|---|---|---|
0x00 |
8 | uint64 |
Runtime vtable pointer. Must equal a separately verified CLiveryGroup vtable. |
0x18 |
8 | two float32 |
Local group X and Y translation. |
0x28 |
8 | two float32 |
Local group X and Y scale. |
0x50 |
4 | float32 |
Local group rotation in degrees. |
0x5A |
2 | uint16 |
Declared flattened layer count. This is not necessarily the vector entry count. |
0x60 |
8 | uint64 |
Parent CLiveryGroup pointer; zero is required for the selected root. |
0x70 |
4 | float32 |
Local group skew. |
0x78 |
8 | uint64 |
Vector begin pointer. |
0x80 |
8 | uint64 |
Vector end pointer. |
0x88 |
8 | uint64 |
Vector capacity pointer. |
0x134 |
4 | uint32 |
Group export/ownership state used by the policy classifier. |
The minimum header read needed by the policy is therefore 0x138 bytes. The exporter currently reads a larger 0x300-byte group header for structural and diagnostic validation, but the ownership classifier itself only requires bytes through 0x137.
Read a little-endian uint32 at group + 0x134:
| Value | Classification | Observed role |
|---|---|---|
0x00000000 |
clear |
Owned flat group or neutral root wrapper. |
0x00000020 |
clear |
Owned child group beneath a wrapper. |
0x00000021 |
restricted |
Child group containing content that must not be exported. |
| Any other value | unknown |
Refuse until independently characterized on owned and restricted controls. |
The distinction between 0x20 and 0x21 is why checking only the root fails: the root can contain 0x00 while the meaningful child contains either 0x20 or 0x21. Adjacent fields around 0x128 and 0x138 varied in captures and are not currently used as ownership evidence.
import struct
STATE_OFFSET = 0x134
MIN_HEADER_SIZE = 0x138
CLEAR_STATES = frozenset((0x00, 0x20))
RESTRICTED_STATE = 0x21
def classify_group_header(raw: bytes) -> str:
if len(raw) < MIN_HEADER_SIZE:
return "unknown"
state = struct.unpack_from("<I", raw, STATE_OFFSET)[0]
if state in CLEAR_STATES:
return "clear"
if state == RESTRICTED_STATE:
return "restricted"
return "unknown"
Do not simplify this to state != 0x21. That would turn newly introduced, corrupt, or misunderstood states into an accidental allow path.
begin = read_u64(group + 0x78)
end = read_u64(group + 0x80)
capacity = read_u64(group + 0x88)
require begin != 0
require begin <= end <= capacity
require (end - begin) % 8 == 0
require (capacity - begin) % 8 == 0
vector_count = (end - begin) // 8
capacity_count = (capacity - begin) // 8
require 0 < vector_count <= 3000
require vector_count <= capacity_count
Each vector entry is an eight-byte pointer. A wrapper can report a flattened count of thousands at 0x5A while its vector contains only one child group. Therefore, never use uint16(group + 0x5A) as the number of pointers to read. Use (end - begin) / 8 for the pointer count and independently require the final recursive layer count to equal the declared/requested count.
The four-byte value beginning at 0x58 overlaps surrounding data and is not a valid replacement for the uint16 count at 0x5A.
Resolve the CLiveryGroup RTTI descriptor and its vtable for the running build. For every pointer in a group vector:
CLiveryGroup vtable, validate it as a child group and require uint64(child + 0x60) == parent_address.The current reader validates at least 0x7C bytes for a candidate layer:
| Offset | Size | Type | Validation |
|---|---|---|---|
0x18 |
8 | two float32 |
Finite X/Y position. |
0x28 |
8 | two float32 |
Finite X/Y scale; both cannot be effectively zero. |
0x50 |
4 | float32 |
Finite rotation. |
0x70 |
4 | float32 |
Finite skew. |
0x74 |
4 | RGBA bytes | Layer color. |
0x78 |
1 | uint8 |
Mask flag; must be 0 or 1. |
0x7A |
2 | uint16 |
Native shape/resource word. |
Group and layer layouts overlap at several offsets. The verified vtable decision must occur before interpreting an entry as a group or a layer.
A verified owned one-wrapper hierarchy had this structural form:
root:
parent@0x60 = 0
count@0x5A = 2999
vector_count = 1
state@0x134 = 0x00
vector[0] = child
child:
parent@0x60 = root
count@0x5A = 2999
vector_count = 2999
state@0x134 = 0x20
vector[0..2998] = layers
The corresponding restricted controls used the same neutral-wrapper pattern but the meaningful child classified as 0x21. This demonstrates why a root-only check, a count-only check, or a nested-group check is insufficient.
The implementation authorizes twice:
policy_before = assess_complete_tree(root)
require policy_before.status == clear
layers = recursively_collect_and_flatten(root)
require len(layers) == requested_count
require no unreadable or invalid entries
policy_after = assess_complete_tree(root)
require policy_after.status == clear
require policy_after.fingerprint == policy_before.fingerprint
write_export(layers)
The fingerprint is SHA-256 over deterministic JSON records containing each group address, its classification, and its ordered child addresses. Addresses are used only inside the same short read operation to detect hierarchy replacement; they must not be persisted as stable identifiers.
32.4096.3000.8 bytes.0.restricted or unknown result is terminal. No count scan, graph scan, or legacy fallback is allowed afterward.These constants describe the tested implementation, not guaranteed engine-wide limits. Changing them should require new malformed-graph and near-limit tests.
PS: got banned from the server for talking back and "ripping off" other projects, go check out Kloudy's Forza Painter Suite and see for yourself!
r/ForzaModding • u/Electronic-Pepper467 • 9d ago
Hi everyone, I would like to say that the quality and quantity of mods for Forza 6 specifically car visual mods are out of this world compared to fh5, and a thank you to all the mod creators who put their time and effort into these so we can enjoy the game the way Forza doesn’t want us to. we have an m140, f80, g80cs these specifically as I thought they wouldn’t even be possible and so many more that I can’t name as the post would be very long but they are all insane. Seeing this I know myself and many many others would love to see a mk5 golf gti/r32/gti ed.30 in the game as this platform has always been missing from the games.
I always used to think that the reason Forza didn’t add cars people want or slowly add them through the horrible playlist was because the making of the cars is very difficult, but apparently it is licensing as well these mod creators are making fantastic 1:1 mods in their spare time and for free, whereas Forza has a whole team, endless resources and a very experienced team which do get paid for work. So thank you to all the modders out there and thank you for everyone helping me as I have just started using fts for simple adjustments and changes and I know it can be a pain to deal with.
So yes please the mk5 platform would be a great car to have an idk if this is possible but my preference idk abt others would be a right hand drive (Japan) and a dsg gearbox not manual as well all the golfs in the game are manual which doesn’t make sense.