Audio Modding with FMOD Studio

Last updated: April 3, 2026


Introduction

This guide is not a replacement for the official FMOD Studio manual. If you’re completely new to FMOD Studio or audio middleware in general, we recommend starting with the official documentation on FMOD’s website before diving in here.

The purpose of this guide is to give you an up-to-date, Bannerlord-specific reference that helps you work efficiently with FMOD. It focuses on workflows, best practices, and performance considerations that are unique to Mount & Blade II: Bannerlord.

With direct FMOD Studio support, modders now have access to nearly all of the tools used internally by the game’s audio team. That means you can:

Mount & Blade II: Bannerlord is a performance-critical title. Every change you make in FMOD Studio is reflected in real time inside the game, and a poorly optimized setup can hurt both audio quality and overall performance. Because of this, treat optimization as part of your workflow — not something to deal with at the end.

A dedicated section of this guide covers performance optimization guidelines. We strongly encourage you to read it before finalizing any FMOD modifications. Following those practices will help you avoid common pitfalls like excessive voice counts, unnecessary DSP load, or inefficient streaming setups.


Getting Started

Before anything shows up in-game, your mod needs to be wired up so that Bannerlord knows where to find your sound data. This involves two steps: registering the required data files in your .mbproj file, and generating those files using the FMOD Studio script provided.

1. Register Sound Files in Your .mbproj

Add the following lines to your mod’s .mbproj file, inside the base scope:

<file id="soln_sound_files"          name="ModuleData/soundfiles.xml"            type="sound_files" />
<file id="soln_sound_event_data"     name="ModuleData/sound_event_data.gen.xml"  type="sound_event_data" />
<file id="soln_sound_parameter_data" name="ModuleData/sound_params.gen.xml"      type="sound_parameter_data" />

The name field specifies the XML file path relative to your mod’s directory. The id and type fields must be kept exactly as shown.

2. Generate the Data Files

All three XML files — along with the associated sound banks — are generated by the SEDFGen.js script included with the project. To run it, use the scripting interface inside FMOD Studio: go to Scripts > Taleworlds.

The script outputs:

An example directory structure with all required files is provided for reference.

Important: Do Not Include main.bank

In soundfiles.xml, main.bank is intentionally left out. Do not add your own main.bank. Including it can cause issues such as:

You can add your own VCAs and buses, as long as you do not modify any of the existing buses and VCAs provided by the base game.

Overriding Existing Sound Events

To override a sound event that already exists in the game, your event must match the original exactly — including the full event path, not just the event name.

For example, to override event:/mission/combat/sword_hit, your event must use that exact path.

Mod Load Order

If multiple sound mods are active at the same time and any of them define events with identical paths, the mod loaded last takes priority. Keep this in mind when publishing your mod or when testing alongside other audio mods.


Guide Structure

This guide is split into the following pages: