explaingit

disthinker/fh6_radio_tool

21PythonAudience · generalComplexity · 3/5ActiveSetup · moderate

TLDR

Desktop tool that lets Forza Horizon 6 players swap in-game radio songs for their own music by patching audio banks and editing track marker timings.

Mindmap

mindmap
  root((FH6 Radio Tool))
    Inputs
      Game root folder
      User music files
      Marker CSV or JSON
    Outputs
      Mod package
      Patched bank files
      Backups
    Use Cases
      Replace radio songs
      Edit loop points
      Bulk import markers
    Tech Stack
      Python 3.10
      Fmod Bank Tools
      Windows batch

Things people build with this

USE CASE 1

Replace the songs on a Forza Horizon 6 radio station with your own MP3 collection

USE CASE 2

Generate a mod package without touching the live game files

USE CASE 3

Edit loop and drop markers so custom tracks transition correctly during races

USE CASE 4

Bulk import marker timings from a CSV or JSON template

Tech stack

PythonWindowsFmod

Getting it running

Difficulty · moderate Time to first run · 30min

Needs Python 3.10+, a short install path on Windows, and a separately downloaded Fmod Bank Tools executable.

In plain English

FH6 Radio Tool is a small desktop program that lets players of the racing game Forza Horizon 6 swap the songs on the in-game radio for their own music. The README describes it as a community tool that scans the game files, lets you pick a radio station, choose which original slots to replace, and then tick the same number of your own audio files to drop into those slots. It can also adjust the loop points that tell the game where each track begins, where the drop is, and where the post-race section repeats. Using it requires Python 3.10 or newer. You extract the package to a short path such as E:\FH6RadioTool, run setup_env.bat once to set up the environment, then run run_tool.bat to start the interface. From there you point it at your game root folder and your music folder, pick a station, select slots to replace, and choose between two final actions. One option generates a mod output package, which produces patched XML and rebuilt bank files in an output folder while leaving the live game files alone. The other option does a one-click replacement that backs up the original files first and then writes the new ones in their place. The README spends a lot of time on what it calls Marker parameters. These are timing values such as TrackStart, TrackDrop, TrackLoopStart, TrackLoopEnd, PostRaceLoopStart, PostRaceLoopEnd, DJSegment and StingerStart that control how the game plays and loops each song. Version 2.7.3 reorganises these into clearer rows and adds a way to bulk-import them from CSV or JSON files, with example templates included under docs/examples. One important constraint: the tool does not ship with Fmod Bank Tools, which is the external program that actually extracts and rebuilds the game's audio banks. Users must download it separately and point the radio tool at the Fmod_Bank_Tools.exe path. The README treats Fmod Bank Tools as an outside program and only automates its window and prepares its working folders. The project is written in Python. Documentation is provided in both Chinese and English under the docs folder. The README warns users to keep backups, says that automatic loop-point detection is still experimental, and notes that some banks may contain no extractable audio, in which case the tool may switch to another bank on the same station.

Copy-paste prompts

Prompt 1
Walk me through installing Python 3.10 and running setup_env.bat for FH6 Radio Tool on Windows
Prompt 2
Configure FH6 Radio Tool to point at Fmod_Bank_Tools.exe and my Forza Horizon 6 install folder
Prompt 3
Show me how to swap three songs on one radio station and generate a mod package instead of overwriting files
Prompt 4
Convert this list of song timings into the marker CSV format used by version 2.7.3
Prompt 5
Troubleshoot why a bank shows no extractable audio and explain how the tool falls back to another bank on the same station
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.