Korean README: README.ko.md
Current version: v0.1.5
Based on FH6 Universal Radio by g0ldyy.
Plex-focused in-game radio integration for Forza Horizon 6. This project is a modified version of FH6 Universal Radio by g0ldyy, adapted to use a local web dashboard for Plex library, artist, album, and playlist playback.
- Plex server setup from the dashboard.
- Music library, artist, album, and playlist selection.
- In-game radio output through the FH6 audio path.
- FH6 radio volume/menu ducking behavior.
- Optional dashboard auto-open on game start.
- Local dashboard at
http://localhost:8420.
This is experimental and may break after game updates. Keep a backup of your install and use it at your own risk.
v0.1.5 keeps the dashboard Plex-focused while pulling in selected upstream
stability and UI improvements. It re-pins in-game metadata if FH6 overwrites
the radio HUD while driving, adds upstream stall-timer catch-up, and moves Plex
ffmpeg process launch helpers into a shared subprocess module.
- Close Forza Horizon 6.
- Download a release archive.
- Install ffmpeg separately, or keep the full path to
ffmpeg.exeready. - Extract the archive into the game install folder next to
forzahorizon6.exe. - Launch the game.
- In Audio settings, set
Radio DJ = OffandStreamer Mode = On. - Open
http://localhost:8420and configure Plex.
The dashboard asks for:
- Plex server URL, for example
https://your-plex.example.com - Plex token
- music library, artist, album, or playlist
- ffmpeg path, unless
ffmpeg.exeis already available onPATH
Do not commit your real Plex token, private config, cookies, or logs. Runtime
config belongs in the game folder under fh6-radio/config.toml.
For a local Plex server on your LAN, http://192.168.x.x:32400 is usually more
reliable than https://192.168.x.x:32400. Windows can reject local HTTPS when
the certificate is not trusted or does not match the IP address. You can test a
token directly with /library/sections?X-Plex-Token=YOUR_TOKEN on the same
server URL.
Plex playback is decoded through ffmpeg. The release zip does not bundle ffmpeg, so install it separately.
Either:
- add the folder containing
ffmpeg.exeto your WindowsPATH, or - enter the full path in the dashboard under Settings > General > ffmpeg path, or Settings > Plex > ffmpeg path for a Plex-specific override.
Portable ffmpeg works fine. Example:
E:\ffmpeg\bin\ffmpeg.exe
If ffmpeg is missing or the path is wrong, Plex tracks may fail, skip immediately, or stop after a short burst of audio.
Requirements:
- Windows
- Visual Studio 2022 or newer with the Desktop development with C++ workload
- PowerShell
powershell -ExecutionPolicy Bypass -File .\scripts\get-deps.ps1
powershell -ExecutionPolicy Bypass -File .\scripts\build.ps1The build output is staged in dist/.
To install a local build:
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1 -GameDir "C:\XboxGames\Forza Horizon 6\Content"When publishing a binary release, include these files from dist/:
version.dllfh6-radio/README.txtREADME.ko.mdLICENSENOTICE.txtCHANGES.txtSOURCE_CODE.txtTHIRD_PARTY_NOTICES.txtCORRESPONDING_SOURCE.zip
CORRESPONDING_SOURCE.zip is generated by scripts/build.ps1 from the matching
source tree.
Based on FH6 Universal Radio by g0ldyy: https://github.com/g0ldyy/fh6-universal-radio
See NOTICE.txt and CHANGES.txt for attribution and modification details.
Codex 5.5 model was used as an AI development assistant while adapting and packaging this Plex-focused version.
This project is distributed under the GNU General Public License v3.0. See
LICENSE.
Third-party component notices are listed in THIRD_PARTY_NOTICES.txt.
This project is not affiliated with, endorsed by, or connected to Turn 10 Studios, Playground Games, Xbox Game Studios, Microsoft, Plex, or Forza. All trademarks belong to their respective owners. Provided as-is, without warranty.

