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
| Option | Défaut | Description |
|---|---|---|
Config.Debug | false | Active 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.DefaultApp | false | Si true, l'app est préinstallée sur le téléphone de chaque joueur (sans App Store). |
Config.Icon | nui://…/app/icon.png | Icône affichée sur l'écran d'accueil du téléphone. |
Config.Image | nui://…/app/icon.png | Image 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.InitialBalance | 0 | Solde de trading ($) offert à la création d'un nouveau compte. |
Config.TransactionFee | 0.005 | Frais sur chaque achat/vente de crypto — soit 0,5 %. |
Config.StockTransactionFee | 0.01 | Frais sur chaque achat/vente d'action — soit 1 %. |
Config.UpdateInterval | 30 | Fréquence (s) de recalcul des cours crypto. Plus bas = plus volatil. |
Config.StockUpdateInterval | 300 | Fréquence (s) de recalcul des cours des actions — soit 5 minutes. |
Config.HistorySnapshotInterval | 300 | Fréquence (s) des instantanés prix + valeur de portefeuille (pour les graphiques). |
Config.MaxHistoryDays | 30 | Nombre 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 :
| Champ | Rôle |
|---|---|
symbol | Identifiant unique affiché dans l'UI (majuscules, 3-5 caractères). À ne pas changer après lancement (casse les positions existantes). |
name | Nom complet affiché à côté du symbole. |
price | Prix de départ ($). Utilisé uniquement au premier ajout du coin en base. |
volatility | Amplitude de variation par tick (0.01 = jusqu'à 1 %, 0.05 = jusqu'à 5 %). |
trend | Biais long terme, de -1.0 (baissier) à 1.0 (haussier), 0.0 = neutre. |
minPrice | Plancher : le prix ne descend jamais en dessous. |
maxPrice | Plafond : le prix ne monte jamais au-dessus. |
icon | URL de l'icône (nui://… local ou https://… externe). |
Les coins fournis par défaut :
| Symbole | Nom | Prix départ | Volatilité | Plancher | Plafond |
|---|---|---|---|---|---|
FTC | Fanta Coin | 100,00 | 0.015 | 10,00 | 500,00 |
MZC | Maze Coin | 12,00 | 0.02 | 1,00 | 100,00 |
LIT | Life Token | 3,50 | 0.02 | 0,50 | 50,00 |
LBC | LB Coin | 50,00 | 0.015 | 5,00 | 300,00 |
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 :
| Champ | Rôle |
|---|---|
symbol | Identifiant unique. En mode revenue, il doit correspondre au nom du job en jeu. En mode volatility, n'importe quel identifiant unique. |
name | Nom de l'entreprise affiché dans l'UI. |
basePrice | Prix 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. |
minPrice | Optionnel. Plancher. Par défaut basePrice * 0.1. |
maxPrice | Optionnel. Plafond. Par défaut basePrice * 10. |
icon | URL 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.
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 :
| Option | Défaut | Description |
|---|---|---|
Config.StockPriceMode | 'volatility' | 'volatility' (aléatoire, recommandé, sans banking) ou 'revenue' (lié au revenu hebdomadaire). |
Config.StockReferenceRevenue | 50000 | (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 :
-- '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.
| Champ | Défaut | Rôle |
|---|---|---|
enabled | false | Interrupteur 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
symbolde coin/action après le lancement : cela casse les positions existantes. - Réduisez
Config.UpdateInterval/Config.StockUpdateIntervalpour 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.Debuguniquement en développement.