Skip to content

Configuration

Toute la configuration de TradeX 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). Toutes les options y sont commentées en détail.

Options principales

OptionDéfautDescription
Config.DebugfalseActive les logs de débogage en console serveur (développement uniquement).
Config.PhoneName'lb-phone'Nom de la ressource téléphone. Doit correspondre à votre téléphone.
Config.DefaultAppfalseSi true, l'app est préinstallée sur le téléphone de chaque joueur (sans App Store).
Config.Iconnui://…/app/icon.pngIcône affichée sur l'écran d'accueil du téléphone.
Config.Imagenui://…/app/icon.pngImage affichée dans l'App Store / l'aperçu de l'app.
Config.Locale'en'Langue de l'interface. Doit correspondre à un fichier de locales/.
Config.InitialBalance0Solde de trading ($) offert à la création d'un nouveau compte.
Config.TransactionFee0.005Frais sur chaque achat/vente de crypto — soit 0,5 %.
Config.StockTransactionFee0.01Frais sur chaque achat/vente d'action — soit 1 %.
Config.UpdateInterval30Fréquence (s) de recalcul des cours crypto. Plus bas = plus volatil.
Config.StockUpdateInterval300Fréquence (s) de recalcul des cours des actions — soit 5 minutes.
Config.HistorySnapshotInterval300Fréquence (s) des instantanés prix + valeur de portefeuille (pour les graphiques).
Config.MaxHistoryDays30Nombre de jours d'historique conservés. Au-delà, les entrées sont supprimées.

NOTE

Config.TransactionFee = 0.005 signifie qu'un achat de 1000 $ de crypto déduit 1005 $ au total (frais de 0,5 %).

Cryptomonnaies (Config.Coins)

Ajoutez, retirez ou modifiez librement les coins. Chaque entrée accepte les champs suivants :

ChampRôle
symbolIdentifiant unique affiché dans l'UI (majuscules, 3-5 caractères). À ne pas changer après lancement (casse les positions existantes).
nameNom complet affiché à côté du symbole.
pricePrix de départ ($). Utilisé uniquement au premier ajout du coin en base.
volatilityAmplitude de variation par tick (0.01 = jusqu'à 1 %, 0.05 = jusqu'à 5 %).
trendBiais long terme, de -1.0 (baissier) à 1.0 (haussier), 0.0 = neutre.
minPricePlancher : le prix ne descend jamais en dessous.
maxPricePlafond : le prix ne monte jamais au-dessus.
iconURL de l'icône (nui://… local ou https://… externe).

Les coins fournis par défaut :

SymboleNomPrix départVolatilitéPlancherPlafond
FTCFanta Coin100,000.01510,00500,00
MZCMaze Coin12,000.021,00100,00
LITLife Token3,500.020,5050,00
LBCLB Coin50,000.0155,00300,00
lua
Config.Coins = {
    {
        symbol = 'FTC',
        name = 'Fanta Coin',
        price = 100.00,
        volatility = 0.015,
        trend = 0.0,
        minPrice = 10.00,
        maxPrice = 500.00,
        icon = 'nui://lo_tradex/ui/dist/assets/coins/ftc.png'
    },
    -- … MZC, LIT, LBC
}

Actions (Config.Stocks)

Les actions représentent des parts d'entreprises. Champs disponibles :

ChampRôle
symbolIdentifiant unique. En mode revenue, il doit correspondre au nom du job en jeu. En mode volatility, n'importe quel identifiant unique.
nameNom de l'entreprise affiché dans l'UI.
basePricePrix de référence ($) : prix de départ et ancre des calculs en mode revenu.
sensitivity(Mode revenu) Force de l'impact du revenu sur le prix, de 0.0 à 1.0.
volatility(Mode volatilité) Variation aléatoire par tick (0.02 = ±2 %).
trend(Mode volatilité) -1.0 baissier à 1.0 haussier, 0 = neutre.
minPriceOptionnel. Plancher. Par défaut basePrice * 0.1.
maxPriceOptionnel. Plafond. Par défaut basePrice * 10.
iconURL de l'icône (nui://… local ou https://… externe).

10 actions sont fournies par défaut (mechanic, drivein, sightings, pizza, mirror, lsfood, reporter, lsevents, studio, kebab), avec des basePrice de 8 à 40 $ et une sensitivity de 0.3 à 0.6.

lua
Config.Stocks = {
    {
        symbol = 'mechanic',
        name = 'Pitstop Garage',
        basePrice = 15.00,
        sensitivity = 0.5,
        volatility = 0.02,
        trend = 0.0,
        icon = 'https://files.fantasticrp.fr/…png'
    },
    -- … 9 autres entreprises
}

Mode de prix des actions

Choisissez un mode via Config.StockPriceMode :

OptionDéfautDescription
Config.StockPriceMode'volatility''volatility' (aléatoire, recommandé, sans banking) ou 'revenue' (lié au revenu hebdomadaire).
Config.StockReferenceRevenue50000(Mode revenu) Revenu hebdomadaire « neutre ». Au-dessus, le cours monte ; en dessous, il baisse.
Config.StockBankingSystem'auto'(Mode revenu) Script bancaire lu pour le revenu (voir ci-dessous).

Valeurs possibles pour Config.StockBankingSystem :

lua
-- 'auto'            : détection automatique (lo_banking, esx_society,
--                     qb-banking, qb-management, Renewed-Banking, dans cet ordre)
-- 'lo_banking'      : force lo_banking
-- 'esx_society'     : force esx_society (ESX)
-- 'qb-banking'      : force qb-banking (QBCore)
-- 'qb-management'   : force qb-management (QBCore)
-- 'renewed-banking' : force Renewed-Banking
-- 'none'            : désactive le mode revenu (toujours volatilité)

WARNING

En mode revenue, le symbol de chaque action doit exactement correspondre au nom du job de l'entreprise, sinon le script ne pourra pas récupérer le bon compte. Si revenue est choisi sans script bancaire détecté, TradeX bascule automatiquement en volatility.

Migration (optionnel)

Config.Migration permet d'importer les positions des joueurs depuis une ancienne app crypto. Désactivé par défaut.

ChampDéfautRôle
enabledfalseInterrupteur principal. true uniquement pour migrer.
sourceTable'phone_crypto'Table SQL de l'ancienne app.
identifierColumn'id'Colonne de l'identifiant joueur (souvent citizenid).
coinColumn'coin'Colonne du symbole de coin.
amountColumn'amount'Colonne de la quantité détenue.
investedColumn'invested'Colonne du montant ($) investi à l'origine.
coins{}Correspondance ancien_symbole = 'NOUVEAU_SYMBOLE'.
convertToCash{}Anciens coins disparus : leur valeur investie est rendue en cash.

NOTE

La migration s'effectue à la première création de compte d'un joueur dans TradeX : ses anciennes positions sont recréées aux nouveaux prix, en préservant la valeur investie. Le nouveau symbole doit exister dans Config.Coins.

Langues

TradeX est livré avec 2 fichiers de langue dans locales/*.json : en (anglais) et fr (français), tous deux déclarés dans fxmanifest.lua.

Pour ajouter une langue : copiez locales/en.json vers locales/xx.json, traduisez uniquement les valeurs (jamais les clés), réglez Config.Locale = 'xx', puis redémarrez la ressource.

Conseils

TIP

  • Ne modifiez jamais un symbol de coin/action après le lancement : cela casse les positions existantes.
  • Réduisez Config.UpdateInterval / Config.StockUpdateInterval pour des marchés plus nerveux, augmentez-les pour calmer la volatilité.
  • Surveillez Config.MaxHistoryDays : une valeur élevée alourdit la base mais offre des graphiques plus longs.
  • Laissez Config.StockPriceMode = 'volatility' si vous n'avez pas de script bancaire compatible.
  • Activez Config.Debug uniquement en développement.