Back to homepage
List of functions in the Lua API that affect the audio
Updated Thu, 25 May 2023 13:06:10 +0000 by Wuzzy

Lua API: Audio functions

This page is a list of all functios in the Lua API that affect the audio.

PlaySound(soundId, [gearUid [, instaVoice]])

Plays the specified sound. Possible values for soundId are listed on the Sounds page.

To play a voice (see Taunts for a list), you must also set gearUid . gearUid is the hedgehog gear which is used to “talk”.

If you play a voice, by default the voice will respect an internal queue and might be played with an delay in order to prevent annoying voice overlapping. You can disable this behaviour and force Hedgewars to instantly play the voice by also setting instaVoice to true . Only use instaVoice when you really need it.


Plays a sound as replacement for the background music. The sound is played once. The main music is paused and the sound is played instead. The main background music does not resume automatically, so you should call StopMusicSound after a while.

Example: PlayMusicSound(sndRideOfTheValkyries) -- Replace the background music the Ride of the Valkyries


Stops the specified “music sound” (if it was still playing) and resumes the main background music.

SetSoundMask(soundId, isMasked)

Disables a given sound (including taunts) from being played by the engine. soundId is a valid sound ID on Sounds or Taunts. isMasked is a boolean. If true , the sound will not be played by the engine anymore. If false , playing this sound is allowed again.

Sounds played by the Lua function PlaySound will always work, however, and ignore the sound mask.

Note: Due to the way the voices work internally in Hedgewars, if you want to play a masked voice, you have to set instaVoice to true when you call PlaySound . Otherwise, it won't work.


SetSoundMask(sndIncoming, true) -- Disable the “Incoming” sound from being played