Apps
Carplay V2 ships with nine sidebar apps. Each can be enabled / disabled and gated by jobs and Discord roles independently.
| App | Icon | Description |
|---|---|---|
| Map | map.png | Leaflet-powered map with custom places, favorites, recents |
| Music | music.png | Full music player (see Music Player) |
| Weather | weather.png | Live in-game weather widget |
| Health | health.png | Vehicle health, fuel, mileage, temperature |
| Lights | lights.png | Quick light controls (headlights, hazards, interior, fog) |
| Notes | note.png | Rich text editor with task lists |
| Games | game.png | Built-in mini-games |
| Settings | settings.png | Theme, accent color, autopilot prefs, language |
| Security Cam | securitycam.png | Sentry-mode camera (see Cameras) |
App Configuration
Apps are defined in Config.Apps as an array. Each entry has its own permissions:
Config.Apps = {
{id = "map", icon = "./apps/map.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "music", icon = "./apps/music.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "weather", icon = "./apps/weather.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "health", icon = "./apps/health.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "lights", icon = "./apps/lights.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "notes", icon = "./apps/note.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "games", icon = "./apps/game.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "settings", icon = "./apps/settings.png", enabled = true, jobs = {}, discordRoles = {}},
{id = "securitycam", icon = "./apps/securitycam.png", enabled = true, jobs = {}, discordRoles = {}},
}
Per-entry options:
| Field | Type | Description |
|---|---|---|
id | string | Internal app identifier (do not change for built-in apps) |
icon | string | Path to icon (relative to ui/) |
enabled | boolean | Show or hide the app entirely |
jobs | string[] | Allowed jobs — empty = no job restriction |
discordRoles | string[] | Allowed Discord role IDs — empty = no Discord restriction |
The combination of jobs and discordRoles follows the standard Permission System OR-logic.
Built-in Apps
Map
A Leaflet-powered map with the GTA V world (custom tiles bundled). Supports:
- Custom places — save with a name and an icon (Home / Work / Pin / Star / Heart / Fuel / Flag / Shield)
- Favorites — pin places to the favorites tab
- Recents — auto-tracks recently selected destinations
- Search — typeahead search across saved places and street names
- Set as Autopilot destination — one-tap to engage autopilot
- Set as Waypoint — places a GPS marker on the GTA V minimap
- Share My Location — broadcasts your position to nearby players
- Mark My Location — drops a pin at your current spot
Per-player saved places persist in the database under code9_carplay2.settings.
Music
See Music Player for the full feature page.
Weather
A widget showing the current in-game weather:
- Temperature (calculated from time of day + weather state)
- Conditions (sunny, clear, rainy, thunderstorm, snowy, foggy, cloudy, clear night)
- Wind speed (km/h)
- Humidity
- Visibility
- Sunrise / sunset times
- Feels-like description
The widget is read-only — admins can change weather via existing weather scripts; Carplay just displays it.
| Module flag | Default |
|---|---|
Config.Modules.Weather | true |
Health
Live vehicle telemetry:
- Engine health (0-1000)
- Body health
- Fuel (% — uses the configured fuel system)
- Mileage (uses the configured mileage system)
- Vehicle class & model name
- Vehicle color (with hex preview for custom paints)
Read-only — for diagnosis only.
Lights
Quick light controls — headlights, hazards, interior light, fog lights. Tappable toggles. Backed by the same natives the dock buttons use.
Notes
A rich text editor powered by TipTap. Supports:
- Bold / italic / underline
- Bulleted and numbered lists
- Task lists with checkboxes
- Headings (h1, h2, h3)
- Plain text
- Per-player notes saved to
code9_carplay2.settings.notes
Use cases: shopping lists, RP notes, timestamped events, in-character to-dos.
Games
A small collection of built-in mini-games for boredom moments. The exact list ships with the React build — see web/src/pages/games/.
Settings
The settings panel:
- Profile — change name, change avatar (from 85 presets or custom URL)
- Theme — light / dark / custom (custom lets you pick any accent color via hex picker)
- Accent color — only shown when Theme = custom
- Volume cap — set personal max output (under server cap)
- Autopilot Settings — toggle the 17 driving behavior flags
- Speed Limiter Presets — quick-toggle the configured presets
- Suspension — preset selector + custom slider + auto-lower threshold
- Language — switch displayed locale at runtime (no resource restart needed)
Security Cam
See Cameras → Security Camera.
Adding a Custom App
The script architecture supports adding custom apps, but it requires both Lua module work and React page work in web/src/pages/. Build the web/ directory after edits (see installation guide). For developers building custom apps, add an entry to Config.Apps with your new id and a matching React route in the router.
