FModBankParser 1.0.1
dotnet add package FModBankParser --version 1.0.1
NuGet\Install-Package FModBankParser -Version 1.0.1
<PackageReference Include="FModBankParser" Version="1.0.1" />
<PackageVersion Include="FModBankParser" Version="1.0.1" />
<PackageReference Include="FModBankParser" />
paket add FModBankParser --version 1.0.1
#r "nuget: FModBankParser, 1.0.1"
#:package FModBankParser@1.0.1
#addin nuget:?package=FModBankParser&version=1.0.1
#tool nuget:?package=FModBankParser&version=1.0.1
<div align="center">
FModBankParser
</div> <div align="center">
</div>
C# library for parsing and extracting FMOD Studio sound banks, with a primary focus on Unreal Engine projects.
FModBankParser allows you to analyze, extract, and inspect FMOD .bank files of any kind, including those used in commercial games and standalone FMOD projects.
It supports a wide range of FMOD versions.
This library was originally developed for the FModel project, if you are only interested in exploring or extracting FMOD audio from UE games you should check it out first.
Disclaimer
This project was reverse-engineered by studying publicly available SDKs, documentation, and game binaries, and is not affiliated with or endorsed by Firelight Technologies in any way. All work was independently performed to better understand FMOD soundbank formats within Unreal Engine projects.
No proprietary, confidential, or internal source code from Firelight Technologies was used in the development of this library.
Features
This library is intended only for parsing, reading, and extracting FMOD .bank, .assets.bank, .streams.bank, and .strings.bank files.
It is not designed and will never be used to rebuild or modify soundbanks.
Installation
From NuGet
The easiest way to use FModBankParser is via NuGet:
dotnet add package FModBankParser
From local project
If you have a local copy of the project:
git clone https://github.com/Masusder/FModBankParser.git
You can include it directly in your .NET project:
dotnet add reference ../FModBankParser/FModBankParser.csproj
Demo CLI Usage
Project comes with an example FModBankParser.Demo that you can use.
Compile the project or download the demo executable from the Releases tab, then run it from a terminal:
FModBankParser.Demo <file_or_folder> [--key <encryptionKey>] [--export-audio] [--output <outputFolder>]
Options
| Option | Description |
|---|---|
path |
Path to a FMOD .bank file or folder containing soundbanks (required) |
--key -k |
Optional encryption key string for encrypted soundbanks |
--export-audio -e |
Flag if you want to export audio from the soundbanks |
--output -o |
Optional output folder for exported audio (default: ExportedAudio) |
--help -h |
Print help options |
API Usage Examples
Load a Single FMOD Bank
using FModBankParser;
var reader = FModBankParser.LoadSoundBank("Master.bank");
Console.WriteLine($"Soundbank: {reader.BankName} (GUID: {reader.GetBankGuid()})");
Console.WriteLine($"FMOD Version: {reader.BankInfo.FileVersion}");
Console.WriteLine($"Event count: {reader.EventNodes.Count}");
Load All Banks in a Directory
using FModBankParser;
var readers = FModBankParser.LoadSoundBanks("C:\\Games\\MyProject\\Content\\FMOD");
foreach (var reader in readers)
Console.WriteLine($"Loaded bank: {reader.BankName}");
Audio Export
FSB5 audio extraction is handled via Fmod5Sharp library, make sure to check it out.
using FModBankParser;
// Load a sound bank
var reader = FModBankParser.LoadSoundBank("Master.bank")
var outDir = new DirectoryInfo("ExportedAudio")
// Export all embedded audio
var exportedAudio = FModBankParser.ExportAudio(reader, outDir);
if (exportedAudio.Success)
{
Console.WriteLine($"Exported {exportedAudio.FilesExported} audio files to: {outDir.FullName}");
}
else
{
Console.WriteLine($"No audio files were exported for {file.Name}.");
}
Tested FMOD Versions
| FMOD Version | Game(s) |
|---|---|
0x33 |
All is Dust |
0x3E |
Interloper |
0x40 |
Ancestory |
0x44 |
Quanero VR |
0x4A |
Quanero VR |
0x87 |
Train Life – A Railway Simulator (UE 4.27) |
0x8E |
Dispatch Demo, Militsioner, The Day Before, Ghostrunner 2, Epic Mickey Rebrushed, Daimon Blades, etc. |
0x92 |
Dead as Disco Demo, Rage Quit, Spongebob: Titans of the Tide, Groovity, Dreadbone, Lilith, etc. |
<br>
For a full list of tested versions check this summary.
Acknowledgements
- Special thanks to LongerWarrior for the help.
License
FModBankParser is licensed under Apache License 2.0, licenses of third-party libraries used are listed here.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Fmod5Sharp (>= 3.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.