Configuration

Complete reference for all oxide-carplay configuration settings

Config File Map

FileSettingsPurpose
shared/config.luaDebugCore settings and Config init
shared/config/carplay.luaCarPlay, Jailbreak, QuickNavMusic player, audio, playlists, navigation, jailbreak

Core Settings

File: shared/config.lua

Basic resource configuration.

SettingTypeDefaultDescription
Config.DebugbooleanfalseEnable debug console output
Config.Debug = false

CarPlay Settings

File: shared/config/carplay.lua

Configure the music player, audio system, and playlist limits.

SettingTypeDefaultDescription
Config.CarPlay.EnabledbooleantrueEnable or disable the CarPlay system
Config.CarPlay.Keybindstring'M'Key to open CarPlay (vehicle only)
Config.CarPlay.KeybindDescriptionstring'keybind.carplay'Locale key for keybind label
Config.CarPlay.DefaultVolumenumber50Starting volume (0-100)
Config.CarPlay.MaxQueueSizenumber20Maximum tracks in the queue
Config.CarPlay.AudioRangenumber12.0Hearing distance in meters (open vehicle)
Config.CarPlay.AudioRangeClosednumber2.0Hearing distance in meters (closed vehicle)
Config.CarPlay.VolumeMultClosednumber0.15Volume multiplier when windows/doors closed
Config.CarPlay.SpeedRangeBonusnumber0.25Extra audio range per unit of vehicle speed
Config.CarPlay.PositionUpdateIntervalnumber1503D audio position tracking interval in ms
Config.CarPlay.ProximityScanIntervalnumber2000Nearby vehicle music discovery interval in ms
Config.CarPlay.MaxPlaylistsnumber10Maximum saved playlists per character
Config.CarPlay.MaxPlaylistTracksnumber50Maximum tracks per playlist
Config.CarPlay.MapUpdateIntervalnumber500Navigation map position refresh interval in ms
Config.CarPlay = {
    Enabled = true,
    Keybind = 'M',
    KeybindDescription = 'keybind.carplay',
    DefaultVolume = 50,
    MaxQueueSize = 20,
    AudioRange = 12.0,
    AudioRangeClosed = 2.0,
    VolumeMultClosed = 0.15,
    SpeedRangeBonus = 0.25,
    PositionUpdateInterval = 150,
    ProximityScanInterval = 2000,
    MaxPlaylists = 10,
    MaxPlaylistTracks = 50,
    MapUpdateInterval = 500,
}

Audio Tuning

Open vehicle range: When doors or windows are open, music is audible up to AudioRange meters away. At highway speeds, the effective range increases by SpeedRangeBonus per speed unit.

Closed vehicle muffling: When all doors and windows are closed, the hearing range shrinks to AudioRangeClosed and volume is scaled by VolumeMultClosed (15% of normal by default). This simulates muffled bass heard from inside a closed car.

Position tracking: The PositionUpdateInterval controls how often xsound positions update to follow the vehicle. Lower values give smoother audio tracking but use more CPU. 150ms is a good balance.

Quick Nav Locations

File: shared/config/carplay.lua

Configure the GPS waypoint locations for each Quick Nav category. Each entry is a vector3 coordinate. When a player taps a Quick Nav button, the system finds the closest location and sets it as their GPS waypoint.

Gas Stations

27 gas station locations are included by default, covering all of San Andreas.

Config.CarPlay.QuickNav = {
    gas = {
        vector3(49.4187, 2778.793, 58.043),
        vector3(263.894, 2606.463, 44.983),
        -- ... 25 more locations
    },
}

Stores

Empty by default. Add vector3 coordinates for convenience store locations:

Config.CarPlay.QuickNav.store = {
    vector3(25.7, -1347.3, 29.5),
    -- Add your store locations here
},

Garages

5 garage locations included by default:

Config.CarPlay.QuickNav.garage = {
    vector3(211.51, -934.81, 24.28),
    vector3(926.77, -2.92, 77.76),
    vector3(-324.70, -776.75, 32.96),
    vector3(274.29, -334.15, 44.92),
    vector3(-773.12, -2033.04, 8.88),
},

Add or remove locations to match your server's garage positions.

Jailbreak Settings

File: shared/config/carplay.lua

Configure the jailbreak system that unlocks hidden POI locations on the navigation map.

SettingTypeDefaultDescription
Config.Jailbreak.RequiredItemstring'carplayjb_usb'Inventory item required to jailbreak
Config.Jailbreak.RemoveItembooleantrueConsume 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'Minigame difficulty (easy, medium, hard)
Config.Jailbreak.ProgressLabelstring'config.progress_jailbreaking'Locale key for progress bar text
Config.Jailbreak = {
    RequiredItem = 'carplayjb_usb',
    RemoveItem = true,
    Duration = 8000,
    AnimDict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
    AnimName = 'machinic_loop_mechandplayer',
    AnimFlags = 16,
    Difficulty = 'medium',
    ProgressLabel = 'config.progress_jailbreaking',
}

Difficulty Levels

LevelDescription
easyFewer wires, simpler paths, more time
mediumModerate wire count and complexity
hardMore wires, complex paths, less time

POI Locations

Hidden locations revealed on the map after a successful jailbreak. Add, remove, or modify vector3 coordinates:

Config.Jailbreak.POIs = {
    vector3(712.67, -962.49, 30.41),       -- Vinewood area
    vector3(-1054.71, -1587.40, 4.68),     -- LSIA warehouse
    vector3(1391.77, 3604.72, 38.94),      -- Sandy Shores
    vector3(2434.09, 4968.39, 46.81),      -- Grapeseed
    vector3(-56.49, 6341.61, 31.38),       -- Paleto Bay
    vector3(1087.02, -3195.87, -38.99),    -- Underground bunker
    vector3(-1170.65, -1571.40, 4.66),     -- Airport hangar
    vector3(486.18, -3339.85, 6.07),       -- Port of LS dock
}

Locale Strings

File: locales/en.json

All player-facing strings are driven by locale files using ox_lib's i18n system. Override or translate any string by editing locales/en.json or adding a new locale file (e.g., locales/es.json).

Key Categories

PrefixCountDescription
nui.*55UI labels, buttons, status text
nui.weather_*12Weather type display names
nui.nav_*4Quick Nav category labels
keybind.*1Keybind display name
config.*1Progress bar label

Notable Keys

KeyDefault ValueDescription
nui.url_placeholder'Paste YouTube URL or playlist...'Input field placeholder text
nui.mini_player_idle'Nothing playing'Idle state mini player text
config.progress_jailbreaking'Installing custom firmware...'Jailbreak progress bar label
nui.jailbreak_success'CarPlay jailbroken'Success notification
nui.jailbreak_fail'Jailbreak failed'Failure notification