Configuration
Toute la configuration de DarkMarket se trouve dans shared/config.lua. Ce fichier reste éditable même sur les builds protégés par escrow (il est listé dans escrow_ignore, tout comme locales/*.json).
Options principales
| Option | Défaut | Description |
|---|---|---|
Config.AppIdentifier | 'darkmarket' | Identifiant interne dans lb-phone. Ne pas changer après déploiement. |
Config.Locale | 'en' | Langue active de l'UI. Doit correspondre à un fichier de locales/. |
Config.AppIcon | 'nui://lo_darkmarket/assets/darkmarket.jpg' | Icône de l'app. Laissez '' pour l'icône par défaut de lb-phone. |
Config.AppImages | {} | Captures d'écran affichées sur la page de l'App Store. |
Config.DevMode | false | Charge localhost:3000 au lieu de ui/dist (développement). |
Config.DevURL | 'http://localhost:3000' | URL du serveur Vite en mode dev. |
Config.Storage | 'oxmysql' | Mode de persistance : 'oxmysql' ou 'memory'. |
Canaux (chats privés)
Bloc Config.Groups — paramètres des canaux chiffrés.
| Option | Défaut | Description |
|---|---|---|
nameMin / nameMax | 2 / 32 | Longueur du nom de canal. |
aliasMin / aliasMax | 2 / 24 | Longueur de l'alias par membre. |
codeLength | 8 | Longueur du code d'accès. |
maxPerPlayer | 15 | Nombre maximal de canaux simultanés par joueur. |
historyLimit | 100 | Messages chargés à l'ouverture d'un canal. |
msgMaxLength | 1000 | Longueur maximale d'un message. |
codeAlphabet | 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789' | Caractères utilisés pour générer les codes. |
NOTE
L'alphabet par défaut exclut volontairement I, O, 0 et 1 pour éviter toute confusion visuelle lors de la lecture ou de la saisie d'un code d'accès.
Marché parallèle
Bloc Config.Market — paramètres des annonces.
| Option | Défaut | Description |
|---|---|---|
titleMin / titleMax | 3 / 80 | Longueur du titre. |
descMin / descMax | 5 / 500 | Longueur de la description. |
priceMin / priceMax | 1 / 9999999 | Bornes de prix autorisées. |
listingsLimit | 100 | Nombre d'annonces chargées. |
maxImages | 5 | Nombre maximal de photos par annonce. |
expireAfterDays | 0 | Suppression auto après X jours (0 = jamais). |
Catégories
Config.Categories définit les catégories du marché. L'id est stocké en base et ne doit pas changer ; le libellé affiché est traduit dans les fichiers de langue (clés cat_<id>), le label du config servant de repli. Gardez all en premier.
Config.Categories = {
{ id = 'all', label = 'All', icon = 'grid' },
{ id = 'weapons', label = 'Weapons', icon = 'gun' },
{ id = 'drugs', label = 'Substances', icon = 'pill' },
{ id = 'electronics', label = 'Electronics', icon = 'chip' },
{ id = 'vehicles', label = 'Vehicles', icon = 'car' },
{ id = 'services', label = 'Services', icon = 'wrench' },
{ id = 'misc', label = 'Misc', icon = 'box' },
}Stockage
Config.Storage = 'oxmysql' -- 'oxmysql' (recommandé) ou 'memory' (RAM, perdu au redémarrage)WARNING
Le mode 'memory' ne conserve aucune donnée après un redémarrage de la ressource. Réservez-le aux tests ; utilisez 'oxmysql' en production.
Notifications
Bloc Config.Notifications.
| Option | Défaut | Description |
|---|---|---|
onNewMessage | true | Notification du téléphone à chaque nouveau message. |
broadcastNewListings | true | Diffusion à tous les joueurs en ligne lors de la publication d'une annonce. |
Langues
La langue active est définie par Config.Locale (valeurs disponibles : en, fr, es, de, it, pt). Les traductions vivent dans locales/*.json et sont intégrées à l'UI.
Pour modifier des textes de l'interface, éditez le fichier correspondant dans ui/src/locales/ puis relancez npm run build. Les fichiers du dossier racine locales/ sont listés dans escrow_ignore, ils restent donc éditables sur les builds protégés par escrow.
Conseils
TIP
- Ne modifiez jamais
Config.AppIdentifierni lesidde catégories après déploiement : ils sont stockés en base. - Pour un fork, changez
Config.AppIdentifieravant la mise en production. - Une icône personnalisée se place dans
assets/(voirassets/README.md) ou via une URL hébergée. - Ajustez
maxPerPlayeretpriceMaxselon l'équilibrage RP souhaité.