Référence de configuration Multicharacter
Tous les réglages de config/shared.lua et config/server.lua de Multicharacter, avec leur valeur par défaut et leur effet.
Les réglages sont dans config/shared.lua (lu par le client, le serveur et l’interface) et config/server.lua (serveur uniquement). Après une modification, faites restart mrpoulpi_multicharacter puis reconnectez-vous.
Général
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Locale | string | 'fr' | Langue des textes : interface, notifications, messages de la console serveur et titres des logs Discord. Valeurs livrées : fr et en (fichiers de locales/). Une clé absente de la langue choisie est prise dans en. |
Config.Debug | boolean | false | Affiche dans la console F8, au démarrage, le framework et le système d’apparence retenus. Utile pour vérifier la détection automatique ; laissez false en production. |
Dépendances
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Dependencies.Framework | string | 'auto' | Framework utilisé : auto, esx, qb, qbx ou custom. En auto, la ressource choisit Qbox (qbx_core) en priorité, puis QBCore (qb-core sans qbx_core), puis ESX (es_extended). custom n’est jamais choisi en auto. Le framework est cherché pendant 15 secondes après le démarrage. Sans résultat, la console affiche « Aucun framework compatible détecté » et la sélection ne s’ouvre pas. |
Config.Dependencies.Appearance | string | 'auto' | Système d’apparence : auto, illenium-appearance, fivem-appearance, esx_skin, qb-clothing, custom ou none. En auto : illenium-appearance, puis fivem-appearance, puis esx_skin (avec skinchanger) ou qb-clothing, sinon none. Un nom inconnu affiche « Appearance bridge "…" not found » dans F8 et la ressource bascule sur none (pas d’éditeur d’apparence). |
Voir aussi Frameworks et apparence.
Emplacements
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Slots.Default | number | 1 | Nombre d’emplacements débloqués pour tout joueur, avant les bonus (ACE, base de données, identifiants). |
Config.Slots.Max | number | 4 | Nombre de cartes affichées et plafond des emplacements débloqués : un joueur ne peut jamais dépasser cette valeur, quels que soient ses bonus. Les cartes au-delà de ses emplacements débloqués apparaissent verrouillées. Si un joueur possède déjà un personnage sur un emplacement plus élevé (migration), la grille s’agrandit pour l’afficher. |
Config.Slots.ShowLocked | boolean | true | Affiche les emplacements verrouillés (badge VIP, bouton boutique). À false, seuls les personnages et les emplacements libres sont visibles. |
Config.Slots.LockExcessCharacters | boolean | false | Verrouille les personnages situés sur un emplacement supérieur au nombre d’emplacements débloqués du joueur (par exemple après la fin d’un abonnement VIP). Un personnage verrouillé reste visible mais ne peut pas être joué. Un personnage verrouillé peut toujours être supprimé si Features.Delete = true. |
Le calcul complet est expliqué dans Emplacements et boutique.
Fonctions
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Features.Delete | boolean | true | Autorise les joueurs à supprimer leurs personnages (bouton Supprimer et touche Suppr, avec confirmation). La suppression est définitive. |
Config.Features.AppearanceEdit | boolean | true | Affiche le bouton Apparence : le personnage est chargé, apparaît au point choisi, puis l’éditeur d’apparence s’ouvre. |
Config.Features.CreatorOnSpawn | boolean | true | Ouvre l’éditeur d’apparence juste après l’apparition d’un nouveau personnage. À false, le personnage garde le ped freemode par défaut. |
Config.Features.ForceCreator | boolean | true | Si le joueur ferme ou annule l’éditeur à la création, il est rouvert jusqu’à CreatorRetries fois. À false, une seule tentative. Après la dernière tentative, le joueur reste en jeu avec l’apparence en cours ; F8 affiche « character customization was not completed ». |
Config.Features.CreatorRetries | number | 3 | Nombre total d’ouvertures de l’éditeur quand ForceCreator = true. Bornes : 1 à 10 |
Config.Features.Relog | boolean | true | Active la commande de retour à la sélection. L’export Logout reste disponible même à false. |
Config.Features.RelogCommand | string | 'relog' | Nom de la commande (sans /). Accessible à tous les joueurs, sans ACE. Une chaîne vide désactive la commande. |
Identité
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Identity.NameMinLength | numbercaractères | 2 | Longueur minimale du prénom et du nom, séparateurs compris. |
Config.Identity.NameMaxLength | numbercaractères | 16 | Longueur maximale du prénom et du nom. Vérifiez qu’elle tient dans les colonnes de votre framework (users.firstname sur ESX). |
Config.Identity.AllowCompoundNames | boolean | true | Autorise l’espace, l’apostrophe et le trait d’union entre deux lettres (Jean-Pierre, O’Neil, Da Silva). Jamais en début ou en fin, jamais deux à la suite. À false : lettres uniquement. |
Config.Identity.MinAge | numberans | 18 | Âge minimal, calculé à partir de la date du serveur. |
Config.Identity.MaxAge | numberans | 90 | Âge maximal. |
Config.Identity.MinHeight | numbercm | 140 | Taille minimale (curseur du formulaire et contrôle serveur). |
Config.Identity.MaxHeight | numbercm | 210 | Taille maximale. |
Config.Identity.DefaultHeight | numbercm | 180 | Valeur de départ du curseur, et taille affichée pour un personnage qui n’en a pas (personnage QBCore créé avant l’installation, par exemple). |
Config.Identity.DefaultBirthdate | string | '1995-01-01' | Date proposée dans le formulaire, toujours au format AAAA-MM-JJ quel que soit UI.DateFormat. |
Config.Identity.DefaultNationality | string | 'Américaine' | Nationalité sélectionnée par défaut, et nationalité affichée pour un personnage qui n’en a pas. Doit figurer dans Nationalities, sinon le formulaire prend la première de la liste. |
Config.Identity.Nationalities | string[] | 27 entrées | Liste proposée au joueur. Le serveur refuse toute valeur qui n’y figure pas à l’identique (majuscules et accents compris). |
Config.Identity.Blacklist | string[] | 7 mots | Mots interdits dans le prénom et le nom. La comparaison ignore la casse et cherche le mot à l’intérieur du nom : « staff » refuse aussi « Stafford ». |
Le prénom et le nom acceptent les lettres latines avec accents. La première lettre de chaque partie est mise en majuscule et le reste en minuscules : jean-pierre devient Jean-Pierre.
Apparition
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Spawn.AllowLastPosition | boolean | true | Propose « Dernière position » en premier choix. Grisé si le framework n’a aucune position enregistrée pour ce personnage. |
Config.Spawn.Default | vector4 | vector4(-269.41, -955.31, 31.22, 205.0) | Point de secours quand le choix reçu ne correspond à aucun point et qu’aucune dernière position n’est disponible. |
Config.Spawn.NewCharacter | vector4 | vector4(-1037.74, -2737.79, 20.17, 329.4) | Point d’apparition de tout nouveau personnage (aéroport LSIA par défaut). Le joueur ne choisit pas à la création. |
Config.Spawn.Locations | table[] | 2 points | Points proposés à un personnage existant. Champs : id (unique), label, description, icon, coords (vector4). Le détail est dans Personnalisation. |
Scène
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Scene.Coords | vector4 | vector4(-75.21, -819.11, 326.17, 158.0) | Position et orientation du personnage pendant la sélection (toit du Maze Bank par défaut). Le personnage y est figé et invincible. |
Config.Scene.Weather | string | 'EXTRASUNNY' | Météo locale forcée pendant la sélection. |
Config.Scene.Hour | number | 12 | Heure locale forcée pendant la sélection. Bornes : 0 à 23 |
Config.Scene.Minute | number | 40 | Minute locale forcée pendant la sélection. Bornes : 0 à 59 |
Config.Scene.CameraDistance | numbermètres | 3.4 | Distance entre la caméra et le personnage, devant lui. |
Config.Scene.CameraHeight | numbermètres | 0.45 | Hauteur de la caméra par rapport au centre du personnage. |
Config.Scene.TargetHeight | numbermètres | 0.25 | Hauteur du point visé par la caméra. |
Config.Scene.CameraShift | numbermètres | 0.8 | Décalage latéral du point visé : le personnage apparaît sur un côté de l’écran pour laisser la place au panneau d’informations. |
Config.Scene.CameraFov | numberdegrés | 38.0 | Champ de vision de la caméra : plus petit = plus zoomé. |
Config.Scene.SwayAmount | numbermètres | 0.35 | Amplitude du balancement latéral de la caméra quand le joueur a activé « Caméra cinématique ». 0 = caméra fixe. |
Config.Scene.SwaySpeed | number | 0.00025 | Vitesse du balancement, en cycles par milliseconde : 0.00025 fait un aller-retour toutes les 4 secondes. |
Config.Scene.Timecycle | string | 'cinema' | Filtre d’image (timecycle modifier) appliqué quand le joueur a activé « Effets visuels », avec une profondeur de champ. Une chaîne vide désactive le filtre. |
Config.Scene.TimecycleStrength | number | 0.45 | Intensité du filtre. Bornes : 0 à 1 |
Config.Scene.PedScenario | string | '' | Scénario joué par le personnage affiché (ex. WORLD_HUMAN_SMOKING). Vide = pose neutre. |
Pour changer de décor, voir Personnalisation.
Interface
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.UI.Watermark | string | 'MrPoulpi Labs' | Texte affiché en bas à droite. Mettez le nom de votre serveur, ou une chaîne vide. |
Config.UI.DateFormat | string | 'DD/MM/YYYY' | Format d’affichage et de saisie des dates, composé de DD, MM et YYYY (ex. MM/DD/YYYY). N’a aucun lien avec le format stocké en base. Le texte d’exemple du champ (placeholder_birthdate, « JJ/MM/AAAA ») est dans locales/ : adaptez-le si vous changez le format. |
Config.UI.Currency | string | '$' | Symbole des montants Liquide et Banque. |
Config.UI.CurrencyBefore | boolean | true | true : $12 500. false : 12 500 $. |
Config.UI.SceneOpacity | number | 0.55 | Opacité du fond par-dessus la scène 3D quand la caméra cinématique est active : 0 = scène entièrement visible, 1 = fond opaque. Sans caméra cinématique, le fond est opaque. Bornes : 0 à 1 |
Config.UI.AllowCustomBackground | boolean | true | Autorise chaque joueur à coller l’URL d’une image de fond (https uniquement) dans Paramètres. L’image est chargée depuis la connexion du joueur. |
Config.UI.MusicUrl | string | '' | URL directe d’un fichier audio (.mp3, .ogg…) joué en boucle pendant la sélection. Vide = option « Musique d’ambiance » et réglage du volume masqués. Une page YouTube ne fonctionne pas. |
Config.UI.Defaults.Background | string | 'violet' | id du préréglage de fond utilisé par défaut (une entrée de UI.Backgrounds). |
Config.UI.Defaults.Music | boolean | false | Musique activée par défaut (si MusicUrl est défini). |
Config.UI.Defaults.Cinematic | boolean | true | Caméra cinématique activée par défaut : scène 3D visible et balancement. |
Config.UI.Defaults.Effects | boolean | true | Effets visuels activés par défaut : filtre Scene.Timecycle et flou de profondeur. |
Config.UI.Defaults.Volume | number | 70 | Volume de la musique par défaut. Bornes : 0 à 100 |
Config.UI.Backgrounds | table[] | 4 préréglages | Fonds proposés dans Paramètres : { id, value }. value est un dégradé CSS ou une URL d’image http(s) ou nui://. |
Liens
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Links.Discord | string | '' | Invitation Discord ouverte par le bouton de la barre d’outils, dans le navigateur du joueur. Vide = bouton masqué. |
Boutique
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.Shop.Enabled | boolean | true | Affiche le bouton « Accéder à la boutique » sur les emplacements verrouillés et dans la fenêtre qu’ils ouvrent. |
Config.Shop.Url | string | 'https://votre-boutique.tebex.io' | Adresse de votre boutique, utilisée quand l’offre choisie n’a pas d’url valide. À remplacer : l’adresse de démonstration et toute adresse non https sont bloquées et affichent « Boutique non configurée ». |
Config.Shop.Packages | table[] | 1 offre | Offres affichées dans la fenêtre d’un emplacement verrouillé : id, title, description, icon, url, et facultativement slot = 2 ou slots = { 2, 3 }. Voir Emplacements et boutique. |
Routing buckets
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
ServerConfig.RoutingBuckets | boolean | true | Isole chaque joueur dans son propre routing bucket pendant la sélection : les autres joueurs ne voient pas son personnage sur la scène. Il est remis dans le bucket 0 une fois en jeu. |
ServerConfig.BucketOffset | number | 50000 | Bucket utilisé = BucketOffset + ID serveur du joueur. Choisissez une plage que vos autres ressources (instances, appartements) n’utilisent pas. |
Emplacements côté serveur
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
ServerConfig.Slots.Command | string | 'multichar_slots' | Nom de la commande console qui gère les emplacements bonus. Elle ne fonctionne que depuis la console serveur (ou txAdmin, RCON, Tebex) : tapée en jeu, elle ne fait rien. |
ServerConfig.Slots.Aces | table | { ['multicharacter.slots.vip'] = 2 } | Emplacements ajoutés par permission ACE : [ace] = nombre. Les bonus de plusieurs ACE s’additionnent. |
ServerConfig.Slots.Identifiers | table | { ['license:000…000'] = 4 } | Total minimal garanti par identifiant (license:, discord:, fivem:, steam:…) : [identifiant] = total. Ce n’est pas un bonus : le joueur obtient au moins ce total. L’entrée livrée est un exemple sans effet. |
ESX
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
ServerConfig.ESX.Prefix | string | 'char' | Préfixe des identifiants de personnages ESX : char1:<licence>, char2:<licence>… Même valeur par défaut que esx_multicharacter : les personnages existants sont repris tels quels. Ne le changez pas sur un serveur qui a déjà des personnages : ils n’apparaîtraient plus. |
ServerConfig.ESX.DateFormat | string | 'DD/MM/YYYY' | Format de la colonne users.dateofbirth, en lecture et en écriture. Doit correspondre à ce que contient déjà votre base (esx_identity utilise DD/MM/YYYY). |
ServerConfig.ESX.DeleteTables | table[] | 9 tables | Tables vidées à la suppression d’un personnage : { table, column }, où column contient l’identifiant du personnage. Les tables ou colonnes absentes de votre base sont ignorées au démarrage. users est toujours supprimée en dernier, dans une seule transaction. |
ServerConfig.ESX.DeleteTables = {
{ table = 'users', column = 'identifier' },
{ table = 'owned_vehicles', column = 'owner' },
{ table = 'phone_phones', column = 'owner_id' },
}
Une table ou une colonne qui n’existe pas dans votre base est simplement ignorée.
QBCore
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
ServerConfig.QB.StarterItems | boolean | true | Donne à la création les objets de QBCore.Shared.StarterItems (qb-core/shared/main.lua). id_card et driver_license reçoivent les informations du personnage. |
Qbox
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
ServerConfig.QBX.StarterItems | table[] | { { name = 'phone', amount = 1 } } | Objets donnés à la création sur Qbox, via ox_inventory : { name, amount, metadata }. Rien n’est donné si ox_inventory n’est pas démarré. Liste vide = aucun objet. |
ServerConfig.QBX.StarterItems = {
{ name = 'phone', amount = 1 },
{ name = 'water', amount = 2 },
}
Les objets doivent exister dans ox_inventory/data/items.lua.
Logs Discord
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
ServerConfig.Logs.Webhook | string | '' | Webhook Discord qui reçoit les créations, chargements et suppressions de personnages. Vide = aucun log. Ce fichier n’est lu que par le serveur. |
ServerConfig.Logs.Name | string | 'MrPoulpi Labs · Multicharacter' | Nom affiché comme auteur des messages Discord. |