Client Side Exports
These functions should be used in the client script files.
Client-side exports
API for playing audio
Play3DPos(uniqueId, position, distance, sound, volume, looped)
local sound = exports["high_3dsounds"]:Play3DPos(
"firstSound", -- uniqueId
vector3(123.0, 123.0, 123.0), -- position
50.0, -- distance
"https://www.youtube.com/watch?v=dQw4w9WgXcQ", -- sound URL or file name
1.0, -- volume
true -- looped
)Arguments
Can't be empty – *
| Argument number | Argument name | Example value |
|---|---|---|
| 1 | uniqueId* | "uniqueName" |
| 2 | position* | vector3(123.0, 123.0, 123.0) |
| 3 | distance | 50.0 |
| 4 | sound* | "fileName" OR [YouTube URL](https://www.youtube.com/watch?v=dQw4w9WgXcQ) |
| 5 | volume (0.0–1.0) | 1.0 |
| 6 | looped | false |
This export function plays a sound at a specified position.
Play3DEntity(entityNetId, distance, sound, volume, looped)
local sound = exports["high_3dsounds"]:Play3DEntity(
NetworkGetNetworkIdFromEntity(PlayerPedId()), -- entity net id
50.0, -- distance
"fileName", -- sound URL or file name
1.0, -- volume
true -- looped
)Arguments
Can't be empty – *
| Argument number | Argument name | Example value |
|---|---|---|
| 1 | entityNetId* | NetworkGetNetworkIdFromEntity(PlayerPedId()) |
| 2 | distance | 50.0 |
| 3 | sound* | "fileName" OR [YouTube URL](https://www.youtube.com/watch?v=dQw4w9WgXcQ) |
| 4 | volume (0.0–1.0) | 1.0 |
| 5 | looped | false |
This export function plays a sound on a specified entity.
Returned data from Play3D* functions
| Field | Description | Type |
|---|---|---|
| id | Sound unique id / name | string/number |
| entity | Entity ID | entity |
| url | The source/URL of the sound | string |
| playing | Is the sound playing & loaded | boolean |
| volume | Sound volume (0.0–1.0) | number |
| distance | Max distance of the sound | number |
| position | Position of the sound player | vector3 |
| vehicle | Is entity a vehicle | boolean |
| loop | Looped or not | boolean |
| timeStamp | Current timestamp of the video | number |
| duration | Audio duration in seconds | number |
| destroyOnFinish | Will the sound element be destroyed on finish | boolean |
| isConvertible | If entity is a vehicle, is it a convertible | boolean |
| vehicleClass | If entity is a vehicle, returns its class | number |
| doorCount | If entity is a vehicle, returns its door count | number |
Fields highlighted in yellow represent player-related data.
Audio manipulation API
soundVar.addEventListener(event, callback)
local sound = exports["high_3dsounds"]:Play3DPos(...) -- your arguments
sound.addEventListener("onPlay", function()
print("Playing " .. sound.id)
end)Arguments
Can't be empty – *
| Argument number | Argument name | Example value |
|---|---|---|
| 1 | event* | "onPlay" |
| 2 | callback* | function() return true end |
Events
| Event name | Description |
|---|---|
| onPlay | Triggered when the sound is fully loaded and starts playing. |
| onFinished | Triggered when the sound finishes playing. |
| onCreated | Triggered right after the sound is created. |
| onPause | Triggered when the sound gets paused. |
| onResume | Triggered when the sound gets resumed. |
This export function adds event listeners to the audio element.
soundVar.modify(field, newValue, secondValue)
local sound = exports["high_3dsounds"]:Play3DPos(...) -- your arguments
sound.modify("volume", 1.0)Arguments
Can't be empty – *
| Argument number | Argument name | Example value |
|---|---|---|
| 1 | field* | "volume" |
| 2 | newValue* | 1.0 |
| 3 | secondValue | 500 (fade time in ms) |
Modifiable fields
| Field | Type | Description |
|---|---|---|
| volume | number (0.0–1.0) | Volume level (fade time optional) |
| distance | number | Maximum audible distance |
| position | vector3 | Sound position |
| loop | boolean | Looping toggle |
| timeStamp | number (seconds) | Seek position |
| destroyOnFinish | boolean | Auto-destroy toggle |
This export function modifies the given sound value.
soundVar.destroy()
local sound = exports["high_3dsounds"]:Play3DPos(...)
sound.destroy()This export function destroys the sound element.
soundVar.replay()
local sound = exports["high_3dsounds"]:Play3DPos(...)
sound.replay()This export function replays the audio from the beginning.
Other API functions
getSound(uniqueId)
local sound = exports["high_3dsounds"]:getSound("mySound")
sound.modify("volume", 1.0)This export function retrieves the sound object.
getSoundData(uniqueId, field)
local volume = exports["high_3dsounds"]:getSoundData("mySound", "volume")
print("Sound volume: " .. volume)This export function fetches a specific data field from the sound object.
Last updated on