Configuration

Complete reference for all oxide-carplay configuration settings

Reference for the current oxide-carplay config and persisted settings layout.

Config File Map

FilePurpose
shared/config.luaGeneral settings
shared/config/carplay.luaCarPlay, mini-player, Quick Nav, jailbreak
locales/en.jsonPlayer-facing strings and keybind labels
server/main.luaSaved settings and playlist persistence callbacks

General Settings

File: shared/config.lua

SettingTypeDefaultDescription
Config.DebugbooleanfalseEnable debug logging with [oxide-carplay] prefix

CarPlay Settings

File: shared/config/carplay.lua

SettingTypeDefaultDescription
Config.CarPlay.EnabledbooleantrueEnable the main CarPlay system
Config.CarPlay.Keybindstring'M'Key used for the carplay command
Config.CarPlay.KeybindDescriptionstring'keybind.carplay'Locale key for the main keybind label
Config.CarPlay.DefaultVolumenumber50Default playback volume
Config.CarPlay.MaxQueueSizenumber20Maximum queue size
Config.CarPlay.AudioRangenumber12.0Open-vehicle hearing range
Config.CarPlay.AudioRangeClosednumber2.0Closed-vehicle hearing range
Config.CarPlay.VolumeMultClosednumber0.15Volume multiplier for sealed vehicles
Config.CarPlay.SpeedRangeBonusnumber0.25Extra hearing range added from vehicle speed
Config.CarPlay.PositionUpdateIntervalnumber150xsound position update interval in ms
Config.CarPlay.ProximityScanIntervalnumber2000Nearby playback scan interval in ms
Config.CarPlay.MaxPlaylistsnumber10Maximum saved playlists per character
Config.CarPlay.MaxPlaylistTracksnumber50Maximum tracks per saved playlist
Config.CarPlay.MapUpdateIntervalnumber500Map data refresh interval in ms

Audio behavior

  • AudioRange and AudioRangeClosed determine how far playback can be heard outside the vehicle.
  • VolumeMultClosed controls how muffled the vehicle sounds when doors and windows are closed.
  • SpeedRangeBonus increases effective range as vehicle speed rises.
  • The resource handles attenuation itself and uses xsound mainly for 3D positioning and playback.

Mini-Player Settings

File: shared/config/carplay.lua

Config.CarPlay.MiniPlayer controls the floating player shown after closing the main UI while music is still playing.

SettingTypeDefaultDescription
EnabledbooleantrueEnable the floating mini-player
Positionstring'bottom-right'Default mini-player position
PauseKeystring'Y'Pause/resume keybind default
NextKeystring'U'Next-track keybind default
RepeatKeystring'I'Repeat-mode keybind default

Allowed default positions:

  • top-left
  • top-right
  • bottom-left
  • bottom-right
  • bottom-center

Quick Nav Locations

File: shared/config/carplay.lua

Config.CarPlay.QuickNav defines marker and waypoint groups used by the map screen.

GroupDefault StateDescription
gaspopulatedGas station locations
storeemptyConvenience store locations for your server
garagepopulatedGarage locations

Behavior:

  • the map screen renders these as markers
  • Quick Nav buttons exist for gas, store, and garage
  • pressing a Quick Nav button sets a waypoint to the nearest configured location in that category

Jailbreak Settings

File: shared/config/carplay.lua

SettingTypeDefaultDescription
Config.Jailbreak.EnabledbooleantrueEnable the jailbreak feature
Config.Jailbreak.RequiredItemstring'carplayjb_usb'Item required to start jailbreak
Config.Jailbreak.RemoveItembooleantrueRemove the item on successful jailbreak
Config.Jailbreak.Durationnumber8000Progress bar duration in ms
Config.Jailbreak.AnimDictstring'anim@amb@clubhouse@tutorial@bkr_tut_ig3@'Animation dictionary
Config.Jailbreak.AnimNamestring'machinic_loop_mechandplayer'Animation name
Config.Jailbreak.AnimFlagsnumber16Animation flags
Config.Jailbreak.Difficultystring'medium'Circuit-trace difficulty
Config.Jailbreak.ProgressLabelstring'config.progress_jailbreaking'Locale key for progress bar label

Difficulty values

  • easy
  • medium
  • hard

Jailbreak POIs

Config.Jailbreak.POIs defines the extra POI markers shown on the map after a successful jailbreak.

Important:

  • these are revealed as map markers, not as a normal Quick Nav button category
  • the default coordinates in the config are placeholder/example coordinates and should be replaced for production use
  • jailbreak state is stored on the current vehicle's statebag, so each vehicle must be jailbroken separately

Persisted Player Settings

File: server/main.lua

The resource also stores per-character player preferences through KVP-backed callbacks. These are not server-owner config values.

SettingTypeDefaultDescription
themeColorstring'#1DB954'UI accent color
miniPlayerEnabledbooleantrueWhether the floating mini-player should show
miniPlayerPositionstring'bottom-right'Saved preferred mini-player position
albumArtSpinbooleantrueSpin album art while a track is playing
defaultVolumenumber50Preferred default volume when nothing is currently playing

Playlist Persistence

File: server/main.lua

Playlists are stored per character under resource KVP keys in the form:

carplay:char:{characterId}

Limits enforced by the current code:

  • max playlists per character: Config.CarPlay.MaxPlaylists
  • max saved tracks per playlist: Config.CarPlay.MaxPlaylistTracks
  • playlist names are sanitized and trimmed before saving

Locale and Keybind Strings

File: locales/en.json

Notable locale groups:

PrefixDescription
nui.*Main UI labels, weather labels, nav labels, settings labels, jailbreak text
config.*Configurable progress-bar label
keybind.*Main CarPlay and mini-player keybind labels

Current keybind locale keys:

  • keybind.carplay
  • keybind.carplay_mp_pause
  • keybind.carplay_mp_next
  • keybind.carplay_mp_repeat

Next Steps

  • INSTALLATION.md
  • FEATURES.md
  • TROUBLESHOOTING.md