I’m trying to prevent a group of events from using too many voices. I’m doing so by putting that group of events into a category folder & setting the Max Playbacks of that category folder to a low’ish number. However, once in game, those events can exceed the Max Playbacks value. Could this be a bug, or maybe we’re doing something wrong.

On the category folder, I’ve been using “Just fail if quietest”, but I tried “Steal Oldest” too. I’m also using Max playback caps on the events and I’ve tried (and am using) “Steal Oldest”, “Steal Quiestest” and “Just fail if quietest”. I didn’t perceive any difference when switching between those modes.

Either way, I think I figured out what’s wrong. My folder structure on the category side looks a bit like this:

/Music

/SFX/Player/VolDuck

/SFX/Player/NoVolDuck

etc.

All of the events that I’m trying to control reside in “VolDuck” or “NoVolDuck”, so I’ve been setting my MaxPlaybacks limit on the “Player” folder to constrain both folders with one MaxPlaybacks setting. But it seems that the engine will not apply MaxPlaybacks limits on events within nested folders. I.e. To make this work, I need to apply a MaxPlaybacks limit on both “VolDuck” and “NoVolDuck”.

Is this the intended behaviour? I had just assumed I could control events within nested folders, like how I can control the Volume and Pitch of nested folders, but maybe MaxPlaybacks don’t support this.

Hi Sean,
You’re right, it looks like it doesnt support nesting right now. I can get this added easily enough, just to clarify, if there are several max playback values it would be the minimum of all the parents that would be the applicable maximum?

That sounds about right to me, but just in case I’m misunderstanding what you’re saying, in my folder structure example, if:

“Player” had a MaxPlaybacks of 15

“VolDuck” had a MaxPlaybacks of 10

“NoVolDuck” had a MaxPlaybacks of 10

each with a failmode of “Steal Quietest”

Since “Player” is higher up in the hierarchy (the other two folders are nested in “Player”), it would be ideal if it would allow the 15 loudest events from “VolDuck” and “NoVolDuck” to play, even though each of those folders are capped at 10. So, “VolDuck” will only allow 10 events to play, but “Player” can get up to 15 because “NoVolDuck” will also be passing events to it.

Similarly, if I have 3 Events in “VolDuck”, each with their own MaxPlaybacks of 4 (i.e. total potential playback of 12), the current behaviour where it allows 10 of the loudest events to to play (even though each event is capped at 4) works well for me.

Not sure if this is all feasible. It’s ideal for my usage of MaxPlaybacks so far, but perhaps there are some scenarios that I’m not considering.

sorry you're right, not the minimum, it should be treating the count of the children individually but adding their playbacks together to count against the max of the parent. I'll see what can be done but you'll have to work around with the current behaviour for now.

Hi Sean,
What fail mode are you using? I just tried 2 events of 100 maxplaybacks each, then set the category to maximum of 3.

You can get as many of these events as you like, but calling start() should fail or steal.
I played 1 of event A, then 3 of event B and the 3rd B event failed with FMOD_ERR_EVENT_FAILED.

maybe its the ‘get’ that you’re seeing not fail? It seems like this is allowed, and a little bit different to event max playbacks, because you dont want to stop the events from being prepared before start, just to fail when it comes time to play.

The event max playbacks is more of a memory limitation/control method, the category one is for playback.