Skip to content


This event is triggered when the game is about to play a sound from a sound generator, with tes3.say() or with tes3.playSound() with soundPath passed.

--- @param e addTempSoundEventData
local function addTempSoundCallback(e)
event.register(tes3.event.addTempSound, addTempSoundCallback)


This event can be filtered based on the sound event data.


This event supports blocking by setting e.block to true or returning false. Blocking the event prevents vanilla behavior from happening. For example, blocking an equip event prevents the item from being equipped.


An event can be claimed by setting e.claim to true, or by returning false from the callback. Claiming the event prevents any lower priority callbacks from being called.

Event Data⚓︎

  • flags (number): Read-only. A flag whether the sound is looping or not. 0 means the sound doesn't loop, 1 means the sound loops.
  • isVoiceover (boolean): A flag whether the sound is a voiced line, which are usually found in the Sound\Vo data folder.
  • path (string): The path to the sound to play, relative to Data Files\Sounds. For some sounds, path can be an empty string.
  • pitch (number): The pitch-shift multiplier. For 22kHz audio (most typical) it can have the range [0.005, 4.5]; for 44kHz audio it can have the range [0.0025, 2.25].
  • reference (tes3reference, nil): The reference which is emiting the sound.
  • sound (tes3sound): The sound object about to be played.
  • volume (number): The volume of the sound. In range [1, 250].