Installation
Step-by-step instructions for installing and configuring oxide-carplay
Prerequisites
Required Resources
| Resource | Version | Purpose |
|---|---|---|
| community_bridge | Latest | Framework and resource abstraction layer |
| ox_lib | Latest | Shared utilities, callbacks, locale system |
| xsound | Latest | 3D 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)
| System | Supported Options |
|---|---|
| Framework | QBCore, ESX, QBox, and more |
| Inventory | ox_inventory, qb-inventory, and more |
| Notify | ox_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
- Join the server
- Enter any vehicle as the driver
- Press
M(default keybind) to open CarPlay - Paste a YouTube URL and press Play
- Verify audio plays through xsound
3. Test Passenger Sync
- Have a second player enter the same vehicle
- Play a song from the driver seat
- Verify the passenger hears the same audio
- Exit the vehicle and walk away — verify audio fades with distance
4. Test Navigation Map
- Open CarPlay and switch to the Map tab
- Verify the tiled map loads with your player position
- Tap a Quick Nav category (Gas, Store, Garage) to set a waypoint