Configuration

Mis à jour le 03/06/2026

Configuration

Version Française

[!info] Cette page documente uniquement les paramètres présents dans les fichiers de configuration de MX MDT. Aucun paramètre externe ou inventé n'est inclus.

[!warning] Ne publiez jamais vos tokens Discord, clés API FiveManage ou webhooks Discord dans une documentation publique. Utilisez toujours des placeholders dans les exemples.


Fichiers de configuration analysés

FichierRôle
shared/config_locale.luaLangue active du script
shared/config_resources.luaNoms des ressources externes utilisées par le MDT
shared/config_client.luaConfiguration client, commandes, touches, tablette, caméras, ANPR, dispatch, mégaphone
shared/config_server.luaConfiguration serveur, Discord, base de données, logs, uploads, citoyens, véhicules, facturation
shared/config_permissions.luaGroupes, permissions, catégories et droits disponibles
shared/config_exports.luaRéférence documentaire des exports publics
shared/config_towers.luaListe des antennes utilisées pour la triangulation
shared/logs.luaExploitation des logs Discord
shared/framework.luaPont de notification et lecture centralisée de configuration

Configuration globale

Config.Locale

ÉlémentValeur
DescriptionDéfinit la langue utilisée par l'interface et les textes du MDT.
Valeur par défautfr
Valeurs possiblesfr, en
ExempleConfig.Locale = "fr"
ImpactCharge les traductions correspondantes depuis le dossier locales/. Si une traduction est manquante, le français sert de fallback.
lua
Config.Locale = "fr"
MDTConfig.Locale = MDTConfig.Locale or Config.Locale

MDTConfig.Resources

ParamètreDescriptionValeur par défautValeurs possiblesImpact
InventoryRessource d'inventaire utilisée par le MDT.origen_inventoryorigen_inventory, ox_inventory, esx, qbcore, customUtilisé pour les items requis, les props, l'imprimante et le mégaphone.
TargetRessource de ciblage utilisée pour les interactions.ox_targetox_target, qb-target, customPermet d'ajouter des interactions sur les objets MDT.
GizmoRessource utilisée pour placer ou manipuler des objets.object_gizmoNom de ressource valideUtilisé par le système de props.
ScreenshotRessource utilisée pour les captures d'écran.screenshot-basicscreenshot-basic ou ressource compatibleUtilisé par certains systèmes d'upload ou d'impression.
PhoneRessource téléphone connectée au MDT.qs-smartphoneqs-smartphone, lb-phoneUtilisé pour les appels, notifications téléphone, galerie et contacts.
lua
MDTConfig.Resources = {
    Inventory  = "origen_inventory",
    Target     = "ox_target",
    Gizmo      = "object_gizmo",
    Screenshot = "screenshot-basic",
    Phone      = "qs-smartphone",
}

[!tip] Modifier MDTConfig.Resources permet de changer une ressource à un seul endroit, puis de la réutiliser automatiquement dans plusieurs modules.


Commandes et touches

MDTConfig.Client.Commands

ParamètreDescriptionDéfautValeurs possiblesImpact
OpenMDTCommande pour ouvrir le MDT.mdtToute commande FiveM valideCrée la commande principale d'ouverture du MDT.
PanicCommande pour déclencher une alerte panic.mdtpanicToute commande FiveM valideEnvoie une alerte d'urgence aux services concernés.
BackupMenuCommande prévue pour un menu backup.mdtbackupToute commande FiveM valideDéfini dans la config, mais non utilisé actuellement.
PlaceSpikestripCommande pour poser une herse.mdtplacestripToute commande FiveM valideActive la pose de herses si le module est activé.
MegaphoneVehicleCommande maintenue pour le mégaphone véhicule.+megaphone_vehCommande avec + recommandéeActive le mégaphone tant que la touche est maintenue.
AnprLockFrontVerrouille la plaque détectée à l'avant.mdtanprlockfrontToute commande FiveM valideUtilisé par l'ANPR véhicule.
AnprLockRearVerrouille la plaque détectée à l'arrière.mdtanprlockrearToute commande FiveM valideUtilisé par l'ANPR véhicule.
AnprMoveDéplace l'affichage ANPR.mdtanprmoveToute commande FiveM validePermet de repositionner l'interface ANPR.
AnprSpeedChange le mode de vitesse ANPR.mdtanprspeedToute commande FiveM valideCommande disponible sans touche par défaut.
lua
MDTConfig.Client.Commands = {
    OpenMDT = "mdt",
    Panic = "mdtpanic",
    BackupMenu = "mdtbackup",
    PlaceSpikestrip = "mdtplacestrip",
    MegaphoneVehicle = "+megaphone_veh",
    AnprLockFront = "mdtanprlockfront",
    AnprLockRear = "mdtanprlockrear",
    AnprMove = "mdtanprmove",
    AnprSpeed = "mdtanprspeed",
}

MDTConfig.Client.Keys

ParamètreDescriptionDéfautValeurs possiblesImpact
OpenMDTTouche par défaut pour ouvrir le MDT.F2Nom de touche FiveM valideCrée le key mapping d'ouverture.
PanicTouche par défaut pour l'alerte panic.F10Nom de touche FiveM valideDéclenche l'alerte panic rapidement.
BackupMenuTouche prévue pour le menu backup.F5Nom de touche FiveM valideDéfini mais non utilisé actuellement.
PlaceSpikestripTouche pour poser une herse.HNom de touche FiveM valideUtilisée par le module spikestrips.
MegaphoneVehicleTouche du mégaphone véhicule.GNom de touche FiveM valideActive le mégaphone véhicule.
AnprLockFrontTouche ANPR avant.LBRACKETNom de touche FiveM valideVerrouille la plaque avant détectée.
AnprLockRearTouche ANPR arrière.RBRACKETNom de touche FiveM valideVerrouille la plaque arrière détectée.
AnprMoveTouche de déplacement ANPR.VideNom de touche FiveM valide ou videAucun raccourci par défaut.
lua
MDTConfig.Client.Keys = {
    OpenMDT = "F2",
    Panic = "F10",
    BackupMenu = "F5",
    PlaceSpikestrip = "H",
    MegaphoneVehicle = "G",
    AnprLockFront = "LBRACKET",
    AnprLockRear = "RBRACKET",
    AnprMove = "",
}

[!warning] BackupMenu est présent dans la configuration, mais aucune utilisation active n'a été trouvée dans le script actuel.


Item requis pour ouvrir le MDT

MDTConfig.Client.RequiredItem

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive ou désactive l'obligation d'avoir un item.truetrue, falseSi activé, le joueur doit posséder l'item configuré.
ItemNom de l'item requis.mdt_tabletNom d'item valideItem vérifié dans l'inventaire du joueur.
ProviderSystème d'inventaire utilisé.origen_inventoryorigen_inventory, ox_inventory, esx, qbcore, customDétermine la méthode de vérification de l'item.
CheckFnFonction personnalisée de vérification.nilFonction LuaUtilisé uniquement avec Provider = "custom".
lua
MDTConfig.Client.RequiredItem = {
    Enabled = true,
    Item = "mdt_tablet",
    Provider = MDTConfig.Resources.Inventory,

    CheckFn = function(itemName)
        return true
    end
}

[!danger] Si un provider inconnu est utilisé, le contrôle d'item peut ne pas bloquer l'ouverture du MDT. Utilisez un provider supporté ou une fonction CheckFn personnalisée.


Tablette MDT

MDTConfig.Client.Tablet

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive l'animation et le prop tablette.truetrue, falseSi désactivé, le MDT s'ouvre sans animation ni objet.
DictDictionnaire d'animation.amb@world_human_seat_wall_tablet@female@baseNom de dictionnaire valideAnimation jouée à l'ouverture.
AnimNom de l'animation.baseAnimation valideAnimation utilisée avec le dictionnaire.
ModelModèle de la tablette.prop_cs_tabletHash ou modèle GTA valideObjet attaché au joueur.
BoneBone d'attache.28422ID de bone GTADéfinit où la tablette est attachée.
OffsetPosition relative de l'objet.vector3(-0.05, 0.0, 0.03)vector3(x, y, z)Ajuste le placement de la tablette.
RotationRotation relative de l'objet.vector3(20.0, -90.0, 0.0)vector3(x, y, z)Ajuste l'orientation de la tablette.
lua
MDTConfig.Client.Tablet = {
    Enabled = true,
    Dict = "amb@world_human_seat_wall_tablet@female@base",
    Anim = "base",
    Model = `prop_cs_tablet`,
    Bone = 28422,
    Offset = vector3(-0.05, 0.0, 0.03),
    Rotation = vector3(20.0, -90.0, 0.0),
}

Notifications

MDTConfig.Client.Notifications

ParamètreDescriptionDéfautValeurs possiblesImpact
ProviderSystème de notification client.esx_notifyesx_notify, ms_notify, chat, nui, customDéfinit comment les notifications client sont affichées.
ResourceNameRessource utilisée par le provider.notifyNom de ressource valideUtilisé par certains providers.
CustomEventEvent client personnalisé.VideNom d'eventUtilisé avec custom.
Exports.NotifyFonction personnalisée de notification.Fonction fournieFonction LuaPermet de brancher un système de notification externe.
lua
MDTConfig.Client.Notifications = {
    Provider = "esx_notify",
    ResourceName = "notify",
    CustomEvent = "",

    Exports = {
        Notify = function(data)
            -- data.title
            -- data.description
            -- data.type
            -- data.duration
        end
    }
}

MDTConfig.Server.Notifications

ParamètreDescriptionDéfautValeurs possiblesImpact
ProviderSystème de notification serveur.esx_notifyms_notify, chat, custom, fallback NUIDéfinit comment le serveur envoie les notifications.
ResourceNameRessource utilisée par le provider.VideNom de ressource valideUtilisé selon le provider.
CustomEventEvent personnalisé.VideNom d'eventUtilisé avec custom.
Exports.NotifyFonction personnalisée.Fonction fournieFonction LuaPermet d'intégrer un système externe.
lua
MDTConfig.Server.Notifications = {
    Provider = "esx_notify",
    ResourceName = "",
    CustomEvent = "",

    Exports = {
        Notify = function(source, data)
            TriggerClientEvent("mdt:notify", source, data)
        end
    }
}

Téléphone

MDTConfig.Client.ExternalResources.Phone

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive l'intégration téléphone côté client.truetrue, falsePermet les appels et certaines actions téléphone.
ProviderProvider téléphone.qs-smartphoneqs-smartphone, lb-phoneDétermine les exports utilisés.
ResourceNameNom de la ressource téléphone.qs-smartphoneNom de ressource valideRessource appelée par les exports.
CreateCallFonction de création d'appel.Fonction fournieFonction LuaLance un appel depuis le MDT.
ReloadPhoneFonction de rechargement téléphone.Fonction fournieFonction LuaRecharge le téléphone si le provider le supporte.
lua
MDTConfig.Client.ExternalResources.Phone = {
    Enabled = true,
    Provider = MDTConfig.Resources.Phone,
    ResourceName = MDTConfig.Resources.Phone,
}

MDTConfig.Server.ExternalResources.Phone

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive l'intégration téléphone serveur.truetrue, falsePermet les fonctions téléphone serveur.
ProviderProvider téléphone.qs-smartphoneqs-smartphone, lb-phoneDétermine les tables et exports utilisés.
Gallery.LBPhoneMapping SQL galerie pour lb-phone.Tables phone_*Colonnes SQL validesPermet de lire les photos du téléphone.
Gallery.QSPhoneMapping SQL galerie pour qs-smartphone.Table qs_phone_galleryColonnes SQL validesPermet de lire les photos QS.
Contacts.LBPhoneMapping SQL contacts pour lb-phone.Table phone_phone_contactsColonnes SQL validesPermet de lire et ajouter des contacts.
Contacts.QSPhoneMapping SQL contacts pour qs-smartphone.Table qs_phone_contactsColonnes SQL validesPermet de lire les contacts QS.
lua
MDTConfig.Server.ExternalResources.Phone = {
    Enabled = true,
    Provider = MDTConfig.Resources.Phone,
    ResourceName = MDTConfig.Resources.Phone,
}

Voice et mégaphone

MDTConfig.Client.ExternalResources.Voice

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive l'intégration voice.truetrue, falseNécessaire pour le mégaphone.
ResourceNameRessource voice utilisée.pma-voiceRessource compatibleUtilisée pour activer ou désactiver le mode mégaphone.
lua
MDTConfig.Client.ExternalResources.Voice = {
    Enabled = true,
    ResourceName = "pma-voice",
}

MDTConfig.Megaphone

ParamètreDescriptionDéfautValeurs possiblesImpact
Vehicle.EnabledActive le mégaphone véhicule.truetrue, falsePermet d'utiliser le mégaphone depuis un véhicule autorisé.
Vehicle.ToggleKeyTouche fallback du mégaphone véhicule.GNom de touche FiveM valideUtilisée si aucune touche client n'est définie.
Handheld.EnabledActive le mégaphone portable.truetrue, falsePermet l'utilisation en main.
Handheld.WeaponHashArme utilisée comme mégaphone.WEAPON_MEGAPHONEHash d'arme valideDétecte le mégaphone tenu par le joueur.
Handheld.InventoryItem.EnabledActive l'item inventaire.truetrue, falsePermet d'utiliser un item pour sortir le mégaphone.
Handheld.InventoryItem.ItemNameNom de l'item mégaphone.megaphoneNom d'item valideItem utilisé dans l'inventaire.
VolumeVolume configuré.1.0NombreDéfini dans la config, mais non utilisé actuellement.
Effects.FreqLowFréquence basse du filtre audio.200.0NombreModifie l'effet radio du mégaphone.
Effects.FreqHiFréquence haute du filtre audio.9000.0NombreModifie l'effet radio du mégaphone.
lua
MDTConfig.Megaphone = {
    Vehicle = {
        Enabled = true,
        ToggleKey = "G",
    },

    Handheld = {
        Enabled = true,
        WeaponHash = `WEAPON_MEGAPHONE`,

        InventoryItem = {
            Enabled = true,
            Resource = MDTConfig.Resources.Inventory,
            ItemName = "megaphone",
        }
    },

    Volume = 1.0,

    Effects = {
        FreqLow = 200.0,
        FreqHi = 9000.0,
    }
}

[!warning] MDTConfig.Megaphone.Volume est défini dans la configuration, mais aucune utilisation active n'a été trouvée dans le code actuel.


Target

MDTConfig.Client.ExternalResources.Target

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive les interactions target.truetrue, falsePermet d'interagir avec les props MDT.
ProviderProvider target.ox_targetox_target, qb-target, customDétermine les exports target utilisés.
CustomAddModelFonction personnalisée d'ajout de modèle.nilFonction LuaUtilisé avec custom.
CustomRemoveModelFonction personnalisée de suppression de modèle.nilFonction LuaUtilisé avec custom.
lua
MDTConfig.Client.ExternalResources.Target = {
    Enabled = true,
    Provider = MDTConfig.Resources.Target,

    CustomAddModel = nil,
    CustomRemoveModel = nil,
}

Dispatch

MDTConfig.Dispatch.Client.BlipStyles

ParamètreDescriptionDéfautValeurs possiblesImpact
keyIdentifiant interne du style.code99, gunshot, accidentTexte uniqueSert à identifier le style.
matchCodeCode d'intervention à reconnaître.Selon entréeTexte ou nilApplique automatiquement le style selon le code.
matchTitleMot-clé dans le titre.Selon entréeTexte ou nilApplique automatiquement le style selon le titre.
spriteIcône du blip.VariableSprite GTA valideChange l'icône carte.
colourCouleur du blip.VariableCouleur GTA valideChange la couleur carte.
scaleTaille du blip.VariableNombreChange la taille du blip.
flashActive le clignotement.Variabletrue, falseRend l'appel plus visible.
radiusRayon de zone.VariableNombreAffiche une zone autour de l'appel.
radiusAlphaTransparence de la zone.Variable0 à 255Contrôle la visibilité du rayon.
labelNom affiché du blip.VariableTexteNom visible sur la carte.
lua
MDTConfig.Dispatch.Client.BlipStyles = {
    {
        key = "code99",
        matchCode = "99",
        sprite = 161,
        colour = 1,
        scale = 1.05,
        flash = true,
        radius = 90.0,
        radiusAlpha = 120,
        label = "Code 99"
    }
}

MDTConfig.Dispatch.Client.BlipDefaultStyle

ParamètreDescriptionDéfautImpact
spriteIcône utilisée si aucun style ne correspond.161Icône fallback des appels.
colourCouleur fallback.3Couleur standard des appels.
priorityThresholdSeuil de priorité élevée.3Active le style haute priorité.
highPriorityColourCouleur haute priorité.1Rend les appels critiques plus visibles.
highPriorityFlashClignotement haute priorité.trueFait clignoter les appels importants.
radiusRayon fallback.55.0Zone par défaut autour de l'appel.
labelNom fallback.Dispatch - InterventionLabel carte par défaut.
lua
MDTConfig.Dispatch.Client.BlipDefaultStyle = {
    sprite = 161,
    colour = 3,
    highPriorityColour = 1,
    priorityThreshold = 3,
    scale = 0.85,
    flash = false,
    highPriorityFlash = true,
    flashIntervalMs = 500,
    radius = 55.0,
    radiusAlpha = 90,
    label = "Dispatch - Intervention",
}

MDTConfig.Dispatch.Client.AgentBlips

ParamètreDescriptionDéfautImpact
ScaleInVehicleTaille du blip agent en véhicule.0.95Ajuste la visibilité des unités mobiles.
ScaleOnFootTaille du blip agent à pied.0.78Ajuste la visibilité des agents à pied.
DisplayMode d'affichage GTA.2Contrôle l'affichage carte/minimap.
CategoryCatégorie GTA du blip.7Organise les blips.
SpriteInVehicleIcône agent en véhicule.56Icône utilisée en véhicule.
SpriteOnFootIcône agent à pied.1Icône utilisée à pied.
ColoursCouleurs par état.Table fournieDifférencie attente, danger, pause, patrouille.
lua
MDTConfig.Dispatch.Client.AgentBlips = {
    ScaleInVehicle = 0.95,
    ScaleOnFoot = 0.78,
    Display = 2,
    Category = 7,
    SpriteInVehicle = 56,
    SpriteOnFoot = 1,
    Colours = {
        waiting = 17,
        danger = 1,
        pause = 5,
        patrol = 3,
        default = 0,
    }
}

MDTConfig.Dispatch.Client.Timers

ParamètreDescriptionDéfautImpact
GunshotLocalCooldownMsCooldown local de détection des tirs.1500Évite le spam client.
GunshotLoopShootingMsFréquence de boucle quand le joueur tire.150Rend la détection réactive.
GunshotLoopArmedMsFréquence de boucle armé.100Surveille les armes équipées.
GunshotLoopIdleMsFréquence de boucle inactive.500Réduit la charge client.
PositionUpdateIntervalMsIntervalle d'envoi de position.3000Met à jour la position des agents.
PositionUpdateLoopMsBoucle de suivi position.500Contrôle la fréquence de vérification.
PanicCooldownMsCooldown de l'alerte panic.8000Empêche le spam panic.
lua
MDTConfig.Dispatch.Client.Timers = {
    GunshotLocalCooldownMs = 1500,
    GunshotLoopShootingMs = 150,
    GunshotLoopArmedMs = 100,
    GunshotLoopIdleMs = 500,
    PositionUpdateIntervalMs = 3000,
    PositionUpdateLoopMs = 500,
    PanicCooldownMs = 8000,
}

MDTConfig.Dispatch.Server.GunshotCooldownMs

ÉlémentValeur
DescriptionCooldown serveur entre deux alertes automatiques de tir.
Valeur par défaut300000
Valeurs possiblesNombre en millisecondes
ExempleGunshotCooldownMs = 5 * 60 * 1000
ImpactLimite les alertes de tirs répétées côté serveur.

Caméras

MDTConfig.AllowedVehicleModels

ÉlémentValeur
DescriptionListe des véhicules autorisés à utiliser certains modules MDT véhicule.
Valeur par défautPlusieurs modèles police et véhicules personnalisés.
Valeurs possiblesTable Lua au format [`model`] = true
ImpactUtilisé par l'ANPR, les caméras véhicule, le mégaphone véhicule et les herses.
lua
MDTConfig.AllowedVehicleModels = {
    [`police`] = true,
    [`police2`] = true,
    [`police3`] = true,
}

MDTConfig.Cameras

ParamètreDescriptionDéfautImpact
RefreshIntervalMsIntervalle théorique de refresh caméra.1500Défini mais le code actuel utilise aussi une valeur hardcodée de 1500.
AllowedVehicleModelsVéhicules autorisés pour les caméras.MDTConfig.AllowedVehicleModelsRestreint les caméras aux véhicules autorisés.
KeyLockFrontLabelLabel affiché pour le lock avant.TTexte affiché uniquement.
KeyLockRearLabelLabel affiché pour le lock arrière.YTexte affiché uniquement.
StaticCamerasListe des caméras fixes.36 entréesAjoute des caméras consultables dans le MDT.
Bodycam.AttachOffsetOffset caméra bodycam.vector3(0.12, 0.08, 0.08)Positionne la bodycam.
Bodycam.VehicleOffsetOffset caméra véhicule.vector3(0.30, 0.90, 0.75)Positionne la dashcam.
lua
MDTConfig.Cameras = {
    RefreshIntervalMs = 1500,
    AllowedVehicleModels = MDTConfig.AllowedVehicleModels,
    KeyLockFrontLabel = "T",
    KeyLockRearLabel = "Y",

    StaticCameras = {
        {
            id = "mission_row_entrance",
            label = "Mission Row - Entrée",
            department_id = nil,
            coords = vector3(441.2, -981.9, 30.7),
            rot = vector3(-15.0, 0.0, 90.0),
            fov = 70.0,
        }
    }
}

[!info] department_id = nil rend une caméra accessible à tous les départements autorisés. Un ID numérique permet de la limiter à un département précis.

[!warning] Bodycam.AttachRot et Bodycam.VehicleRot sont présents dans la configuration, mais les rotations sont actuellement hardcodées dans le code caméra.


ANPR

MDTConfig.ANPR

ParamètreDescriptionDéfautValeurs possiblesImpact
DetectionDistanceDistance de détection des plaques.28.0NombreDéfini dans la config, mais le code actuel utilise une valeur hardcodée.
DotProductThresholdAngle minimal de détection.0.55Nombre entre 0 et 1Défini dans la config, mais hardcodé actuellement.
SpeedMultiplierConversion de vitesse.2.237NombreDéfini dans la config, mais hardcodé actuellement.
lua
MDTConfig.ANPR = {
    DetectionDistance = 28.0,
    DotProductThreshold = 0.55,
    SpeedMultiplier = 2.237,
}

[!warning] Les valeurs ANPR sont définies dans la configuration, mais ne sont pas encore appliquées dynamiquement par le code actuel.


Herses

MDTConfig.Spikestrips

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive le système de herses.truetrue, falsePermet ou bloque l'utilisation des herses.
MaxStripsNombre maximum de herses par joueur.3NombreLimite les poses simultanées.
AutoDeleteMinutesSuppression automatique.30Nombre en minutesNettoie les herses anciennes.
RemoveOnDisconnectSupprime les herses à la déconnexion.falsetrue, falseNettoie les objets au départ du joueur.
PlaceKeyTouche fallback de pose.HNom de touche FiveM valideUtilisée si aucune touche client n'est définie.
BurstNPCCrève aussi les pneus des PNJ.truetrue, falseÉtend l'effet aux véhicules non joueurs.
lua
MDTConfig.Spikestrips = {
    Enabled = true,
    MaxStrips = 3,
    AutoDeleteMinutes = 30,
    RemoveOnDisconnect = false,
    PlaceKey = "H",
    BurstNPC = true,
}

Authentification

MDTConfig.Auth

ParamètreDescriptionDéfautValeurs possiblesImpact
ProviderProvider d'authentification prévu.discorddiscordValeur définie, mais peu exploitée dynamiquement.
AllowDiscordLoginAutorise le login Discord.truetrue, falseDéfini dans la config, mais le login actuel reste centré sur Discord.
RequireDiscordIdentifierObligation théorique d'un identifiant Discord.falsetrue, falseLe code actuel demande tout de même un Discord détecté.
DefaultAvatarAvatar par défaut.URL Discord par défautURL valideFallback prévu pour les profils sans avatar.
lua
MDTConfig.Auth = {
    Provider = "discord",
    AllowDiscordLogin = true,
    RequireDiscordIdentifier = false,
    DefaultAvatar = "https://cdn.discordapp.com/embed/avatars/0.png",
}

[!warning] RequireDiscordIdentifier = false ne désactive pas réellement la dépendance Discord dans le flux de connexion actuel.


Discord

MDTConfig.Discord

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive l'intégration Discord.truetrue, falseActive la synchronisation et les appels API Discord.
BotTokenToken du bot Discord.Valeur privéeToken Discord validePermet de lire les rôles et membres Discord.
GuildIdsListe des serveurs Discord.Liste d'IDsIDs DiscordServeurs utilisés pour la synchronisation.
RoleSyncEnabledSynchronisation des rôles.truetrue, falseSynchronise les grades MDT avec Discord.
FullResyncEnabledResynchronisation complète.truetrue, falseActive une resynchronisation périodique.
FullResyncIntervalMsIntervalle de resync.900000MillisecondesDéfaut équivalent à 15 minutes.
lua
MDTConfig.Discord = {
    Enabled = true,
    BotToken = GetConvar("mdt_discord_bot_token", "YOUR_DISCORD_BOT_TOKEN"),
    GuildIds = { "YOUR_GUILD_ID" },
    RoleSyncEnabled = true,
    FullResyncEnabled = true,
    FullResyncIntervalMs = 15 * 60 * 1000,
}

MDTConfig.StaffRoleId = GetConvar("mdt_staff_role_id", "YOUR_STAFF_ROLE_ID")

Convars recommandées

cfg
set mdt_discord_bot_token "YOUR_DISCORD_BOT_TOKEN"
set mdt_discord_guild_ids "123456789012345678,987654321098765432"
set mdt_staff_role_id "123456789012345678"

[!danger] La configuration actuelle contient des valeurs sensibles. En production, déplacez toujours les tokens, clés API et IDs privés dans des convars serveur.


Base de données

MDTConfig.Server.ExternalResources.Database

ParamètreDescriptionDéfautValeurs possiblesImpact
ResourceNameRessource SQL utilisée.oxmysqlRessource compatible oxmysqlToutes les requêtes MDT passent par cette ressource.
InsertWrapper d'insertion SQL.exports.oxmysql:insertFonction LuaInsère des données.
QueryWrapper de requête async.exports.oxmysql:queryFonction LuaLit des données de manière asynchrone.
QuerySyncWrapper de requête sync.exports.oxmysql:query_asyncFonction LuaLit des données de manière synchrone.
ExecuteWrapper d'exécution SQL.exports.oxmysql:updateFonction LuaMet à jour ou supprime des données.
lua
MDTConfig.Server.ExternalResources.Database = {
    ResourceName = "oxmysql",
}

Inventaire serveur

MDTConfig.InventoryExports

ParamètreDescriptionDéfautImpact
HasItemVérifie si un joueur possède un item.Wrapper inventaireUtilisé par les modules serveur.
AddItemAjoute un item.Wrapper inventaireUtilisé par les props et l'imprimante.
RemoveItemRetire un item.Wrapper inventaireConsomme papier, encre ou items.
CanCarryVérifie si un joueur peut porter un item.Wrapper inventaireÉvite les ajouts impossibles.
GetSlotRécupère le slot d'un item.Wrapper inventaireSert aux métadonnées.
SetMetaDéfinit les métadonnées d'un item.Wrapper inventaireUtilisé pour documents imprimés ou props.
HasItemClientVérification côté client.Wrapper inventaireUtilisé par certains contrôles client.
lua
MDTConfig.InventoryExports = {
    HasItem = function(src, item, amount)
        return exports[MDTConfig.Resources.Inventory]:HasItem(src, item, amount or 1)
    end
}

Upload de fichiers

MDTConfig.Upload

ParamètreDescriptionDéfautValeurs possiblesImpact
ProviderService d'upload utilisé.fivemanagefivemanage, lbuploadDétermine la méthode d'upload des photos.
FiveManage.ApiKeyClé API FiveManage.Valeur privéeClé API valideAutorise l'upload vers FiveManage.
FiveManage.Base64EndpointEndpoint base64.API FiveManage v3URL valideUpload des images base64.
FiveManage.FileEndpointEndpoint fichier.API FiveManage v3URL valideSuppression ou gestion des fichiers.
FiveManage.DefaultPathDossier d'upload par défaut.mdt/photosChemin texteOrganise les fichiers uploadés.
FiveManage.UseDepartmentSubfolderSous-dossier par département.truetrue, falseSépare les uploads par département.
FiveManage.MaxFileSizeMBTaille maximale configurée.10NombreDéfini, mais non appliqué actuellement côté serveur.
FiveManage.AllowedMimeTypesTypes MIME autorisés.PNG, JPG, JPEG, WEBPTable MIMEFiltre les formats autorisés.
LbUpload.ResourceNameRessource lb-upload.lb-uploadNom de ressource valideUtilisé avec le provider LB.
LbUpload.AllowedMimeTypesTypes MIME autorisés LB.PNG, JPG, JPEG, WEBPTable MIMEFiltre les formats LB.
lua
MDTConfig.Upload = {
    Provider = "fivemanage",

    FiveManage = {
        ApiKey = GetConvar("mdt_fivemanage_api_key", "YOUR_FIVEMANAGE_API_KEY"),
        DefaultPath = "mdt/photos",
        UseDepartmentSubfolder = true,
        MaxFileSizeMB = 10,
        AllowedMimeTypes = {
            ["image/png"] = true,
            ["image/jpeg"] = true,
            ["image/jpg"] = true,
            ["image/webp"] = true,
        }
    }
}
cfg
set mdt_fivemanage_api_key "YOUR_FIVEMANAGE_API_KEY"

[!warning] Le commentaire de configuration mentionne lb-upload, mais le code actuel vérifie lbupload. Utilisez fivemanage par défaut ou adaptez le provider dans le code si nécessaire.


Logs Discord

MDTConfig.Logs

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive les logs Discord.truetrue, falseDésactive ou active tous les logs MDT.
WebhooksWebhooks par catégorie.Table fournieURL Discord ou videEnvoie chaque action vers le bon salon.
ColorsCouleurs Discord par catégorie.Table fournieCouleur hexadécimale LuaPersonnalise les embeds.
lua
MDTConfig.Logs = {
    Enabled = true,

    Webhooks = {
        general = "YOUR_DISCORD_WEBHOOK",
        arrests = "YOUR_DISCORD_WEBHOOK",
        cameras = "YOUR_DISCORD_WEBHOOK",
    },

    Colors = {
        general = 0x5865F2,
        arrests = 0x8B0000,
        cameras = 0x1E90FF,
    }
}

Catégories de logs disponibles

CatégorieUsage
generalLogs généraux
arrestsArrestations
camerasCaméras
dojJustice
citizensCitoyens
ftoFormation
photosPhotos
recruitmentRecrutement
stpSTP
departmentsDépartements
settingsParamètres
complaintsPlaintes
vehiclesVéhicules
finesAmendes
drivePermis
chatChat
dispatchDispatch
routesheetFeuilles de route
gangsGangs
documentsDocuments
medicalMédical
police_statsStatistiques police
investigationsEnquêtes
braceletsBracelets
eventsÉvénements
statementsDéclarations
seizuresSaisies
incident_reportsRapports d'incident
operation_reportsRapports d'opération
ois_reportsRapports OIS
mailMail
formsFormulaires
bipsBIPs
absencesAbsences
service_sessionsSessions de service

[!warning] Les clés fines et doj sont présentes plusieurs fois dans la configuration actuelle. En Lua, la dernière valeur écrase les précédentes.

[!warning] La valeur du webhook gangs contient un espace au début dans la configuration actuelle. Cela peut rendre l'URL invalide.


Véhicules

MDTConfig.Vehicles

ParamètreDescriptionDéfautValeurs possiblesImpact
SourceFramework utilisé pour les véhicules.esxesx, qbcore, standaloneDétermine quelle structure SQL est utilisée.
ESX.TableTable SQL ESX.owned_vehiclesNom de table SQLSource des véhicules ESX.
ESX.PlateColumnColonne plaque ESX.plateNom de colonne SQLIdentifie les véhicules par plaque.
ESX.OwnerColumnColonne propriétaire ESX.ownerNom de colonne SQLLie le véhicule au citoyen.
ESX.ModelJsonChemin JSON du modèle.$.modelChemin JSONLit le modèle depuis les propriétés.
QBCore.TableTable SQL QBCore.player_vehiclesNom de table SQLSource des véhicules QBCore.
QBCore.PlateColumnColonne plaque QBCore.plateNom de colonne SQLIdentifie les véhicules QBCore.
QBCore.OwnerColumnColonne propriétaire QBCore.citizenidNom de colonne SQLLie le véhicule au citoyen.
StandaloneConfiguration libre.Table videTable personnaliséePrévu pour une intégration custom.
lua
MDTConfig.Vehicles = {
    Source = "esx",

    ESX = {
        Table = "owned_vehicles",
        PlateColumn = "plate",
        OwnerColumn = "owner",
        ModelJson = "$.model",
    },

    QBCore = {
        Table = "player_vehicles",
        PlateColumn = "plate",
        OwnerColumn = "citizenid",
        ModelJson = "$.model",
    },

    Standalone = {}
}

Citoyens

MDTConfig.Citizens

ParamètreDescriptionDéfautValeurs possiblesImpact
SourceFramework utilisé pour les citoyens.esxesx, qbcore, standaloneDétermine la source SQL des citoyens.
ESX.TableTable citoyens ESX.usersNom de table SQLSource des profils citoyens.
ESX.IdentifierColColonne identifiant ESX.identifierNom de colonne SQLIdentifiant unique citoyen.
ESX.FirstNameColColonne prénom.firstnameNom de colonne SQLAffichage identité.
ESX.LastNameColColonne nom.lastnameNom de colonne SQLAffichage identité.
ESX.BirthDateColColonne date de naissance.dateofbirthNom de colonne SQLProfil citoyen.
ESX.GenderColColonne genre.sexNom de colonne SQLProfil citoyen.
ESX.GenderIsNumericGenre numérique ou texte.falsetrue, falseDétermine le mapping du genre.
ESX.GenderMapMapping des genres.m, fTable LuaTraduit les valeurs SQL.
ESX.PhoneColColonne téléphone.phone_numberNom de colonne SQLAffiche le numéro citoyen.
ESX.FilterNotNullColonne obligatoire.firstnameNom de colonne SQLÉvite les profils incomplets.
ESX.OrderByTri SQL.lastname ASC, firstname ASCClause SQLTrie la liste des citoyens.
QBCore.TableTable citoyens QBCore.playersNom de table SQLSource QBCore.
QBCore.IdentifierColIdentifiant QBCore.citizenidNom de colonne SQLIdentifiant citoyen.
QBCore.CharInfoFieldChamp JSON charinfo.charinfoNom de colonne SQLLit identité QBCore.
Standalone.TableTable custom.mdt_citizensNom de table SQLSource standalone.
lua
MDTConfig.Citizens = {
    Source = "esx",

    ESX = {
        Table = "users",
        IdentifierCol = "identifier",
        FirstNameCol = "firstname",
        LastNameCol = "lastname",
        BirthDateCol = "dateofbirth",
        GenderCol = "sex",
        GenderIsNumeric = false,
        GenderMap = {
            ["m"] = "Homme",
            ["f"] = "Femme",
        },
        PhoneCol = "phone_number",
        FilterNotNull = "firstname",
        OrderBy = "lastname ASC, firstname ASC",
    }
}

[!warning] MDTConfig.Citizens.Licenses est défini dans la configuration actuelle, mais le module licences lit MDTConfig.Server.Licenses. Les réglages SQL des licences placés sous Citizens.Licenses ne sont donc pas appliqués actuellement.


Types de licences

MDTConfig.LicenseTypes

ParamètreDescriptionDéfautValeurs possiblesImpact
typeIdentifiant de licence.drive, weapon, etc.Texte uniqueUtilisé pour retrouver la licence.
labelNom affiché.Libellé françaisTexteAffiché dans le MDT.
max_pointsNombre maximum de points.12 ou 0Nombre0 désactive la logique de points.
lua
MDTConfig.LicenseTypes = {
    { type = "drive", label = "Permis de conduire", max_points = 12 },
    { type = "drive_bike", label = "Permis moto", max_points = 12 },
    { type = "drive_truck", label = "Permis poids lourd", max_points = 12 },
    { type = "dmv", label = "Code de la route", max_points = 0 },
    { type = "weapon", label = "Permis port d'arme", max_points = 0 },
    { type = "hunting", label = "Permis de chasse", max_points = 0 },
}

Props MDT

MDTConfig.Props

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive le menu props.truetrue, falseContrôle l'ouverture du menu props.
PlaceModeMode de placement prévu.itemTexteDéfini mais non utilisé actuellement.
PlaceCommandCommande prévue de placement.mdtpropCommande FiveMDéfini mais non utilisé actuellement.
InventoryResourceRessource inventaire.origen_inventoryNom de ressourceUtilisé pour les items de props.
GizmoResourceRessource gizmo.object_gizmoNom de ressourceSert au placement d'objet.
TargetResourceRessource target.ox_targetNom de ressourceSert aux interactions.
ModelsListe des props disponibles.Ordinateur, imprimanteTable de modèlesDéfinit les objets plaçables.
Target.LabelTexte de l'interaction target.Traduction localeTexteLabel affiché au joueur.
Target.IconIcône target.fa-solid fa-computerIcône FontAwesomeIcône de l'interaction.
Target.DistanceDistance d'interaction.2.0NombreDistance maximale d'utilisation.
lua
MDTConfig.Props = {
    Enabled = true,
    PlaceMode = "item",
    PlaceCommand = "mdtprop",

    Models = {
        {
            model = "ba_prop_battle_club_computer_01",
            label = "Ordinateur",
            item = "ordinateur",
            type = "computer",
        },
        {
            model = "prop_printer_01",
            label = "Imprimante",
            item = "imprimante",
            type = "printer",
        },
    },

    Target = {
        Label = _L("lua.props.target.open_mdt"),
        Icon = "fa-solid fa-computer",
        Distance = 2.0,
    }
}

[!warning] PlaceMode et PlaceCommand sont présents mais aucune utilisation active n'a été trouvée dans le code actuel.


Imprimante

MDTConfig.Printer

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive le système d'impression.truetrue, falsePermet l'impression de documents.
Items.PaperItem papier.paperNom d'itemConsommé à l'impression.
Items.InkBlackItem encre noire.ink_blackNom d'itemUtilisé pour l'impression noir et blanc.
Items.InkColorItem encre couleur.ink_colorNom d'itemUtilisé pour l'impression couleur.
Items.PrintedDocItem document imprimé.printed_docNom d'itemDonné au joueur après impression.
InkUse.BlackWhiteEncre noire consommée.5NombreCoût d'une impression noir et blanc.
InkUse.ColorEncre couleur consommée.10NombreCoût couleur.
InkUse.BlackForColorEncre noire consommée en couleur.3NombreCoût complémentaire couleur.
InkRefillQuantité restaurée par recharge.100NombreRecharge d'encre.
LowInkWarningSeuil d'alerte encre faible.20NombreAffiche une alerte.
ScreenshotProviderProvider de capture/upload.fivemanagefivemanage, lb-upload, screenshot-basic, customDétermine comment l'impression capture le document.
ScreenshotResourceRessource screenshot.screenshot-basicNom de ressourceUtilisée selon le provider.
lua
MDTConfig.Printer = {
    Enabled = true,

    Items = {
        Paper = "paper",
        InkBlack = "ink_black",
        InkColor = "ink_color",
        PrintedDoc = "printed_doc",
    },

    InkUse = {
        BlackWhite = 5,
        Color = 10,
        BlackForColor = 3,
    },

    InkRefill = 100,
    LowInkWarning = 20,
    ScreenshotProvider = "fivemanage",
    ScreenshotResource = MDTConfig.Resources.Screenshot,
}

Facturation

MDTConfig.Billing

ParamètreDescriptionDéfautValeurs possiblesImpact
EnabledActive la facturation.truetrue, falsePermet de créer des factures depuis le MDT.
ProviderProvider de facturation.okokBillingokokBilling, none, customDétermine comment les factures sont créées.
OkokBilling.TableTable SQL okokBilling.okokbillingNom de table SQLTable de destination des factures.
OkokBilling.InitialStatusStatut initial.unpaidTexteStatut donné aux nouvelles factures.
OkokBilling.FeesFrais additionnels.0NombreFrais ajoutés à la facture.
OkokBilling.PaymentDeadlineDaysDélai de paiement.7Nombre de joursDate limite de paiement.
OkokBilling.SyncIntervalSecondsIntervalle de synchronisation.60Nombre, 0 pour désactiverSynchronise les statuts de paiement.
CreateInvoiceFonction custom.nilFonction LuaUtilisé avec Provider = "custom".
lua
MDTConfig.Billing = {
    Enabled = true,
    Provider = "okokBilling",

    OkokBilling = {
        Table = "okokbilling",
        InitialStatus = "unpaid",
        Fees = 0,
        PaymentDeadlineDays = 7,
        SyncIntervalSeconds = 60,
    },

    CreateInvoice = function(ctx)
        return nil
    end
}

Permissions

Structure générale

lua
MDTConfig.Permissions = {
    CategoryAliases = {},
    Groups = {},
    Definitions = {}
}

CategoryAliases

ParamètreDescriptionDéfautImpact
policeAlias police.POLICE, FEDERALDonne accès aux permissions police et fédéral.
federalAlias fédéral.FEDERAL, POLICECroise les accès police/fédéral.
medicalAlias médical.HEALTH, SANTE, MEDICAL, EMSRegroupe les services médicaux.
healthAlias santé.HEALTH, SANTE, MEDICAL, EMSVariante du médical.
santeAlias santé FR.SANTE, HEALTH, MEDICAL, EMSVariante française.
emsAlias EMS.EMS, HEALTH, SANTE, MEDICALVariante EMS.
dojAlias justice.DOJAccès justice.
lua
CategoryAliases = {
    police = { "POLICE", "FEDERAL" },
    medical = { "HEALTH", "SANTE", "MEDICAL", "EMS" },
    doj = { "DOJ" },
}

Groupes de permissions

GroupeOrdreUsage
access10Accès généraux et pages principales
patrol20Modules de patrouille
cases30Dossiers police
medical40Modules médicaux
doj50Modules justice
admin60Administration MDT
staff70Fonctions staff uniquement

Champs d'une permission

ChampDescription
keyIdentifiant unique de la permission.
labelNom affiché dans le MDT.
groupGroupe logique de la permission.
categoriesCatégories de départements autorisées.
defaultPermission accordée automatiquement si true.
staffOnlyPermission réservée au staff si true.
lua
{
    key = "case_citizens",
    label = _L("permissions.case_citizens"),
    group = "cases",
    categories = { "POLICE", "FEDERAL" },
}

Référence des permissions disponibles

PermissionGroupeCatégoriesStatut
access_homeaccessALLPar défaut
page_homeaccessALLPar défaut
access_patrolaccessPolice, fédéral, médicalStandard
access_casesaccessPolice, fédéralStandard
access_medicalaccessMédicalStandard
access_dojaccessDOJStandard
access_adminaccessALLStandard
patrol_dispatchpatrolPolice, fédéral, médicalStandard
patrol_routesheetpatrolPolice, fédéral, médicalStandard
patrol_discussionspatrolPolice, fédéral, médicalStandard
patrol_discussions_managepatrolPolice, fédéral, médicalStandard
patrol_my_casespatrolPolice, fédéral, médicalStandard
patrol_cameraspatrolPolice, fédéralStandard
patrol_spreadsheetpatrolPolice, fédéral, médicalStandard
page_citizenscasesPolice, fédéralStandard
case_citizenscasesPolice, fédéralStandard
case_vehiclescasesPolice, fédéralStandard
case_licensescasesPolice, fédéralStandard
case_traffic_ticketscasesPolice, fédéralStandard
case_complaintscasesPolice, fédéralStandard
case_summonscasesPolice, fédéralStandard
case_gangscasesPolice, fédéralStandard
case_filescasesPolice, fédéralStandard
case_ftocasesPolice, fédéralStandard
case_stpcasesPolice, fédéralStandard
case_mailscasesPolice, fédéralStandard
case_formscasesPolice, fédéralStandard
case_forms_managecasesPolice, fédéralStandard
case_servicescasesPolice, fédéralStandard
case_bipcasesPolice, fédéralStandard
case_recruitmentcasesPolice, fédéralStandard
case_absencescasesPolice, fédéralStandard
case_photoscasesPolice, fédéralStandard
case_arrest_reportscasesPolice, fédéralStandard
case_ois_reportscasesPolice, fédéralStandard
case_ois_reports_managecasesPolice, fédéralStandard
case_operation_reportscasesPolice, fédéralStandard
case_incident_reportscasesPolice, fédéralStandard
case_seizurescasesPolice, fédéralStandard
case_statementscasesPolice, fédéralStandard
case_eventscasesPolice, fédéralStandard
case_finescasesPolice, fédéralStandard
case_braceletscasesPolice, fédéralStandard
case_localisationcasesPolice, fédéralStandard
case_wiretapcasesPolice, fédéralStandard
case_investigationscasesPolice, fédéralStandard
case_patrol_detachmentcasesPolice, fédéralStandard
case_patrol_detachment_editcasesPolice, fédéralStandard
case_patrol_detachment_createcasesPolice, fédéralStandard
medical_dispatchmedicalMédicalStandard
medical_patientsmedicalMédicalStandard
medical_reportsmedicalMédicalStandard
medical_admissionsmedicalMédicalStandard
medical_statsmedicalMédicalStandard
medical_deathsmedicalMédicalStandard
medical_shiftsmedicalMédicalStandard
medical_bedsmedicalMédicalStandard
medical_psychiatricmedicalMédicalStandard
medical_psychiatric_accessmedicalMédicalStandard
doj_warrantsdojDOJStandard
doj_ccwdojDOJStandard
doj_criminal_recordsdojDOJStandard
doj_judgementsdojDOJStandard
doj_documentsdojDOJStandard
doj_investigationsdojDOJStandard
doj_scheduledojDOJStandard
doj_schedule_editdojDOJStandard
admin_agentsadminALLStandard
admin_rolesadminALLStandard
admin_settingsadminALLStandard
admin_print_logsadminALLStandard
page_departmentsstaffSTAFF_ONLYStaff uniquement
staff_onlystaffSTAFF_ONLYStaff uniquement

Antennes de triangulation

MDT_CELL_TOWERS

ÉlémentValeur
DescriptionListe des antennes utilisées pour estimer une position par triangulation.
Valeur par défaut115 entrées de coordonnées.
Format{ x = number, y = number, z = number }
ImpactPlus la couverture est dense, plus la triangulation est cohérente.
lua
MDT_CELL_TOWERS = {
    { x = 100.0, y = 200.0, z = 30.0 },
    { x = 500.0, y = -1200.0, z = 80.0 },
}

[!info] Les coordonnées utilisent l'espace monde GTA. Les trois antennes les plus proches sont utilisées pour générer une estimation de localisation.


Exports publics

MDTConfig.ExportReference

ÉlémentValeur
DescriptionCatalogue documentaire des exports publics client, serveur et assets externes.
Valeur par défautResourceName = "mx_mdt"
ImpactSert de référence pour les développeurs, mais ne déclare pas directement les exports runtime.
lua
MDTConfig.ExportReference = {
    ResourceName = "mx_mdt",
    Client = {},
    Server = {},
    ExternalAssets = {},
}

[!info] Ce fichier est une référence documentaire. L'implémentation réelle des exports se trouve dans les fichiers client, serveur et assets concernés.


Paramètres définis mais non appliqués actuellement

ParamètreStatutDétail
Client.Commands.BackupMenuInutiliséAucune utilisation active trouvée.
Client.Keys.BackupMenuInutiliséAucune utilisation active trouvée.
Megaphone.VolumeInutiliséDéfini mais non lu par le module mégaphone actuel.
Cameras.RefreshIntervalMsPartiellement inactifLe code utilise aussi une valeur hardcodée de 1500.
Cameras.Bodycam.AttachRotInutiliséRotation hardcodée dans le code.
Cameras.Bodycam.VehicleRotInutiliséRotation hardcodée dans le code.
ANPR.DetectionDistanceInactifValeur hardcodée dans le code actuel.
ANPR.DotProductThresholdInactifValeur hardcodée dans le code actuel.
ANPR.SpeedMultiplierInactifValeur hardcodée dans le code actuel.
Map.DefaultCenterInutiliséAucune consommation active trouvée.
Map.DefaultZoomInutiliséAucune consommation active trouvée.
Map.BraceletRefreshMsInutiliséAucune consommation active trouvée.
Map.ZoneThresholdNon propagéRéférence UI possible, mais non envoyé clairement au NUI actuellement.
Props.PlaceModeInutiliséAucune utilisation active trouvée.
Props.PlaceCommandInutiliséAucune commande active trouvée.
Upload.FiveManage.MaxFileSizeMBNon appliquéDéfini mais non utilisé pour bloquer l'upload.
Citizens.LicensesMauvais emplacementLe module licences lit MDTConfig.Server.Licenses.
LimitsPeu ou pas appliquéLes recherches serveur utilisent souvent des limites hardcodées.
Auth.RequireDiscordIdentifierNon effectifLe flux actuel demande toujours un Discord détecté.

Exemple de configuration minimale recommandée

lua
Config.Locale = "fr"

MDTConfig.Resources = {
    Inventory  = "ox_inventory",
    Target     = "ox_target",
    Gizmo      = "object_gizmo",
    Screenshot = "screenshot-basic",
    Phone      = "lb-phone",
}

MDTConfig.Client.RequiredItem = {
    Enabled = true,
    Item = "mdt_tablet",
    Provider = MDTConfig.Resources.Inventory,
}

MDTConfig.Vehicles = {
    Source = "esx",
}

MDTConfig.Citizens = {
    Source = "esx",
}

MDTConfig.Upload.Provider = "fivemanage"
cfg
set mdt_discord_bot_token "YOUR_DISCORD_BOT_TOKEN"
set mdt_discord_guild_ids "YOUR_GUILD_ID"
set mdt_staff_role_id "YOUR_STAFF_ROLE_ID"
set mdt_fivemanage_api_key "YOUR_FIVEMANAGE_API_KEY"

[!success] Cette configuration conserve les valeurs sûres du script tout en déplaçant les informations sensibles dans les convars serveur.