Configuration Reference
All configuration settings for MTM-PADUI are managed inside the root config.lua file. This guide provides a detailed breakdown of each configuration parameter.
Configuration Breakdown
Section titled “Configuration Breakdown”1. Language & Localization
Section titled “1. Language & Localization”MTM-PADUI includes a dynamic multi-language engine. Players can switch languages on first boot or in Settings / Control Center.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.DefaultLanguage |
string |
'nl' |
Default language code for players on first launch ('nl', 'en', etc.). |
Config.AllowLanguageSwitch |
boolean |
true |
Allows players to change languages via the Settings app and Control Center dropdowns. |
Config.Languages |
table |
nl, en |
List of available language codes and labels shown in UI selectors. |
Adding a New Language
Section titled “Adding a New Language”To add an additional language (for example, German de or French fr):
- Create a new locale file in
locales/(e.g.locales/de.js). - Add the language entry to
Config.Languages:Config.Languages = {{ code = 'nl', label = 'Nederlands' },{ code = 'en', label = 'English' },{ code = 'de', label = 'Deutsch' }} - Include the script file in
index.html:<script src="locales/de.js"></script>
2. Controls & Keybindings
Section titled “2. Controls & Keybindings”Manages chat command triggers and FiveM key mapping bindings.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.OpenCommand |
string |
'tablet' |
FiveM chat command used to toggle the tablet open or closed. |
Config.OpenKey |
string |
'F3' |
Default keyboard key mapped via RegisterKeyMapping. |
Config.KeyBindingDescription |
string |
'Open MtmPad Tablet' |
Label displayed in FiveM Settings -> Key Bindings -> FiveM. |
Config.AllowEscClose |
boolean |
true |
Allows players to close the tablet by pressing the ESC key. |
3. Ped Animation & Prop Settings
Section titled “3. Ped Animation & Prop Settings”Controls character prop attachment and upper-body animation behaviors when the tablet is active.
| Setting | Type | Default | Description |
|---|---|---|---|
Config.EnableAnimation |
boolean |
true |
Whether to play a ped holding animation and attach the tablet prop model. |
Config.AnimDict |
string |
amb@code_human_... |
Animation dictionary to request and stream. |
Config.AnimName |
string |
'idle_a' |
Animation name within the dictionary. |
Config.PropModel |
string |
'prop_cs_tablet' |
Prop model hash name to spawn and attach. |
Config.PropBone |
number |
28422 |
Ped bone index to attach the prop (28422 = Right hand / SKEL_R_Hand). |
Config.PropOffset |
vector3 |
vector3(-0.05, 0.0, 0.0) |
Positional coordinate offset relative to the bone. |
Config.PropRotation |
vector3 |
vector3(0.0, 0.0, 0.0) |
Rotational offset in degrees relative to the bone. |
4. Database & Persistence Engine
Section titled “4. Database & Persistence Engine”| Setting | Type | Default | Description |
|---|---|---|---|
Config.UseDatabase |
boolean |
true |
When true, saves player notes, settings, and installed apps to MySQL via oxmysql. When false, uses native FiveM server KVP (SetResourceKvp). |
5. Custom & External Applications
Section titled “5. Custom & External Applications”The Config.CustomApps array registers external applications and scripts into the tablet ecosystem. Each app configured here is populated into the tablet App Store catalog and/or Home Screen.
Application Schema Properties
Section titled “Application Schema Properties”| Property | Type | Description |
|---|---|---|
id |
string |
Unique identifier for the application (e.g. 'mtm_anpr'). |
name |
string |
Display title shown on the Home Screen and App Store. |
category |
string |
Main store category (e.g. 'Hulpdiensten & Politie', 'Verkeer & Infrastructuur', 'Productiviteit'). |
subCategory |
string |
Secondary category shown in store filters. |
description |
string |
Full descriptive overview shown in the App Store detail modal. |
author |
string |
Developer or agency credits. |
version |
string |
Application version tag (e.g. 'v2.6.0'). |
rating |
string |
Store rating string or certification tag. |
icon |
string |
FontAwesome icon class ('fa-solid fa-camera-retro') or image file path. |
iconBg |
string |
CSS background gradient or solid hex color for the icon tile. |
iconSvg |
string |
Optional raw <svg>...</svg> markup string. |
launchType |
string |
'iframe' for external NUI/Web pages, or 'html' for embedded markup. |
iframeUrl |
string |
Destination URL (e.g. 'nui://MTM-ANPR/uit/index.html?padui=true'). |
windowHtml |
string |
Custom HTML body when launchType = 'html'. |
clientEvent |
string |
Optional FiveM client event fired when the application opens. |
installed |
boolean |
true = Pre-installed on Home Screen; false = Requires installation via App Store. |
Full Annotated config.lua Example
Section titled “Full Annotated config.lua Example”Config = {}
-- ============================================================================-- 1. LANGUAGE & LOCALIZATION SETTINGS-- ============================================================================-- Default language code on first launch ('nl', 'en', 'de', 'fr', etc.)Config.DefaultLanguage = 'nl'
-- Allow players to switch languages dynamically in Settings / Control CenterConfig.AllowLanguageSwitch = true
-- List of languages available in Settings & Control Center dropdownsConfig.Languages = { { code = 'nl', label = 'Nederlands' }, { code = 'en', label = 'English' }}
-- ============================================================================-- 2. CONTROLS & KEYBINDINGS-- ============================================================================-- FiveM chat command used to toggle the tabletConfig.OpenCommand = 'tablet'
-- Default keyboard key to open the tabletConfig.OpenKey = 'F3'
-- Description shown in FiveM Settings -> Key Bindings -> FiveMConfig.KeyBindingDescription = 'Open MtmPad Tablet'
-- Allow users to close the tablet with ESC keyConfig.AllowEscClose = true
-- ============================================================================-- 3. ANIMATION & PROP SETTINGS (IN-GAME PED TABLET)-- ============================================================================Config.EnableAnimation = trueConfig.AnimDict = "amb@code_human_in_bus_passenger_idles@female@tablet@idle_a"Config.AnimName = "idle_a"Config.PropModel = "prop_cs_tablet"Config.PropBone = 28422Config.PropOffset = vector3(-0.05, 0.0, 0.0)Config.PropRotation = vector3(0.0, 0.0, 0.0)
-- ============================================================================-- 4. DATABASE & PERSISTENCE ENGINE-- ============================================================================-- Set to true to use oxmysql (MariaDB / MySQL). Set to false to use FiveM KVP.Config.UseDatabase = true
-- ============================================================================-- 5. CUSTOM & EXTERNAL APPLICATIONS (APP STORE CATALOG)-- ============================================================================Config.CustomApps = { -- 1. ANPR Detection & Alert System { id = 'mtm_anpr', name = 'Apex ANPR Detection', category = 'Hulpdiensten & Politie', subCategory = 'ANPR & Flitsers', description = 'Geavanceerd Automatisch Kentekenherkenning Systeem (ANPR) met live alerts, BOLO voertuig-opsporing, CCTV camera grid en voertuigtracking.', author = 'MTM Development', version = 'v2.6.0', rating = '5.0 (Politie)', icon = 'fa-solid fa-camera-retro', iconBg = 'linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%)', launchType = 'iframe', iframeUrl = 'nui://MTM-ANPR/uit/index.html?padui=true', installed = false },
-- 2. Trajectcontrole Netwerk & Snelheidsbeheer { id = 'mtm_trajectcontrole', name = 'Trajectcontrole Netwerk', category = 'Verkeer & Infrastructuur', subCategory = 'ANPR & Flitsers', description = 'Centraal beheer & interactieve kaart voor trajectcontroles, camera portalen, actieve snelheidsmetingen en matrixborden synchronisatie.', author = 'Mountain Mods', version = 'v1.2.0', rating = '5.0 (RWS/Politie)', icon = 'fa-solid fa-route', iconBg = 'linear-gradient(135deg, #0284c7 0%, #0369a1 100%)', launchType = 'iframe', iframeUrl = 'nui://MTM-TRAJECTCONTROLE/ui/index.html?padui=true', clientEvent = 'mtm-trajectcontrole:client:onOpenPadApp', installed = true }}