Open-source project
utopia-rise/fmod-gdextension avatar
utopia-rise/fmod-gdextension

fmod-gdextension: putting FMOD Studio banks inside a Godot 4 project

FMOD Studio GDExtension bindings for the Godot game engine

945 stars116 forksC++MIT

At a glance

What is it?
This Godot 4 GDExtension binds the FMOD Studio API so a game can load FMOD banks, attach events to Godot nodes and play positional audio from GDScript. The binding is C++ only, so C# projects cannot use it, and the version pairing of each release is the thing to check before you adopt it.
Who is it for?
fmod-gdextension fits a GDScript Godot 4 project that already uses FMOD Studio for interactive audio and wants its designers to author events in FMOD rather than in engine code, and it does not fit a C# project, because the documentation states there are no C# bindings since C# lacks the auto-binding feature for extensions.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 123 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the extension exposes to a Godot scene

The project is described as a Godot 4 GDExtension that integrates with the FMOD Studio API, and FMOD itself is described as an audio engine and middleware solution for interactive audio in games. The extension provides dedicated Godot nodes rather than a bare API wrapper: FmodEventEmitter2D, FmodEventEmitter3D, FmodEventListener2D and FmodEventListener3D, usable in any Godot scene or from GDScript code. That node-first design is the practical difference from calling the FMOD API by hand. A designer drops an emitter into a scene, points it at an event, and the event plays in 3D space from a position in the world. The README names Koira as a game using this extension, and the fork origin is acknowledged as godot-fmod-integration by alexfonseka, whose work was adapted from GDNative to GDExtension.

Bank files are the unit of work, not individual sound files

The integration model follows FMOD Studio rather than the engine. You use FMOD Studio to create bank files, and the addon auto-loads all events from them inside Godot, with live updating working out of the box. That last point matters for iteration: a designer changes an event in FMOD Studio and the change is reflected in the running game without a manual bank rebuild and reload cycle being described in the documentation. The design implication is that your sound assets live in the FMOD project, not as loose files in the Godot repository, and the Godot side references events by name through the emitter and listener nodes. If your team is used to hand-authoring audio directly in the engine, this is a different division of labour, and one that pays off when audio designers are used to FMOD's event authoring.

Installing the addon means unpacking a folder and enabling a plugin

The installation is three steps and there is no package manager involved. You download the latest release, unpack the addons/fmod folder into the /addons folder of your Godot project, and then enable the addon in the Godot settings under Project > Project Settings > Plugins. The folder that has to be moved is the addon directory itself, and the plugin is then activated from the Plugins tab of the project settings.

There is one piece of setup the documentation does not spell out in the README itself: the addon needs the FMOD API, and the official docs at fmod-gdextension.readthedocs.io are pointed to for getting started. The repository layout shows how that is handled, with a get_fmod.py script at the top level and a .gitmodules file, and the contributing section explains that a fork needs FMODUSER and FMODPASS secrets added so the CI can download the FMOD API. Those same credentials are the reason the addon cannot be built without an FMOD account, which is a real constraint for a team that wants reproducible, credential-free CI.

Building from source is the escape hatch from the release binaries

Continuous delivery is handled with GitHub Actions, which deploys the released drivers, and the project follows SEMVER. If you would rather not take the prebuilt binaries, the documentation points to a compile from sources section under docs/src/doc/advanced. The build system is visible in the tree: a CMakeLists.txt, an SConstruct, an Android.mk, a .clang-format file and a godot-cpp directory as a submodule, with C++ as the primary language. The presence of Android.mk and a jni/ directory says something specific about scope, which is that the extension is expected to be built for Android as well as desktop, and the demo/ directory carries export_presets.cfg, a project.godot and separate high_level_2D, high_level_3D, low_level_2D and low_level_3D folders, which is a demo project covering the 2D and 3D emitter and listener cases.

No C# bindings, and the reason is the language binding mechanism

The limitation stated in the documentation is that the plugin does not provide C# bindings to FMOD. The reasoning is specific rather than a matter of effort: there is technically a C# FMOD API, but the authors chose to develop it as a C++ GDExtension, and any language binding with an auto-binding feature for extensions should be able to use the plugin, which is the case for GDScript, while C# does not offer that feature yet. That is a structural mismatch rather than a missing feature, and it means a studio with a C# codebase cannot use this extension as it stands. It also explains the choice of C++ in the first place: exposing the Studio API to GDScript means writing the binding in the language Godot's extension system can auto-generate for.

Release tags pair two versions, and the tested list lags behind

Versioning is the practical detail to get right. The recent releases are named with two numbers joined by a hyphen: 6.0.0-4.4.0, 6.0.1-4.4.0 and 6.1.0-4.5.0, released in August and September 2025, and the naming pattern lines up with the two version families this project bridges, the FMOD API and the Godot engine. The documentation's Tested Versions section, however, lists Godot 4.4 stable and FMOD 2.03. So the newest release tag numbers do not line up with the tested versions stated in the README, and a team picking a release has to decide which pair they actually need. The last push was on 2026-06-22, and the repository is not archived, so work is continuing on the tree even though the newest tagged release is from 2025.

An MIT licence on the binding, separate terms for the middleware

The repository carries an MIT licence, with the LICENSE file at the root. That governs the extension code, the build scripts and the documentation in this tree, and it places no restriction on commercial use, modification or redistribution beyond requiring the notice to travel with the code. It does not cover FMOD itself. FMOD Studio is proprietary middleware with its own licence and its own pricing, and the extension is useless without the FMOD API downloaded through the FMODUSER and FMODPASS credentials. This is not legal advice, and the point to take away is narrow: the open source part of the stack is the binding layer, while the audio engine underneath remains a licensed commercial dependency that your team must obtain and account for separately.

Editorial conclusion

fmod-gdextension fits a GDScript Godot 4 project that already uses FMOD Studio for interactive audio and wants its designers to author events in FMOD rather than in engine code, and it does not fit a C# project, because the documentation states there are no C# bindings since C# lacks the auto-binding feature for extensions. Before you adopt it, check the release tag against your engine and middleware versions, since the tags pair two numbers such as 6.1.0-4.5.0 while the tested versions listed in the documentation are Godot 4.4 stable and FMOD 2.03, and decide whether the addon folder, which needs the FMOD API downloaded by the CI, fits your build pipeline.

Frequently asked questions

How do I install the fmod-gdextension addon in Godot 4?

Download the latest release, unpack the addons/fmod folder into the /addons folder of your Godot project, then enable the addon under Project > Project Settings > Plugins. The official docs at fmod-gdextension.readthedocs.io cover getting started with the addon.

Which Godot nodes does fmod-gdextension provide?

It provides FmodEventEmitter2D, FmodEventEmitter3D, FmodEventListener2D and FmodEventListener3D, which can be used in any Godot scene or from GDScript code. The extension exposes most of the Studio API functions to GDScript and adds helpers for attaching Studio events to Godot nodes and playing 3D and positional audio.

Can I use fmod-gdextension from C# in Godot?

No. The documentation states the plugin does not provide C# bindings to FMOD, because C# does not offer the auto-binding feature for extensions that GDScript provides. The binding was developed as a C++ GDExtension.

What are the supported FMOD and Godot versions?

The Tested Versions section lists Godot 4.4 stable and FMOD 2.03, and the recent release tags pair two numbers such as 6.1.0-4.5.0. The project uses SEMVER and the last push was on 2026-06-22.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. Releases
  5. utopia-rise/fmod-gdextension on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/utopia-rise-fmod-gdextension.svg)](https://hysenlabs.com/projects/utopia-rise-fmod-gdextension)

Was this useful?