Modules & Apps
Three independent collections of toggles:
- Modules — high-level feature groups (vehicle control, music, autopilot, weather, cameras, …)
- Dock Buttons — individual buttons on the bottom dock (lock, engine, headlights, …)
- Apps — sidebar icons (map, music, weather, notes, games, settings, security cam)
Modules
Config.Modules controls which top-level feature groups are visible / active:
Config.Modules = {
VehicleControl = true, -- Dock buttons (lock, engine, lights, etc.)
MusicPlayer = true, -- Music player & playlists
AutoPilot = true, -- GPS autopilot navigation
Weather = true, -- Weather widget
RearCamera = true, -- Rear camera view
SecurityCamera = true, -- Security camera (360° sentry mode)
SpeedLimiter = true, -- Speed limiter in settings
AutoPark = true, -- Auto park hologram placement
Suspension = true, -- Suspension ride height adjustment
DashCam = true, -- Dashcam recording system
}
Setting any of these to false removes the entire feature surface — UI, dock buttons, settings panes, key handlers — without further config changes needed.
Dock Buttons
Config.DockButtons controls individual dock button visibility (when the VehicleControl module is enabled):
Config.DockButtons = {
lock = true, -- Vehicle lock/unlock
engine = true, -- Engine on/off
headlights = true, -- Toggle headlights
hazards = true, -- Toggle hazard lights
interiorLight = true, -- Toggle interior light
windows = true, -- Roll windows up/down
trunk = true, -- Open/close trunk
doors = true, -- Open/close individual doors & hood
seats = true, -- Seat switcher popup
volume = true, -- Volume slider popup
rearCamera = true, -- Rear camera view
autoPark = true, -- Auto park hologram
dashCam = true, -- Dashcam recording
}
Each button can be hidden individually. The dock auto-collapses around hidden buttons.
Apps Sidebar
Config.Apps is an array (order matters) of app entries, each with its own enabled flag and permission arrays:
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 Fields
| Field | Type | Description |
|---|---|---|
id | string | Internal app identifier — used by the React router |
icon | string | Icon path (relative to ui/ — typically ./apps/<name>.png) |
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 |
See Permission System for OR-logic details.
Reordering
The order of entries in the array determines the order in the sidebar (top-to-bottom). To move "Settings" to the top:
Config.Apps = {
{id = "settings", ...}, -- now first
{id = "map", ...},
{id = "music", ...},
-- ...
}
Disable an App
Set enabled = false — the app no longer appears in the sidebar regardless of permissions.
Job/Role Gate
Restrict to a specific job:
{id = "securitycam", icon = "./apps/securitycam.png", enabled = true, jobs = {"police"}, discordRoles = {}}
Restrict to a Discord role only (donor):
{id = "games", icon = "./apps/game.png", enabled = true, jobs = {}, discordRoles = {"123456789012345678"}}
Both job OR role match grants access:
{id = "notes", icon = "./apps/note.png", enabled = true, jobs = {"admin"}, discordRoles = {"123456789012345678"}}
