Open natanmaia95 opened 2 months ago
Hello,
it's not the first time we have issues with people being confused regarding the loading of the string bank. That one is our fault and we have to improve the documentation.
Regarding the error message itself, we sadly don't have a way to change it because it is directly emitted by the Fmod library and not our plugin. We simply check if Fmod returned an error and print it to the console if that's the case. It's indeed confusing. The error seems to be emitted by the following line when we retrieve the list of VCA, Bus and Event in a bank:
I'm not certain, but it appears that the path can only be retrieved if the string bank is loaded. There are two ways forward. Either we add a boolean in the code that says if the string bank has been loaded and avoid certain operation if not the case, or we make the loading of the string bank mandatory and explicitly throw an error we created ourselves if someone tried to load any other bank before the string one.
It's technically possible for someone to use FMOD without any string/name/path by using only GUID/IDs. I'm not sure if we should support this alternative mode or if the plugin should only allow a string enabled setting.
I'm not familiar with GdExtension but I think throwing another error with more descriptive information is a safe bet, I've enjoyed that pattern when working with Java libraries for some other non-Godot projects. If I come across this particular message more often I might make a post on the Fmod forums as well so they could tweak it over there.
I also saw the same thing about needing to load strings in the older Fmod integration (now archived) for 4.1. My very naive bet is that selecting a bank from the special interface loads as string regardless of the chosen setting but I'm the newbie here haha. Everything else has been flawless so far.
I seem to get errors these even when not calling any Fmod functions, just adding one BankLoader in the scene and loading my master. The project runs without any issues, however; My audio and automation works fine.
Apparently these errors are caused if I either load my "Master.strings" bank after the "Master" bank, or don't load strings at all. Loading strings before master fixes this, but that wasn't explained anywhere in docs (I understand they're still WIP). I couldn't find anywhere in FMOD docs that order mattered either, or why should I include the strings bank even if I just use IDs. I'm open to be corrected and informed, though.
Also these errors aren't clear at all. It's a bank load failure but as the error mentioned it could be an event load failure I thought it was a problem with my events, which wasn't the case.
Here's the entire error strings I had to copy from godot's "right click error" interaction. Not sure why these don't display fully but that's a godot thing, not a godot-fmod thing.
I'm running on Windows 11, godot 4.2.2, in debug run (F6).