Project OutFox Wiki
Project OutFox home View the OutFox Wiki source on GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Controlling Sound

The Def.Sound actor is part of RageSound, another component in the engine that deals with audio, and they both work together to provide playback of said sounds. That said, in order to control specific elements from them, you must understand how to access them.

Only using commands directly inside Def.Sound will provide commands related to the sound actor; to use commands related to its RageSound component, you must get() the component.

-- To control actions like volume, you need to access the ActorSound's RageSound, by using the get function.
local MyRageSound = self:get()

With this object obtained, you can control elements like the sound’s position, volume, pitch and speed. Note that some components need some flags to be enabled which have been pointed out as commments alongside them.

-- This function will return the value for the Def.Sound's RageSound component, which allows for expanded
-- controls.
local MyRageSound = self:get()

MyRageSound:volume( 0.5 ) -- Changes volume (0 to 1).
MyRageSound:pitch( 1.2 ) -- Requires SupportRateChanging to work.
MyRageSound:speed( 1.4 ) -- Requires SupportRateChanging to work.

Adjusting Properties

With RageSound, you have access to different kinds of sound properties to determine how you want your sound to be played.

MyRageSound:SetParam( "Property Name", Value )

The available properties to change are detailed on the table below.

Name of Property Description
Speed Determines how fast the speed will play.
Pitch Determines the notation for the sound’s tune.
StartSecond Sets the initial time of the sound to play.
LengthSeconds Sets the length of the sound.
FadeInSeconds How long the audio transition to full volume at the start.
FadeSeconds / FadeOutSeconds How long the audio transition to silence at the end.
Volume How loud will the sound be (0 to 1 value).