How To Use Sound Effects In Puzzle Script

Join the Discord. Talk about Game Dev. Talk about Gaming.

You’ve made a fantastic Puzzle Script game, but now you want to add sounds to it. How do you do it? This tutorial will show you! It assumes no prior programming knowledge except the previous Puzzle Script tutorials I have written. If you’re using Puzzlescript to prototype a bigger game, this is a great way to test out some early sound effects, which I did with Puzzledorf. If you like the retro sounds, BFXR is a great tool to recreate the same sort of effects for commercial projects.

Generating Sounds

Open the sample project. Let’s make some sound effects. Underneath the game screen, you will notice black squares with white symbols. These are for sound generation. Each symbol generates a unique type of sound, and the cross clears the sounds you’ve made. Try clicking a few and see what sounds you get.


The yellow numbers are the unique codes that you will copy and paste into your code where you want to use the sounds.

How To Use The Sounds

Once you’ve found a sound you like, you need to do to put it in the Sounds section of your game’s code.


There are a few ways to use sounds. The most basic is to create a new sfx. They must be numbered. You create a new sfx by giving it a number from 0 – 10 then pasting the numbered ID of the sound. In the Sounds list, make a new sfx called sfx0 and assign a sound you’ve generated, like below:

sfx0 36301705

To use an sfx sound, you must put it in the rules of your script after an event. Let’s attach the new sfx0 you created to the event where we destroy a crate (the event is already in the sample project), like below:

(The player destroys a crate)
[ > Player | CrateVanish ] -> [ Player | ] sfx0

Sounds can also be declared to play with certain events, eg:

Crate MOVE 36772507 

It plays a sound whenever a Crate is moved. Generate a new sound effect for when you pull CratePull objects and make it play when CratePull moves, like so:

CratePull MOVE 12735307

 Event sounds only need to be declared in the Sounds section: they do not need to be mentioned in the rules.

List of Ways to Play Sounds

The following is a list of different Event Sounds you can use, taken from the Puzzle Script documentation.

Object Action 541566
Plays when an object is subject to the 'action' during a turn

Object Create 641667
Plays when the specific object is created.

EndGame 5416789
Plays when the game finishes.

EndLevel 6417822
Plays when you finish a level.

Object CantMove 781673
Plays when that object unsuccessfully moves, in any direction

Player CantMove Down Left 464674
Plays when that object unsuccessfully moves, either down or left.

CloseMessage 344456
Plays when the player closes a message window

Object Destroy 187975
Plays when an object is destroyed.

Object Move 264567
Plays when that object successfully moves, in any direction.

Object Move Down Left 765432
Plays when that object successfully moves either down or left.

Object Move Horizontal 345367
Plays when that object successfully moves horizontally. Vertical is also valid.

Restart 7865435
Played when the player presses the restart button (R).

SFX0 765743
Can be anything form SFX0 to SFX10. These are custom sound events that can be triggered from rules.

ShowMessage 478483
Plays when a message appears.

StartGame 234626
Plays when you start a new game.

Startlevel 765436
Plays at the start of every level.

TitleScreen 876543
Plays when the title-screen is loaded.

Undo 436234
Plays when the player presses the undo button (Z).
move and cantmove can specify directions, so that certain sounds play if you move in different directions.


Here is the finished sample project. The next tutorial shows you how you can put music in to your Puzzle Script projects.

Next Tutorial >

Join the Discord. Talk about Game Dev. Talk about Gaming.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

Up ↑

%d bloggers like this: