If it happens "sometimes", it goes without saying that it is not a problem related to the maximum length for SE files, since it also means that other times it works. What can happen is that you might have other SE going on, which would overwrite the previous one.but sometime it cuts off before it can finish.
Yes, there is. You could alias the Graphics.update method, which is the one called every frame, get the current BGS position using Audio.bgs_pos, and call Audio.bgs_stop if the current position is the final position for that audio file. Anyway, doing that requires a script, no matter what.is there a way to stop BGS from looping?