Configuration
Complete reference for all oxide-carplayer configuration settings
Reference for the current oxide-carplayer config and persisted settings layout.
Config File Map
| File | Purpose |
|---|---|
shared/config.lua | General settings and the map mode |
shared/config/carplay.lua | Car Player, mini-player, Quick Nav, jailbreak |
locales/en.json | Player-facing strings and keybind labels |
server/main.lua | Saved settings and playlist persistence callbacks |
General Settings
File: shared/config.lua
| Setting | Type | Default | Description |
|---|---|---|---|
Config.Debug | boolean | false | Enable debug logging with [oxide-carplayer] prefix |
Config.MapMode | string | 'inherit' | How the Home and Map screens show the mainland and Cayo Perico. Saved in the database after the first start — see Shared map mode |
Car Player Settings
File: shared/config/carplay.lua
| Setting | Type | Default | Description |
|---|---|---|---|
Config.CarPlay.Enabled | boolean | true | Enable the main Car Player system |
Config.CarPlay.Keybind | string | 'M' | Key used for the carplayer command |
Config.CarPlay.KeybindDescription | string | 'keybind.carplay' | Locale key for the main keybind label |
Config.CarPlay.DefaultVolume | number | 50 | Default playback volume |
Config.CarPlay.MaxQueueSize | number | 20 | Maximum queue size |
Config.CarPlay.AudioRange | number | 12.0 | Open-vehicle hearing range |
Config.CarPlay.AudioRangeClosed | number | 2.0 | Closed-vehicle hearing range |
Config.CarPlay.VolumeMultClosed | number | 0.15 | Volume multiplier for sealed vehicles |
Config.CarPlay.SpeedRangeBonus | number | 0.25 | Extra hearing range added from vehicle speed |
Config.CarPlay.PositionUpdateInterval | number | 150 | xsound position update interval in ms |
Config.CarPlay.ProximityScanInterval | number | 2000 | Nearby playback scan interval in ms |
Config.CarPlay.MaxPlaylists | number | 10 | Maximum saved playlists per character |
Config.CarPlay.MaxPlaylistTracks | number | 50 | Maximum tracks per saved playlist |
Config.CarPlay.MapUpdateInterval | number | 500 | Map data refresh interval in ms |
Audio behavior
AudioRangeandAudioRangeCloseddetermine how far playback can be heard outside the vehicle.VolumeMultClosedcontrols how muffled the vehicle sounds when doors and windows are closed.SpeedRangeBonusincreases effective range as vehicle speed rises.- The resource handles attenuation itself and uses
xsoundmainly 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.
| Setting | Type | Default | Description |
|---|---|---|---|
Enabled | boolean | true | Enable the floating mini-player |
Position | string | 'bottom-right' | Default mini-player position |
PauseKey | string | 'Y' | Default key for the carplayer_mp_pause command (pause/resume) |
NextKey | string | 'U' | Default key for the carplayer_mp_next command (next track) |
RepeatKey | string | 'I' | Default key for the carplayer_mp_repeat command (repeat mode) |
Allowed default positions:
top-lefttop-rightbottom-leftbottom-rightbottom-center
Quick Nav Locations
File: shared/config/carplay.lua
Config.CarPlay.QuickNav defines marker and waypoint groups used by the map screen.
| Group | Default State | Description |
|---|---|---|
gas | populated | Gas station locations |
store | empty | Convenience store locations for your server |
garage | populated | Garage locations |
Behavior:
- the map screen renders these as markers
- Quick Nav buttons exist for
gas,store, andgarage - pressing a Quick Nav button sets a waypoint to the nearest configured location in that category
Jailbreak Settings
File: shared/config/carplay.lua
| Setting | Type | Default | Description |
|---|---|---|---|
Config.Jailbreak.Enabled | boolean | true | Enable the jailbreak feature |
Config.Jailbreak.RequiredItem | string | 'carplayjb_usb' | Item required to start jailbreak |
Config.Jailbreak.RemoveItem | boolean | true | Remove the item on successful jailbreak |
Config.Jailbreak.Duration | number | 8000 | Progress bar duration in ms |
Config.Jailbreak.AnimDict | string | 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@' | Animation dictionary |
Config.Jailbreak.AnimName | string | 'machinic_loop_mechandplayer' | Animation name |
Config.Jailbreak.AnimFlags | number | 16 | Animation flags |
Config.Jailbreak.Difficulty | string | 'medium' | Circuit-trace difficulty |
Config.Jailbreak.ProgressLabel | string | 'config.progress_jailbreaking' | Locale key for progress bar label |
Difficulty values
easymediumhard
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.
| Setting | Type | Default | Description |
|---|---|---|---|
themeColor | string | '#1DB954' | UI accent color |
miniPlayerEnabled | boolean | true | Whether the floating mini-player should show |
miniPlayerPosition | string | 'bottom-right' | Saved preferred mini-player position |
albumArtSpin | boolean | true | Spin album art while a track is playing |
defaultVolume | number | 50 | Preferred 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
Shared map mode
File: shared/config.lua (first-start default only)
Config.MapMode picks how the maps on the Car Player Home and Map screens show the mainland and Cayo Perico. The map itself comes from o-link (1.8.0 or newer), which owns the artwork and calibration, so this setting only chooses a mode.
| Value | What players see |
|---|---|
inherit | Default. Follow the server-wide default set in o-link |
combined | Mainland and Cayo Perico on one combined map |
separate | Separate mainland and Cayo Perico views. The Map screen gets a region selector; the compact map on the Home screen picks the region from where the vehicle is |
disabled | Mainland only — Cayo Perico and its markers are hidden |
Config.MapMode = 'inherit'Unlike the rest of this page, this one value is saved in the shared oxide_settings database table: shared/config.lua only seeds it on the first start, and the saved value wins after that. Change it live with oxide-carplayer:mapmode <value> from the server console, or /oxide-carplayer:mapmode <value> in game as an admin. Run it without a value to print the current mode to the server console.
inherit follows the server-wide default, which you set once for every Oxide resource with olink:mapmode <value> (combined, separate or disabled; o-link ships with combined). Open maps pick up a new mode without a restart.
Update o-link and oxide-carplayer together, then do a full server restart rather than restarting o-link on its own. The map tiles ship with o-link (o-link/web/map/tiles/), not with this resource.
Locale and Keybind Strings
File: locales/en.json
Notable locale groups:
| Prefix | Description |
|---|---|
nui.* | Main UI labels, weather labels, nav labels, settings labels, jailbreak text |
config.* | Configurable progress-bar label |
keybind.* | Main Car Player and mini-player keybind labels |
Current keybind locale keys and the commands they label:
| Locale key | Command |
|---|---|
keybind.carplay | carplayer |
keybind.carplay_mp_pause | carplayer_mp_pause |
keybind.carplay_mp_next | carplayer_mp_next |
keybind.carplay_mp_repeat | carplayer_mp_repeat |