Vehicle Control
The Vehicle Control Center is a dock that floats at the bottom of the tablet UI. It gives the driver one-tap access to every vehicle function from inside the tablet — without leaving the seat.
Dock Buttons
| Button | Description | Config flag |
|---|---|---|
| Lock | Lock / unlock vehicle (multi-system support) | Config.DockButtons.lock |
| Engine | Toggle engine on / off | Config.DockButtons.engine |
| Headlights | Toggle headlights | Config.DockButtons.headlights |
| Hazards | Toggle hazard lights | Config.DockButtons.hazards |
| Interior Light | Toggle interior light | Config.DockButtons.interiorLight |
| Windows | Roll all windows up/down (popup with per-window control) | Config.DockButtons.windows |
| Trunk | Open / close trunk | Config.DockButtons.trunk |
| Doors | Open / close individual doors and hood (popup) | Config.DockButtons.doors |
| Seats | Switch between vehicle seats (popup with seat icons) | Config.DockButtons.seats |
| Volume | Open volume slider popup | Config.DockButtons.volume |
| Rear Camera | Activate rear camera view | Config.DockButtons.rearCamera |
| Auto Park | Open hologram placement system | Config.DockButtons.autoPark |
| DashCam | Open dashcam (live + recordings list) | Config.DockButtons.dashCam |
Set any flag to false in shared/config.lua to globally hide that button from the dock.
Vehicle Lock System
The lock button supports four lock systems out of the box. Set in shared/config.lua:
Config.VehicleLockSystem = "default" -- "default" | "cd_garage" | "qb-vehiclekeys" | "qs-vehiclekeys"
| System | Native call |
|---|---|
default | SetVehicleDoorsLocked(vehicle, 2) + SetVehicleDoorsLockedForAllPlayers |
cd_garage | TriggerEvent('cd_garage:SetVehicleLocked', vehicle) |
qb-vehiclekeys | TriggerServerEvent('qb-vehiclekeys:server:setVehLockState', plate, 2) |
qs-vehiclekeys | TriggerEvent('qs-vehiclekeys:client:LockVehicle', plate) |
Engine Toggle
The engine button uses native SetVehicleEngineOn and SetVehicleUndriveable. Players can also bind a separate engine command:
Config.EngineCommand = "engine" -- chat command (set false to disable)
Config.EngineKey = false -- enable keybind
Config.EngineDefaultKey = "U"
Config.EngineBindingDescription = "Toggle Engine"
Config.EngineKeepRunning = true -- keep engine running on exit
When EngineKeepRunning is true, the script calls SetVehicleKeepEngineOnWhenAbandoned on every vehicle the player drives — so the engine stays on after they leave the seat.
Doors / Windows / Trunk
These use FiveM natives directly. No external dependencies required:
- Doors:
SetVehicleDoorOpen/SetVehicleDoorShut - Windows:
RollDownWindow/RollUpWindow(per door index) - Trunk: door index 5
Seats Popup
The seats popup shows every available seat in the current vehicle (driver + passengers + rear). Tapping a seat warps the player to it via SetPedIntoVehicle.
Volume Popup
The volume slider controls the music player volume. Volume is per-player and persisted in the database (code9_carplay2.volume).
A server-wide cap is enforced via:
Config.MaxVolume = 100 -- 1-100; even at 100% slider, output = MaxVolume%
Vehicle Class Allowlist
Carplay can be blocked on specific vehicle classes. Default config blocks utility, cycles, planes, trains and open-wheel:
Config.AllowedTypes = {
[0] = true, -- Compacts
[1] = true, -- Sedans
[2] = true, -- SUVs
-- ...
[11] = false, -- Utility (blocked)
[13] = false, -- Cycles (blocked)
[16] = false, -- Planes (blocked)
[21] = false, -- Trains (blocked)
[22] = false, -- Open Wheel (blocked)
}
See the full class table in Vehicle & Engine.
Module Toggle
| Option | Default | Description |
|---|---|---|
Config.Modules.VehicleControl | true | Show the vehicle control dock at all |
