Référence de configuration MrPoulpi UI
Tous les réglages de shared/config.lua de MrPoulpi UI : framework, menu, permissions, couleurs, positions, minimap, notifications et limites.
Tout se règle dans shared/config.lua. Ce fichier est lu par le client et par le serveur : n’y mettez ni webhook ni identifiant de joueur. Après une modification, faites ensure mrpoulpi_ui (ou redémarrez le serveur).
Général
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Framework | string | 'auto' | Framework utilisé : auto, esx, qbcore, qbox, standalone ou custom. En auto, la ressource cherche qbx_core, puis es_extended, puis qb-core, et passe en standalone si aucun n’est démarré. Si le framework choisi ne répond pas, la console serveur affiche « Framework … unavailable, falling back to standalone ». |
Config.Locale | string | 'fr' | Langue des textes livrés : fr ou en. Une clé absente de la langue choisie est prise en anglais, puis affichée telle quelle. |
Config.Debug | boolean | false | Écrit dans les consoles F8 et serveur les ouvertures, fermetures, actions et erreurs des callbacks. Laissez false en production. |
Config.Animations | boolean | true | Active les animations d’entrée et de sortie de tous les éléments. false les coupe toutes. |
Accès au menu
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Command.enabled | boolean | true | Crée la commande qui ouvre le menu de démonstration. |
Config.Command.name | string | 'uimenu' | Nom de la commande, sans la barre oblique. |
Config.Keybind.enabled | boolean | true | Associe une touche à l’ouverture du menu. |
Config.Keybind.key | string | 'F7' | Touche par défaut. Chaque joueur peut la changer dans Paramètres → Raccourcis clavier → FiveM. GTA garde la touche choisie par le joueur : changer cette valeur ne modifie pas la touche des joueurs qui se sont déjà connectés. |
Config.Keybind.mapper | string | 'keyboard' | Périphérique de la touche, tel qu’attendu par RegisterKeyMapping (keyboard, mouse_button…). |
Config.Permissions.enabled | boolean | true | Réserve le menu aux joueurs autorisés ci-dessous. false l’ouvre à tout le monde. |
Config.Permissions.groups | string[] | { 'admin', 'superadmin', 'god' } | Groupes autorisés. ESX : groupe du joueur ; QBCore : permission QBCore ; dans tous les cas, l’ACE group.<nom> compte aussi. |
Config.Permissions.jobs | string[] | {} | Métiers autorisés, quel que soit le grade. Vide = aucun. |
Config.Permissions.aces | string[] | { 'mrpoulpi_ui.menu' } | Permissions ACE autorisées, à donner dans server.cfg avec add_ace. |
Un joueur est autorisé dès qu’une seule condition est remplie : une ACE de la liste, un groupe ou un métier. Sur Qbox et en standalone, les groupes sont lus uniquement par ACE (group.admin, group.god…).
Config.Permissions = {
enabled = true,
groups = { 'admin', 'superadmin' },
jobs = { 'police' },
aces = { 'mrpoulpi_ui.menu' }
}
Pour une règle différente (grade minimum, liste d’identifiants), modifiez Hooks.HasPermission dans server/hooks.lua.
Couleurs
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Theme | table | voir ci-dessous | Couleurs hexadécimales des types et des boutons : success, info, warning, danger, media, key, et leur variante -hover pour le survol. |
Config.Theme = {
['success'] = '#2BB24C',
['success-hover'] = '#3ACB5C',
['info'] = '#4250E6',
['info-hover'] = '#5865F5',
['warning'] = '#E8962E',
['warning-hover'] = '#F4AB4E',
['danger'] = '#C62A2F',
['danger-hover'] = '#DD3D42',
['media'] = '#D3242A',
['key'] = '#E6E7EA'
}
| Couleur | Utilisée pour |
|---|---|
success, info, warning |
Notifications et boutons de ce type. |
danger |
Notifications error et boutons danger (dont Annuler et Fermer). |
media |
Bandeau des notifications média. |
key |
Touches de l’aide et de la barre de raccourcis. |
…-hover |
Bouton survolé. |
Disposition
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Layout.scale | number | 1.0 | Multiplicateur de taille de toute l’interface, en plus de l’adaptation automatique à la résolution (référence 1920 × 1080). Borné de 0.5 à 2. |
Config.Layout.notifications | string | 'minimap' | Position des notifications : minimap, top-left, top-right, bottom-left, bottom-right ou bottom-center. |
Config.Layout.hint | string | 'top-left' | Position de l’aide d’interaction (« Appuyez sur [E] … »). Mêmes valeurs. |
Config.Layout.keybinds | string | 'bottom-right' | Position de la barre de raccourcis. Mêmes valeurs. |
Positions possibles : minimap (notifications uniquement), top-left, top-right, bottom-left, bottom-right, bottom-center.
L’interface s’adapte seule à la résolution, sur une base de 1920 × 1080 : elle grossit jusqu’à 1,6 fois en 4K et se réduit jusqu’à 0,7 fois sur un petit écran. Layout.scale s’applique en plus.
Minimap
Ces réglages servent quand Config.Layout.notifications = 'minimap'.
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Minimap.gap | numberpixels en 1080p | 12 | Espace entre le haut de la minimap et la notification la plus proche. |
Config.Minimap.matchWidth | boolean | true | Donne aux notifications la largeur de la minimap. false garde leur largeur normale, alignée sur le bord gauche de la minimap. |
Config.Minimap.refresh | numbermillisecondes | 500 | Fréquence de recalcul de la position de la minimap (zone de sécurité, format d’écran, grande carte, minimap masquée). Rien n’est envoyé à l’interface si rien n’a changé. |
Config.Minimap.bigmapWidth | number | 1.58 | Multiplicateur de largeur quand la grande carte est ouverte (touche Z). |
Config.Minimap.bigmapHeight | number | 2.18 | Multiplicateur de hauteur quand la grande carte est ouverte. |
La notification la plus récente apparaît au plus près de la minimap. Si la pile atteint le haut de l’écran, les plus anciennes sont retirées. Quand la minimap est masquée, les notifications descendent en bas de l’écran.
Si votre serveur utilise une minimap modifiée (autre forme ou autre position), ajustez gap ou choisissez une autre position.
Notifications
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Notify.defaultType | string | 'success' | Type utilisé quand aucun type valide n’est donné : success, info, warning ou error. |
Config.Notify.duration | numbermillisecondes | 5000 | Durée d’affichage par défaut. |
Config.Notify.minDuration | numbermillisecondes | 1000 | Durée minimale : une durée plus courte est relevée à cette valeur. |
Config.Notify.maxDuration | numbermillisecondes | 30000 | Durée maximale : une durée plus longue est ramenée à cette valeur. |
Config.Notify.max | number | 5 | Nombre de notifications affichées en même temps. Au-delà, les plus anciennes sont retirées. |
Limites et sécurité
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Input.maxLength | numbercaractères | 120 | Longueur maximale d’une saisie. Le maxLength d’une fenêtre est ramené à cette valeur, et le serveur refuse toute valeur plus longue. |
Config.Security.menuCooldown | numbermillisecondes | 750 | Délai minimal entre deux demandes d’ouverture du menu ou du menu entreprise par un même joueur. Les demandes trop rapprochées sont ignorées. |
Config.Security.actionCooldown | numbermillisecondes | 250 | Délai minimal entre deux actions serveur d’un même joueur. |
Annonces d’entreprise
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Companies.enabled | boolean | true | Active les annonces d’entreprise (commande, boutons du menu et actions serveur). |
Config.Companies.command | string | 'entreprise' | Commande qui ouvre le menu de l’entreprise du joueur. Vide = pas de commande. |
Config.Companies.cooldown | numbersecondes | 60 | Délai entre deux annonces d’une même entreprise, tous employés confondus. |
Config.Companies.duration | numbermillisecondes | 10000 | Durée d’affichage des annonces, bornée par Notify.minDuration et Notify.maxDuration. |
Config.Companies.minLength | numbercaractères | 3 | Longueur minimale d’une annonce personnalisée, après nettoyage des espaces. |
Config.Companies.maxLength | numbercaractères | 120 | Longueur maximale d’une annonce personnalisée. Ne peut pas dépasser Input.maxLength. |
Config.Companies.staff | string | nil | 'administration' | Entreprise de la liste au nom de laquelle les joueurs qui ont la permission du menu peuvent annoncer s’ils n’ont pas de métier configuré. nil désactive cette possibilité. |
Config.Companies.list | table | 5 entreprises d’exemple | Entreprises autorisées, indexées par le nom du métier : label, type, minGrade, logo, logoText, openMessage, closeMessage. |
La liste des entreprises est détaillée dans Annonces d’entreprise.
Menu
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Menu | table | menu de démonstration | Fenêtre ouverte par la commande et la touche, au format de OpenUI. Les options server = true sont exécutées côté serveur. |
Config.Menu = {
type = 'choice',
title = 'menu_title',
cancel = true,
columns = 3,
options = {
{ id = 'success', group = 'menu_group_notifications', label = 'menu_success', variant = 'success', action = 'demo_success', keepOpen = true },
{ id = 'server', group = 'menu_group_hud', label = 'menu_server', action = 'demo_server', server = true, keepOpen = true }
}
}
Les textes peuvent être des clés de shared/locales.lua ou du texte direct. Une option peut porter un champ ace : elle n’est montrée qu’aux joueurs qui ont cette permission. Tous les champs sont décrits dans Fenêtres.
Textes
Les textes sont dans shared/locales.lua, une table par langue. Pour ajouter une langue, copiez le bloc en, renommez-le (par exemple de), traduisez-le et mettez Config.Locale = 'de'. Une clé oubliée est prise dans le bloc en.