Events not showing in FMOD Studio, but are visible in Unity?

I added a few events to my project the a couple days ago. I pushed these changes to our master branch, no problems at all. Implemented the sounds in Unity, the events are showing in there. Everything works in-game.

I come back the next day, pull the same branch, and the events are not showing in FMOD Studio. The assets I added are there, but they show as unused in the assets list. Still, if I open Unity I can see the events. It’s like there is a de-sync between FMOD Studio and the actual banks, but I’m not particularly technically experienced.

I’ve tried deleting the branch locally and grabbing it back from the remote, re-cloning the repository, refreshing FMOD etc. but to no avail.

The only way I can think to get the events back is to recreate them locally, but I’d rather avoid this, and understand if I made a mistake for the future.

Any suggestions?

Hi,

Are you using an external source control solution with FMOD Studio? Generally we recommend using one of Studio’s built-in source control integrations to avoid issues similar to what you’re experiencing. To paraphrase our docs, if you are using an external source control tool, issues like these may be frequent if you have not excluded the following:

  • The FMOD Studio project’s folders “.user”, “.cache”, and “.unsaved” subdirectories - these are only created as needed and may also be hidden from view, depending on your OS’ settings
  • The FMOD Studio project’s built bank files, if it is decided not to include them
  • The FMOD Studio project’s assets, if it is decided not to include them - the assets must be present in a location known to the FMOD Studio project in order to be used, such as a separate folder

If someone else (especially someone also working on the Studio project) has pushed changes to the master branch after you, I would recommend reverting the commits, or otherwise pulling your specific commit to see if you can salvage your changes. Failing that, you may unfortunately need to recreate those events.

As for the “de-sync” between your built banks in Unity and the actual events in Studio, it’s expected behavior. The Studio project is a complex network of links between various entities that is stored in its constituent .xml files, whereas building your banks causes the Studio to generate singular bank files, which are in effect completely separate from the Studio. Any further changes you make to the project in Studio won’t be applied to the built banks until you build them again.

Hey Louis,

We are using git as external source control, this is not something I have a choice over.

As far as I can tell, there is no problem with the bank files or the assets, as both are present and working correctly in the build, so it seems like perhaps it’s an issue with the .cache subdirectory?

I’ve checked all following commits to the project and no-one has committed any unwanted files, so I presume it’s something I’ve done on my end.

Is there a way I can clear the .cache locally perhaps and grab it back from source control? Or does that not sound like a correct solution?

Thanks for the response
Harley

Hi Harley,

To start with, opening up the project directory with a tool that lets you search an entire directory and subdirectories (VSCode → Open Folder is useful for this), and searching the project .xml files for the names of the events that you previously added should let you confirm whether those events are actually present. You may wish to do this on both your local copy, as well as a fresh pull of the remote.

If other people have modified the actual Studio project in subsequent commits, then it may not be that they’ve added new files, but instead that merging changes to existing .xml files has corrupted them somehow - in which case the above search will help you identify if any trace of them remains, or whether they just weren’t committed at all somehow. It could also be that the changes you pushed preferred the existing .xml files to your own, but I can’t be sure of that form my end.

Additionally, I would recommend validating your project with File → Validate Project and seeing whether you are presented with any issues, both in general and specifically relating to the missing events - if so, I would back the project up and try repairing it, and seeing whether the events are recovered.

It’s unlikely that merge errors with .cache would be responsible for the missing events, as typically this folder only contains temporary data (compressed audio, waveform display data, etc.). What is possible is that your changes to the project weren’t saved, and were still present in your .unsaved folder, and then your committed .unsaved folder was overwritten by another user’s - however, this is still unlikely.

Hey, thanks for the reply again,

I’m going to go ahead and rebuild the missing events. It seems like I built the banks and committed them, but somehow didn’t commit the events to the remote.

It must have been a mistake I made somewhere, because no one else is using the FMOD studio project, so conflicts are unlikely.

Validate project showed no issues. The event .xml files were not present locally or on the remote, but everything is working correctly in-game, so the banks must include them.

Slightly confusing, so if you could help me understand the mistake I made so I don’t make it again in the future, that would be amazing!

Is it possible I built the banks, but didn’t save the project, then only committed the built banks and not the events? Or is this not feasible?

Thanks
Harley

That is entirely feasible to do, and is the most likely possibility. That said, if you lose committed events again despite ensuring that your project is saved, feel free to reply again and we can try to diagnose the issue.