ERR_PLUGIN_MISSING in Unity WebGL build only

Everything works perfectly on macOS, Windows and WebGL debug builds (using libfmodstudiounitypluginL.bc).

When using libfmodstudiounityplugin.bc (for a production build) I get the following error:

UnityLoader.js:4 
6185f612-b732-4e73-b3f4-d91d38e5afb0:2 warning: 2 FS.syncfs operations in flight at once, probably just doing extra work
UnityLoader.js:4 [FMOD] Finished loading http://localhost:8000/StreamingAssets/Master Bank.strings.bank
UnityLoader.js:4  
UnityLoader.js:4 (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
UnityLoader.js:4 
UnityLoader.js:4 [FMOD] loadFromWeb.  Path = http://localhost:8000/StreamingAssets/Master Bank.bank, result = ERR_PLUGIN_MISSING.
UnityLoader.js:4  
UnityLoader.js:4 (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
UnityLoader.js:4 
UnityLoader.js:4 BankLoadException: [FMOD] Could not load bank 'http://localhost:8000/StreamingAssets/Master Bank.bank' : ERR_PLUGIN_MISSING : A requested output, dsp unit type or codec was not available.
UnityLoader.js:4   at FMODUnity.RuntimeManager.loadedBankRegister (FMODUnity.RuntimeManager+LoadedBank loadedBank, System.String bankPath, System.String bankName, System.Boolean loadSamples, FMOD.RESULT loadResult) [0x00000] in <00000000000000000000000000000000>:0 
UnityLoader.js:4  
UnityLoader.js:4 (Filename: currently not available on il2cpp Line: -1)

I see in the HTML5 API docs (under “DSP Effect support”) that some plugins are removed from the build, however this is not listed under the unity WebGL build docs. Nor am I sure whether changing bc file would change plugin availability.

Thanks.

Changing the bc file won’t change the effects available, unfortunately due to the working of some effects they just aren’t available for HTML5.

The Unity docs should be used as an extension of the API docs, as the integration is built on top of the API’s.

Cameron,

Right, much as I expected.

So do you have any thoughts on why I might get this error with libfmodstudiounityplugin.bc but not with libfmodstudiounitypluginL.bc?

My apologies, I was wrong about the effects.

The release library (libfmodstudiounityplugin) uses a reduced build which does not contain the effects listed in the HTML5 API docs. But the debug library (libfmodstudiounitypluginL) does contain these effects.

Right, thanks for that.

So what’s the move here? Right now we’ve got the dev build in production which is not ideal (but it’s running fine). Is it possible to add these effects to the release build, or should we use trial and error to work out which ones are being used by the FMOD project? Is there a way to restrict them from the project so that our sound guy doesn’t accidentally use them, or better still to create a conditional build that bypasses these effects for the web version?

btw, I think having different capabilities between the debug and release builds is quite counter-intuitive. I switched to debug to get more info about the missing plugin, but after doing this it’s no longer missing so I don’t find out which one it is!

There are only three effects that aren’t supported by the reduced/release lib:

  • Pitch Shift
  • Convolution Reverb
  • Loudness Meter

https://fmod.com/resources/documentation-api?version=2.0&page=platforms-html5.html#dsp-effect-support

You can filter the Event Browser and Mixer windows by DSP effect.

That is a fair point, as this is the only platform that has done this it seems a little odd.

libfmodstudiounityplugin.bc links to fmod_reduced.bc by default. To get the full feature set use libfmodstudiounitypluginL.bc instead.

1 Like

Thanks Cameron, that’s all the info I need to proceed from here. I appreciate the clear and thoughtful responses.

1 Like

Oh actually, was this a typo?

libfmodstudiounityplugin.bc links to fmod_reduced.bc by default. To get the full feature set use libfmodstudiounityplugin.bc instead.

You’ve named the same file twice.

Whoops yes it was, should have been libfmodstudiounitypluginL.bc in the second case, I have updated it now.

1 Like