Skip to Content

Exports & Events

All Prism Scripts contain various export functions that can be used to interact with the script.

Server Side Exports

Audio System

These exports allow other resources to control the spatial audio system used by CarPlay’s music player.

AddAudioSource

---@param id string Unique identifier for the audio source ---@param url string URL or file path of the audio ---@param options table Audio options (volume, loop, etc.) ---@param cb function Callback when audio is ready exports['prism_carplay']:AddAudioSource(id, url, options, cb)

RemoveAudioSource

---@param id string The audio source identifier exports['prism_carplay']:RemoveAudioSource(id)

AddSpeaker

---@param id string The audio source identifier ---@param coords vector3 Speaker position ---@param options table Speaker options (range, rolloff, etc.) ---@param sid number Server ID of the entity exports['prism_carplay']:AddSpeaker(id, coords, options, sid)

PlayAudioSource

---@param id string The audio source identifier exports['prism_carplay']:PlayAudioSource(id)

PauseAudioSource

---@param id string The audio source identifier exports['prism_carplay']:PauseAudioSource(id)

ResumeAudioSource

---@param id string The audio source identifier exports['prism_carplay']:ResumeAudioSource(id)

SeekAudioSource

---@param id string The audio source identifier ---@param time number Time in seconds to seek to exports['prism_carplay']:SeekAudioSource(id, time)

SetSpeakerVolume

---@param id string The audio source identifier ---@param volume number Volume level (0.0 - 1.0) exports['prism_carplay']:SetSpeakerVolume(id, volume)

SetLoop

---@param id string The audio source identifier ---@param loop boolean Whether to loop the audio exports['prism_carplay']:SetLoop(id, loop)

Fivemanage Integration

uploadFivemanage

---@param filePath string Local file path to upload ---@param filename string Desired filename on Fivemanage ---@param callback function Callback with upload result exports['prism_carplay']:uploadFivemanage(filePath, filename, callback)

deleteFivemanage

---@param fileId string The Fivemanage file ID to delete ---@param callback function Callback with deletion result exports['prism_carplay']:deleteFivemanage(fileId, callback)

Network Events

Server Events (Client → Server)

EventDescription
prism-carplay:server:getTunerChipDataRequest tuner chip data for a vehicle
prism-carplay:server:saveTunerChipDataSave tuner chip values
prism-carplay:server:getModificationsDataRequest modification data for a vehicle
prism-carplay:server:saveModificationsDataSave modification values
prism-carplay:server:startRecordingStart dashcam recording
prism-carplay:server:stopRecordingStop dashcam recording
prism-carplay:server:getRecordingsRequest recordings list
prism-carplay:server:deleteRecordingDelete a recording
prism-carplay:server:clearAllRecordingsClear all recordings
prism-carplay:server:uploadRecordingUpload recording to Fivemanage
prism-carplay:server:playMusicPlay music on vehicle speaker
prism-carplay:server:toggleMusicToggle play/pause
prism-carplay:server:stopMusicStop music playback
prism-carplay:server:seekMusicSeek to time position
prism-carplay:server:setMusicVolumeSet music volume
prism-carplay:server:getMusicStateRequest current music state

Client Events (Server → Client)

EventDescription
prism-carplay:client:receiveTunerChipDataReceive tuner chip data
prism-carplay:client:tunerChipDataUpdatedBroadcast tuner chip changes
prism-carplay:client:receiveModificationsDataReceive modification data
prism-carplay:client:modificationsDataUpdatedBroadcast modification changes
prism-carplay:client:uploadCompleteRecording upload completed
prism-carplay:client:uploadFailedRecording upload failed
prism-carplay:client:receiveRecordingsReceive recordings list
prism-carplay:client:recordingSavedRecording saved notification
prism-carplay:client:musicStartedMusic playback started
prism-carplay:client:playbackStatusPlay/pause status update
prism-carplay:client:musicStoppedMusic playback stopped
prism-carplay:client:trackEndedTrack ended (triggers queue auto-play)
prism-carplay:client:syncMusicStateSync music state when entering vehicle

NUI Callbacks

These callbacks are used internally between the client Lua scripts and the web UI.

CallbackDescription
closeMenuClose the CarPlay UI
setWaypointSet GPS waypoint on map
toggleDoorsOpen/close all doors
toggleTrunkOpen/close trunk
toggleSeatbeltFasten/unfasten seatbelt
toggleWindowsRaise/lower all windows
toggleLockLock/unlock vehicle
toggleEngineStart/stop engine
toggleLightsToggle headlights
toggleDoorOpen/close a specific door
selectSeatMove player to a specific seat
getVehicleInfoGet current vehicle stats
getTunerChipValuesGet tuner chip settings
setTunerChipValueUpdate a tuner setting
removeTunerChipRemove installed tuner chip
getModificationsDataGet modification data
saveModificationsDataSave modification data
setDriveModeChange drive mode
startDashcamActivate dashcam view
stopDashcamDeactivate dashcam view
rotateDashcamToggle front/rear camera
startRecordingStart video recording
stopRecordingStop video recording
getRecordingsGet recordings list
deleteRecordingDelete a recording
clearAllRecordingsClear all recordings
uploadRecordingUpload recording to cloud
getMusicLibraryGet configured music library
fetchYouTubeDataFetch YouTube video metadata
playMusicPlay a song
getMusicTimeGet current playback time
toggleMusicToggle play/pause
stopMusicStop music playback
seekMusicSeek to time position
setMusicVolumeSet volume level
getMusicStateGet current music state

Data Persistence

All data is stored server-side using FiveM’s KVP (Key-Value Pair) system and persists across server restarts.

DataKVP KeyScope
Tuner chip settingstunerchip_[PLATE]Per vehicle (by plate)
Modification datamodifications_[PLATE]Per vehicle (by plate)
Dashcam recordingsdashcam_recordings_[IDENTIFIER]Per player
Last updated on