Installation

Step-by-step instructions for installing and configuring oxide-carplay

Prerequisites

Required Resources

ResourceVersionPurpose
community_bridgeLatestFramework and resource abstraction layer
ox_libLatestShared utilities, callbacks, locale system
xsoundLatest3D positional audio for music playback

Community Bridge is available for download in our Discord server. Make sure you have the latest version installed before proceeding.

Community Bridge automatically detects and bridges your framework (QBCore, ESX, etc.), target system, inventory system, and notification system. No manual configuration is needed for these.

Supported Systems (via Community Bridge)

SystemSupported Options
FrameworkQBCore, ESX, QBox, and more
Inventoryox_inventory, qb-inventory, and more
Notifyox_lib, QBCore, ESX, and more

No Database Required

oxide-carplay uses FiveM's built-in KVP (Key-Value Pair) storage for playlist persistence. There is no SQL file to import and no database tables to create.

Installation Steps

1. Download

Place the oxide-carplay folder in your resources directory:

resources/
└── [your-folder]/
    └── oxide-carplay/

2. Add to Server Config

Add to your server.cfg, ensuring it starts after all dependencies:

ensure ox_lib
ensure community_bridge
ensure xsound
ensure oxide-carplay

3. Configure Settings

Configuration is split across two files in shared/:

shared/
├── config.lua              -- Core settings (Debug)
└── config/
    └── carplay.lua         -- CarPlay and Jailbreak settings

Review and customize shared/config/carplay.lua for your server:

-- Key settings to review:
Config.CarPlay.Keybind = 'M'              -- Key to open CarPlay
Config.CarPlay.DefaultVolume = 50         -- Starting volume (0-100)
Config.CarPlay.AudioRange = 12.0          -- How far music is audible (meters)
Config.CarPlay.MaxQueueSize = 20          -- Max songs in queue
Config.CarPlay.MaxPlaylists = 10          -- Max saved playlists per character
Config.CarPlay.MaxPlaylistTracks = 50     -- Max tracks per playlist

See the Configuration Reference for all options.

4. Customize Locale Strings (Optional)

All player-facing text can be customized in locales/en.json. This is the primary way to personalize the UI — change button labels, placeholder text, weather names, and jailbreak messages to fit your server's theme.

See Configuration — Locale Strings for a full key listing.

Item Setup

The jailbreak system requires a carplayjb_usb item registered in your inventory resource. If you do not want the jailbreak feature, you can skip this step — CarPlay functions normally without it.

Registering the Item

Add the item to your inventory resource's item list. The exact method depends on your inventory system:

ox_inventory — Add to data/items.lua:

['carplayjb_usb'] = {
    label = 'Suspicious USB',
    weight = 100,
    stack = false,
    description = 'A USB drive with custom firmware. Looks like it could modify vehicle systems.',
},

qb-inventory — Add to shared/items.lua:

carplayjb_usb = { name = 'carplayjb_usb', label = 'Suspicious USB', weight = 100, type = 'item', image = 'carplayjb_usb.png', unique = true, useable = true, shouldClose = true, description = 'A USB drive with custom firmware.' },

Item Image

An item image is included at oxide-carplay/carplayjb_usb.png. Copy this file to your inventory resource's image directory (e.g., ox_inventory/web/images/ or qb-inventory/html/images/).

Verification

1. Start Server

Start your server and check for errors in the console. Enable debug mode temporarily to see startup messages:

Config.Debug = true  -- in shared/config.lua

2. Test CarPlay

  1. Join the server
  2. Enter any vehicle as the driver
  3. Press M (default keybind) to open CarPlay
  4. Paste a YouTube URL and press Play
  5. Verify audio plays through xsound

3. Test Passenger Sync

  1. Have a second player enter the same vehicle
  2. Play a song from the driver seat
  3. Verify the passenger hears the same audio
  4. Exit the vehicle and walk away — verify audio fades with distance

4. Test Navigation Map

  1. Open CarPlay and switch to the Map tab
  2. Verify the tiled map loads with your player position
  3. Tap a Quick Nav category (Gas, Store, Garage) to set a waypoint