Calling :Stop() or :Pause() does not stop all instances of the sound

It only stops the first one played. This means if you call :Play() twice on a sound (which shouldn’t even really be possible in my opinion) there is no possible way to stop any other playing instances of the sound. The sound object has no ties to anything but the first audio that it plays. This also means if the client joins in the middle of the sound, and the sound starts over (Another pretty nonsensical thing, it is actually in my opinion a little more convinient just not to play it rather than to start it over) the sound can also never be stopped.

A nice solution to this would be to pass arguments to the methods. Play() would return an ID of the sound just about to be played, and then Stop() would accept either -1 to stop all sounds from that object or a specific ID to stop just that sound.

Yes, if you call play twice on a sound, it will create a reference to a new FMOD handle and forget the first one. If you want to make sure each of your sounds is managing a single sound, you have to create separate sound objects.

This is done on purpose, because it makes it easy to manage sound effects that last a short period (e.g. automatic weapons, etc.). We don’t have any plans to make play/stop/pause work on every sound you created with your sound object, since you can do that yourself with multiple sound objects and only calling play once on each one and not calling it again until the previous sound stops either normally or via stop/pause.

Gorroth, I’ve got a fast-firing sound. It sometimes lags bit a bit (doesn’t play every quarter second) and then the rate speeds up until it catches up with the script. How do I fix this? Is it just loading slowly? Would uploading it as a .WAV make it play faster? Is that even planned?

WAVs are bigger files (lossless), so probably not. MP3s are compressed, but that means there is a slightly higher load when playing then. This may or may not be the cause. I’d put it down to some FMOD → Roblox API bug.

I recall that being the case. Mp3s have higher load time. Is that what’s going on Gorroth? o:

I don’t know what’s going on in your script. Could be any number of things, but I’m going to guess it is scheduling priority. The sound engine runs at 30 FPS, and it the sound job may be getting lower priority than other jobs, which is why it lags at first and then later does a lot of things all at once.