Hello there! I’ve been developing some tools for Celeste modders to easily add/remove dsp effects to/from the various events that play in the background of the game. I’ve made two “triggers”, an Add/Remove Effect trigger, and an Edit Effect Param trigger.
The “Audio Effect Trigger” has various features, like defining which actions to take during specific events, such as when the level starts/ends, and when the player enters/leaves the bounds of the trigger.
In C#, I’ve made code that will “inject” a dsp into an event instance
In another class, I then add that dsp to a list of dsps to keep track of, and remove them when they should be
Then, in the “Audio Effect Trigger” code I add/remove/do nothing with the effect based on what the user chose in the trigger options.
The issue is that sometimes the effect won’t actually be added until the level is completely reloaded, and I don’t know why. I’m not sure if it’s an issue with the way my code is set up, or if it has to do with how Celeste manages events, or if it’s to do with how fmod handles dsps. Was thinking someone here might be able to point out where I’m going wrong.