Loading banks from different projects


in our game we want to support modding, so we would like to give players the ability to provide their own banks and GUIDs files that we load on the fly. We provide modders a sample Studio project to work on, from which they can export their banks.

However, I’ve found that this doesn’t currently work - the Studio API refuses to load banks that come from a different project than the one our Master Bank comes from. This happens either if the modder-provided bank is a master bank itself, or if it isn’t.

Is there any way to work around this? We don’t load strings.bank files, instead we parse GUIDs.txt files.


I can’t answer your question exactly, but I know it has been confirmed before that it is possible to load banks from multiple projects into one game. That being said, I don’t know how it can be done in a modular fashion for post-build mods. I hope it’s something that works out for you though! Sounds cool.

Loading another master bank will currently fail because the Studio API doesn’t allow you to have more than one global master bus (we may remove this restriction in the future). Loading other banks should work as long as the events in them only use the global mixer buses from the original project. Buses are identified by IDs (that are generated when they are created) rather than by path, which means you need to make your sample Studio project by copying your game project and deleting the unwanted assets - don’t create a new project and rebuild the mixer by hand.

What error are you getting when you attempt to load a modder-provided bank?

1 Like

I can’t remember the error, I think was something like ERR_INTERNAL. Anyway what you suggested worked: we made a copy of our project and deleted all assets (except those meant to be an example).

Did we remove the restriction of loading more than one global master bus?

I tried the way you mentioned above. It works fine as long as I don’t import strings bank. But as long as I import strings bank, it’ll say “Bank already loaded” error. Any idea?