Skip to main content

Modules & Apps

Per-module on/off toggles, dock button visibility, and the Apps array (sidebar icons + permissions).

This section

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:

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

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

lua
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

FieldTypeDescription
idstringInternal app identifier — used by the React router
iconstringIcon path (relative to ui/ — typically ./apps/<name>.png)
enabledbooleanShow or hide the app entirely
jobsstring[]Allowed jobs — empty = no job restriction
discordRolesstring[]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:

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

lua
{id = "securitycam", icon = "./apps/securitycam.png", enabled = true, jobs = {"police"}, discordRoles = {}}

Restrict to a Discord role only (donor):

lua
{id = "games", icon = "./apps/game.png", enabled = true, jobs = {}, discordRoles = {"123456789012345678"}}

Both job OR role match grants access:

lua
{id = "notes", icon = "./apps/note.png", enabled = true, jobs = {"admin"}, discordRoles = {"123456789012345678"}}