Skip to main content

Vehicle Control

Vehicle control dock — lock, engine, lights, doors, windows, trunk, seats and quick-access shortcuts.

This section

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

ButtonDescriptionConfig flag
LockLock / unlock vehicle (multi-system support)Config.DockButtons.lock
EngineToggle engine on / offConfig.DockButtons.engine
HeadlightsToggle headlightsConfig.DockButtons.headlights
HazardsToggle hazard lightsConfig.DockButtons.hazards
Interior LightToggle interior lightConfig.DockButtons.interiorLight
WindowsRoll all windows up/down (popup with per-window control)Config.DockButtons.windows
TrunkOpen / close trunkConfig.DockButtons.trunk
DoorsOpen / close individual doors and hood (popup)Config.DockButtons.doors
SeatsSwitch between vehicle seats (popup with seat icons)Config.DockButtons.seats
VolumeOpen volume slider popupConfig.DockButtons.volume
Rear CameraActivate rear camera viewConfig.DockButtons.rearCamera
Auto ParkOpen hologram placement systemConfig.DockButtons.autoPark
DashCamOpen 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:

lua
Config.VehicleLockSystem = "default" -- "default" | "cd_garage" | "qb-vehiclekeys" | "qs-vehiclekeys"
SystemNative call
defaultSetVehicleDoorsLocked(vehicle, 2) + SetVehicleDoorsLockedForAllPlayers
cd_garageTriggerEvent('cd_garage:SetVehicleLocked', vehicle)
qb-vehiclekeysTriggerServerEvent('qb-vehiclekeys:server:setVehLockState', plate, 2)
qs-vehiclekeysTriggerEvent('qs-vehiclekeys:client:LockVehicle', plate)

Engine Toggle

The engine button uses native SetVehicleEngineOn and SetVehicleUndriveable. Players can also bind a separate engine command:

lua
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:

lua
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:

lua
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

OptionDefaultDescription
Config.Modules.VehicleControltrueShow the vehicle control dock at all