Hello,
I hope I can get some help regarding the Cooldown parameter on the Event Macros, the problem is as follows:
When I set a Cooldown on an event even at 0.1ms on the Event Macros, the sound doesn’t get played at all, I have noticed in the FMOD Profiler during a Live Update that the instance itself doesn’t show on the 3D view radar as if the code that is calling the event doesn’t exist.
However, the same event will play if the same game object containing the event is freshly spawned in front of the player. And even some game objects that have been pre-spawned will play the event randomly.
This issue also persists on any 2D timeline events that have looping sounds, not one-shots (they work fine).
My understanding of the FMOD Cooldown mechanic (correct me if I’m wrong) is that the code that triggers an event (e.g., PlayOneshot, PlayOneshotAttached) to play is still read and triggered but the sound itself is delayed and not the execution of the line of code instead.
I have even tried setting the event on the highest priority in the macros but it still doesn’t work. I hope my explanation is clear and apologize in advance if it’s not, do tell or ask me if you still need clarification.
I am afraid you are mistaken: When a new instance event would be triggered before the event’s cooldown has expired, the new event instance is not delayed. Rather, the new event instance is cancelled; it is not created and played.
Looking at our documentation of this feature, I can see how the wording is ambiguous and so potentially misleading. I’ll add this issue to our bug tracker.
Does this clarification explain the behavior you’ve been seeing?
This is expected.
Event priority is a tool for tweaking the behavior of the Core API’s virtual voice system. It applies whenever the number of concurrently-playing audibly-loud Core API channels exceeds your game’s voice limit and some of those channels must be virtualized.
When an event instance’s creation is prevented by the event’s cooldown not yet having expired, it is because the event’s cooldown has not yet expired, not because the number of concurrently-playing audibly-loud channels has exceeded your game’s voice limit.
If you do not want an unexpired event cooldown to prevent an event from playing, do not give the event a cooldown.