GameMaker (2.0 - 2.2.x)

Sound System


You must be logged in to obtain assets


    SOUNDSYSTEM Version 1 - July2019 - GMS:2

The 'SoundSystem' audio playing system is not for everyone, many people may prefer to handle their audio playing and queues using the pre-existing GMS:2 audio playing functions. This is for those that like to have very simple script to use and a pre-made object that all you have to do is change the song list in the Create event and place it in the room, and you're pretty much all set. I find a single script with the ability to set pitch, gain, pause/resume and get the status and name of the current song is incredibly useful. Check out the pre-existing GMS:2 functions such as queues, buffers, etc and decide what you like! If you decide this system isn't for you, or your project, I ask at the least that you listen to the songs provided, and check our/support the creators (see bottom of this script for credit)!

The only object you need to keep is parSoundBox. The only script you need to keep is SoundSystem. Everything else is for quality of life or for show.

The SoundSystem script can be used to easily play audio at a set volume, pitch, and priority. Additionally you can use the same script to pause/resume or get the audio name and length. Argument 1 = SoundIndex (SongName) Argument 2 = Speed (1 should be default.) Argument 3 = Volume (1 should be default.) Argument 4 = Priority (Between this and other potentially playing audio.) Argument 5 (Start/Resume/Pause/Check) 0 - Start 1 - Pause 2 - Resume 3 - Check audio status/sound index name (recommended you call this in a draw text event.) Copy and paste the below code and change the sound ingex for simplicity: ____________________________________________________ SoundSystem(snd_song,1,1,1,0,0) ; //Play the song normally. SoundSystem(snd_song,0,0,0,0,1) ; //Pause the current song, won't restart or affect the current settings. SoundSystem(snd_song,0,0,0,0,2) ; //Resume the current song, won't restart or affect the current settings. SoundSystem(sng_song,0,0,0,0,3) ; //Check the audio status, won't replay the song or affect the current settings. _____________________________________________________

If you want to pause/resume the current song without all that you can simply use Pause_or_Resume().

parSoundBox contains a list of songs in the create event. If the player shouldn't have control over the audio selection, you'll want to turn off the variable 'Controls.' If songs should loop infinitely, set the variable 'Loop' to 1. If it should just go to the next song, 0.

To change buttons for controls, go to the step event.

To change the song outside of the normal controls/settings just change the Song# and add alarm[3] = 10.

If you want a randomized selection use this :

if YourVariable == 1 {

Song = 1 + irandom(11) ;
alarm[3] = 10 ;


If you want the system to randomize the selection every time, change the variable Randomize to 1.

The normal settings currently let you pause/resume the song by pressing space if the player has Controls enabled. If you want to use it outside of that, use this code as a base:

if YourVariable == 1 {

if audio_is_paused(SongGet){ //Check if our audio is paused.

    SoundSystem(SongGet,0,0,0,0,2) ;//Resume the audio

} else {//If our audio isn't paused.

    SoundSystem(SongGet,0,0,0,0,1) ;//Pause the audio.



or simply use Pause_or_Resume() i.e: if keyboard_check_pressed(vk_space){//3

Pause_or_Resume() ;



    Tyler Blair-FFGames
    [email protected]
    Check me out on OpenGameArt, see how bad I am at pixel-art :)!
    No credit required to be given if you use this audio system, but it's always nice.

    1.BGM_Stage_1_DirtyRats and BGM_Boss 
    Owned by: Mason Blair
    Distribution and use for retail projects not authorized.
    Original sound track for upcoming retro game. Like what you hear? Message me for more information.

    2.Art, Birthday, Borealis, CrispyTown, DeathDay, ElectroGlobe, Funky, Machinarium, Pandora, Pipeline
    Owned by: Szymon Matuszewski
    License(s): CC3.0
    Check him out on soundcloud! 
    or support him on OpenGameArt!

End User Licence Agreement (EULA).

Age Rating: 4+


GMS2 - Version 0.0.0. Published July 14, 2019

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait