> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thunder-studio.net/llms.txt
> Use this file to discover all available pages before exploring further.

# TS-Lib

> Bibliothèque utilitaire et ponts universels pour FiveM.

## Vue d'ensemble

**TS-Lib** sert à éviter la prise en charge douloureuse de plusieurs frameworks, inventaires, systèmes de garage et scripts de clés. Au lieu d'encombrer vos ressources avec des `if/else` à l'infini, `ts-lib` centralise tout sous l'espace de noms unifié `TS`.

Elle est conçue pour être injectée dynamiquement dans n'importe quel script, en gardant le code de la ressource propre, rapide et totalement indépendant.

<CardGroup cols={2}>
  <Card title="Télécharger TS-Lib" icon="download" href="https://store.thunder-studio.net/download/ts-lib">
    Obtenir la dernière version de la ressource.
  </Card>

  <Card title="Contribuer à TS-Lib" icon="hands-holding-circle" href="/fr/scripts/ts-lib/contributing">
    Proposer des ponts, correctifs et améliorations.
  </Card>
</CardGroup>

***

## Fonctionnalités

* **Détection automatique du framework** : support natif de `qb-core`, `qbx_core`, `es_extended` et `standalone`. Le framework le plus moderne disponible est choisi automatiquement ou via la configuration forcée.
* **Ponts unifiés** :
  * **Framework** : support natif de `qb-core`, `es_extended`, `qbx_core` et `standalone`.
  * **Garages** : support natif de `qb-garages`, `esx_garage`, `vms_garagesv2`, `jg-advancedgarages` et `standalone`.
  * **Clés** : support natif de `qb-vehiclekeys`, `qs-vehiclekeys` et `standalone`.
  * **Notifications** : support natif des notifications de framework (QBCore/ESX) avec une API unifiée.
* **Utilitaires centralisés** : affichages, debug et vérifications de ressources sont centralisés (`Utils.Print`, `Utils.DebugPrint`, `Utils.ErrorPrint`, `Utils.SuccessPrint`).
* **Helpers UI intégrés** : sous-titres, aide à l'écran et input texte via NUI simples (`TS.Lib.Subtitle`, `TS.Lib.TextUI`, `TS.Lib.TextInput`), utilisables aussi via exports.
* **Système de commandes** : Enregistrement de commandes avec validation de type et support des permissions (`TS.Lib.Command.add`).
* **Vérificateur de mises à jour** : Vérification automatique des mises à jour pour les ressources Thunder Scripts (`TS.CheckUpdate`).

***

## Installation

Intégrer `ts-lib` dans vos scripts est très simple.

1. Placez le dossier `ts-lib` dans votre répertoire `resources`.
2. Dans le `fxmanifest.lua` du script qui doit utiliser `ts-lib`, ajoutez cette ligne dans `shared_scripts` :

```lua theme={null}
shared_scripts {
    '@ts-lib/import.lua',
    -- Vos autres shared_scripts...
}
```

C'est tout. `ts-lib` démarre, détecte le framework du serveur, charge les configurations, expose l'espace de noms `TS` et charge dynamiquement les modules nécessaires.

***

## Configuration

Vous pouvez choisir les systèmes utilisés par `ts-lib` dans `ts-lib/config.lua`.

```lua theme={null}
Config = {
    debug = true,

    -- Framework : 'auto', 'qbcore', 'esx', 'qbox', 'standalone'
    Framework = 'auto',

    -- Garage : 'auto', 'qb-garages', 'esx_garage', 'vms_garagesv2', 'jg-advancedgarages', 'standalone'
    Garages = 'auto',

    -- Clés véhicule : 'auto', 'qb-vehiclekeys', 'qs-vehiclekeys', 'standalone'
    VehicleKeys = 'auto',

    -- Système de notifications : 'auto', 'qbcore', 'esx'
    Notify = 'auto',

    -- Correction de compatibilité zUI pour l'input texte (mettre à true si vous utilisez zUI-v2)
    zUIFix = true,

    -- URLs pour la vérification automatique des mises à jour
    UpdateCheckURL = 'https://raw.githubusercontent.com/thunder-scripts/ts-lib/main/version.json',
    UpdateCheckChangelogURL = 'https://docs.thunder-studio.net/scripts/ts-lib/changelog',

    Data = {
        Framework = {
            qbcore = 'qb-core',
            esx = 'es_extended',
            qbox = 'qbx_core',
            standalone = 'standalone',
        },
        Garages = {
            ['qb-garages']        = 'qb-garages',
            ['esx_garage']        = 'esx_garage',
            ['vms_garagesv2']     = 'vms_garagesv2',
            ['jg-advancedgarages']= 'jg-advancedgarages',
            ['standalone']        = 'standalone',
        },
        VehicleKeys = {
            ['qb-vehiclekeys'] = 'qb-vehiclekeys',
            ['qs-vehiclekeys'] = 'qs-vehiclekeys',
            ['standalone']     = 'standalone',
        },
        Notify = {
            qbcore = 'qb-core',
            esx = 'esx_notify',
        },
    },
}
```

***

## Référence API

Pour une description détaillée fonction par fonction de TS-Lib et de ses ponts, consultez la page [Référence API](/fr/scripts/ts-lib/api-reference).
