Server

Manipulate the sound

If you don't pass -1 to source, sound will not be saved on the server side. So there will be no sync.

Play

local soundId = exports['mx-surround']:Play(source, soundId, url, coords, loop, volume, panner)

This export is a synchronous function, which means that this code returns a soundId to you. And if sound is not created, it returns false

Parameters

  • source: number

    • You can pass -1 for sync

  • soundId?: string

    • If not provided, will be created automatically

  • url: string

  • coords: vector3

    • Unlike the client side the coords param is required on the server side

  • loop?: boolean

  • volume?: number

    • Override default volume (even if sound profile is enabled)

  • panner?: PannerNode

Returns

  • soundId | false


Play Async

local soundId = exports['mx-surround']:PlayAsync(source, soundId, url, coords, loop, volume, panner, data)

This export does not return the soundId compared to the above. However, it works faster and you can connect the sound directly to an entity or player at startup. Very useful for asset sounds

It should only be used for asset sounds, DO NOT use it for youtube, spotify and soundcloud!

Parameters

  • source: number

    • You can pass -1 for sync

  • soundId?: string

    • If not provided, will be created automatically

  • url: string

  • coords: vector3

    • Unlike the client side the coords param is required on the server side

  • loop?: boolean

  • volume?: number

    • Override default volume (even if sound profile is enabled)

  • panner?: PannerNode

  • data?: { attachEntity: number, attachPlayer: number }


Stop

exports['mx-surround']:Stop(source, soundId)

Parameters

  • source: number

  • soundId: string


Pause

exports['mx-surround']:Pause(source, soundId)

Parameters

  • source: number

  • soundId: string


Resume

exports['mx-surround']:Resume(source, soundId)

Parameters

  • source: number

  • soundId: string


Destroy

exports['mx-surround']:Destroy(source, soundId)

Parameters

  • source: number

  • soundId: string


Destroy All

exports['mx-surround']:destroyAllSounds()

Attach Entity

exports['mx-surround']:attachEntity(source, soundId, networkId)

Parameters

  • source: number

  • soundId: string

  • networkId: number


Detach Entity

exports['mx-surround']:detachEntity(source, soundId)

Parameters

  • source: number

  • soundId: string


Attach To Player

If you are going to attach to a player, you can of course use the attachEntity. But you should definitely use this. Because if the player gets in the car, the script detects it with this export and filters the sound.

exports['mx-surround']:attachPlayer(source, soundId, playerId)

Parameters

  • source: number

  • soundId: string

  • playerId: number


Detach From Player

exports['mx-surround']:detachPlayer(source, soundId)

Parameters

  • source: number

  • soundId: string


Last updated