Sound

Class for playing in-game 2D and 3D sounds.

Note

This is a Client only Class.

Note

It is not possible (yet?) to load custom sound files (.mp3, .wav…), the sounds must be pre-cooked in Unreal before used.

Usage

local my_sound = Sound(
    Vector(-510, 145, 63), -- Location (if a 3D sound)
    "NanosWorld::A_VR_Confirm", -- Asset Path
    false, -- Is 2D Sound
    true, -- Auto Destroy (if to destroy after finished playing)
    0, -- Sound Type (SFX)
    1, -- Volume
    1 -- Pitch
)

Constructor Parameters

Type

Name

Default

Vector

location (Used only if 3D sound)

Vector(0, 0, 0)

string

asset (Sound)

boolean

is_2D_sound

false

boolean

auto_destroy (if to destroy after finished playing)

true

number

sound_type (0 - SFX, 1 - Music) - Used to apply user’s volume settings

0

number

volume (0 - 1)

1

number

pitch

1

number

inner_radius (3D only)

400

number

falloff_distance (3D only)

3600

number

attenuation_function (3D only) (0 - Linear, 1 - Logarithmic, 2 - Inverse, 3 - Log Reverse, 4 - Natural Sound)

0

boolean

keep_playing_when_silent (3D only) - Whether to keep playing this sound when it’s not audible - Use with caution, it may cause performance issues!

false

Functions

Returns

Name

Description

FadeIn(number fade_in_duration, number fade_volume_level, number start_time)

Plays the sound with a fade effect

FadeOut(number fade_out_duration, number fade_volume_level)

Stops the sound with a fade effect

Play(number StartTime = 0)

Starts the sound

SetFalloffDistance(number falloff_distance)

If a 3D Sound, sets the distance which the sound is inaudible

SetInnerRadius(number inner_radius)

If a 3D Sound, sets the distance within the volume is 100%

SetLowPassFilter(number frequency)

Sets lowpass filter frequency. Sets 0 to disable it.

SetPaused(boolean pause = true)

Pauses the sound

SetPitch(number new_pitch)

Sets the Sound’s pitch

SetVolume(number new_volume)

Sets the Sound’s volume (0 - 1)

Stop()

Stops the sound

StopDelayed(number delay)

Stops the sound after the provided delay

boolean

IsPlaying()

Returns if the sound is playing

Functions (Inherited from Actor)

Returns

Name

Description

server-only-label

AddImpulse(Vector force)

Applies a Force in world coordinate on this Actor (the force is applied on Client side, by the (in most of cases) the closest player of this object)

server-only-label

AttachTo(Actor other, string bone_name, Vector relative_location, Rotator relative_rotation)

Attaches this Actor to any other Actor with a Relative Offset/Rotation

server-only-label

Destroy()

Destroys this Actor

server-only-label

SetCollision(number collision_type)

Sets the actor’s collision (0 - Normal, 1 - Static Only, 2 - No Collision)

server-only-label

SetGravityEnabled(boolean new_gravity)

Sets the actor’s gravity enabled

client-only-label

SetHighlightEnabled(boolean enabled)

Sets if this Actors is Highlighting

server-only-label

SetInitialLocation(Vector new_initial_location)

Sets the initial location

server-only-label

SetLocation(Vector new_location)

Sets the actor’s location in the game world

server-only-label

SetMaterialColorParameter(string parameter_name, Color color, number material_index = -1)

Sets a Color parameter on a material of this actor, optionally on a specific material index or -1 for all materials

server-only-label

SetMaterialScalarParameter(string parameter_name, number scalar, number material_index = -1)

Sets a Scalar parameter on a material of this actor, optionally on a specific material index or -1 for all materials

server-only-label

SetMaterialTextureParameter(string parameter_name, string texture_path, number material_index = -1)

Loads and sets a Texture parameter on a material of this actor, optionally on a specific material index or -1 for all materials

server-only-label

SetMaterialVectorParameter(string parameter_name, Vector vector, number material_index = -1)

Sets a Vector parameter on a material of this actor, optionally on a specific material index or -1 for all materials

server-only-label

SetRotation(Rotator new_rotation)

Sets the actor’s rotation in the game world

server-only-label

SetScale(Vector Scale)

Sets the actor’s scale

server-only-label

SetTintColor(Color new_tint_color)

Sets the tint color, for completely paint an object, multiply the color by 10 or 100

SetValue(string key, any value)

Sets a value in this entity, which can be accessed by any package (local only)

TranslateTo(Vector location, number speed)

Smoothly moves this actor to a Location with a certain Speed

RotateTo(Rotator rotation, number speed)

Smoothly rotates this actor to a Rotation with a certain Speed

boolean

IsGravityEnabled()

Gets the actor’s gravity enabled

boolean

IsInWater()

Gets if the actor is in Water

boolean

IsValid()

Returns if this is Valid

number

GetCollision()

Gets the current actor’s collision

number

GetID()

Gets the network ID of this entity (same in both client and server)

Vector

GetLocation()

Get the actor’s position in the game world

server-only-label

Vector

GetInitialLocation()

Gets the initial location

Rotator

GetRotation()

Gets the actor’s rotation in the game world

Vector

GetScale()

Gets the actor’s scale

Color

GetTintColor()

Gets the Tint Color

string

GetType()

Returns the type of this Actor

any

GetValue(string key)

Gets a value given a key

client-only-label

Vector

GetVelocity()

Returns the current actor Velocity

Events

Events (Inherited from Actor)

Name

Arguments

Description

Destroy

Entity actor

Triggered when an Entity is Destroyed

Spawn

Entity actor

Triggered when an Entity is Spawned/Created

ValueChange

Entity actor,
string key,
any value

Triggered when an Entity has it’s value changed