FModBankParser 1.0.1

dotnet add package FModBankParser --version 1.0.1
                    
NuGet\Install-Package FModBankParser -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FModBankParser" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FModBankParser" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="FModBankParser" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FModBankParser --version 1.0.1
                    
#r "nuget: FModBankParser, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FModBankParser@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FModBankParser&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=FModBankParser&version=1.0.1
                    
Install as a Cake Tool

<div align="center">

FModBankParser

</div> <div align="center">

License NuGet Stars Releases

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


License

FModBankParser is licensed under Apache License 2.0, licenses of third-party libraries used are listed here.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 172 10/27/2025
1.0.0 167 10/21/2025