# Installation

Ce guide utilise le paquet de distribution dont l’interface est déjà compilée. Node.js et la recompilation de l’UI ne sont pas nécessaires à l’installation.

## Prérequis

| Composant | Quand en avez-vous besoin ? |
| --- | --- |
| `oxmysql` et une connexion à la base de données opérationnelle | Obligatoires pour enregistrer les données de la ressource. |
| Qbox, QBCore ou ESX | Si vous utilisez leur économie et leurs permissions. Vous pouvez connecter une autre économie avec des callbacks standalone. |
| Packs de tatouages | Facultatifs. Vous pouvez n’en installer aucun, certains ou tous. |
| `ox_lib` | Facultatif pour la notification TextUI ; une solution native existe. |
| Système d’apparence | Si votre serveur en utilise un, consultez le [bridge d’apparence](https://docs.cxgstudios.com/docs/fr/01-cxg-tattoos/05-integraciones.md#apparence-et-chargement-du-personnage). |

Les blueprints sont partagés au moyen de codes. Vous n’avez pas besoin d’ajouter un objet d’inventaire pour utiliser la configuration fournie.

## Placer la ressource

1. Décompressez le paquet dans un dossier de ressources de votre serveur.
2. Dans ces guides, nous utilisons `cxg-tattoos` comme nom de dossier. Si votre dossier porte un autre nom, utilisez son nom réel dans les commandes `ensure` et `restart`.
3. Conservez la structure fournie. Vérifiez que `config.lua`, `shared/tattoos.json`, `bridge/` et `ui/dist/index.html` se trouvent avec les autres fichiers du paquet.
4. Configurez votre connexion à la base de données et vérifiez que `oxmysql` démarre correctement.

## Ordre de démarrage

Exemple avec Qbox et sans pack externe :

```cfg
ensure oxmysql
ensure qbx_core
ensure cxg-tattoos
```

Avec QBCore ou ESX, remplacez `qbx_core` par `qb-core` ou `es_extended`. Démarrez votre système d’apparence avant la ressource si vous en utilisez un. En mode standalone, configurez d’abord les [callbacks de paiement et de permission](https://docs.cxgstudios.com/docs/fr/01-cxg-tattoos/05-integraciones.md).

Si vous avez des packs, démarrez uniquement ceux qui sont installés avant la ressource. Par exemple :

```cfg
ensure oxmysql
ensure qbx_core
ensure xgc_TattooClasic
ensure xgc_TattooGangs
ensure cxg-tattoos
```

N’ajoutez pas de lignes `ensure` pour les packs que vous n’avez pas. Les sources par défaut peuvent rester dans `Config.TattooCatalog.sources` : les packs qui ne sont pas démarrés sont ignorés.

## Premier démarrage

La ressource prépare automatiquement son stockage. Pour une nouvelle installation, vous n’avez pas besoin d’importer un schéma manuellement.

Avant de tester, vérifiez dans `config.lua` :

- `Config.Locale` : langue globale.
- `Config.Purchases` : économie et comptes de paiement.
- `Config.Permissions` : accès administratif.
- `Config.Identity` : système d’identités du serveur et identifiant utilisé pour enregistrer et récupérer les données du joueur. Consultez [Système d’identités](https://docs.cxgstudios.com/docs/fr/01-cxg-tattoos/03-configuracion.md#système-didentités).
- `Config.Shops` : emplacements initiaux des boutiques.

Rendez-vous dans une boutique configurée et utilisez son interaction. Vérifiez le catalogue, un aperçu et un achat avec un personnage de test. Rechargez le personnage pour vérifier que le tatouage est conservé.

La commande administrative fournie se configure dans `Config.AdminCommand` ; son nom initial est `/tattooadmin`. Consultez [permissions et paiements](https://docs.cxgstudios.com/docs/fr/01-cxg-tattoos/05-integraciones.md) avant de l’utiliser.

## Appliquer les modifications

Après avoir modifié `config.lua` ou un bridge, enregistrez le fichier et redémarrez la ressource :

```cfg
restart cxg-tattoos
```

Les sources du catalogue sont relues au démarrage et peuvent être synchronisées depuis le panneau d’administration. Les réglages enregistrés depuis ce panneau sont conservés ; consultez [Configuration](https://docs.cxgstudios.com/docs/fr/01-cxg-tattoos/03-configuracion.md) et [Catalogue](https://docs.cxgstudios.com/docs/fr/01-cxg-tattoos/04-catalogo.md) avant de vous attendre à ce qu’une valeur du fichier les remplace.

## Problèmes fréquents

| Symptôme | Vérifications |
| --- | --- |
| La ressource ne démarre pas | Vérifiez que `oxmysql` est démarré, que la connexion fonctionne et que le paquet est complet. |
| Un pack manque dans la boutique | Vérifiez que sa ressource est démarrée, que `enabled` n’est pas défini sur `false` et que le chemin JSON correspond à celui du pack. |
| L’interface est vide | Vérifiez que `ui/dist/index.html` et les fichiers référencés dans `ui/dist/assets/` ont été copiés ensemble. |
| Le panneau refuse l’accès | Vérifiez `Config.AdminCommand.permission`, les bindings de permissions et les rôles ou ACE configurés. |
| Le paiement est refusé | Vérifiez le framework choisi, les noms de ressources, le solde et les callbacks standalone, le cas échéant. |
| Deux interactions de tatouage se trouvent au même endroit | Vérifiez qu’une autre ressource d’apparence ou de boutiques n’active pas également cet emplacement. Ne gardez qu’un seul accès à la boutique concernée. |
| Une modification de boutique ou de niveau n’est pas appliquée | Vérifiez qu’un réglage n’a pas déjà été enregistré depuis le panneau. Modifiez-y la valeur effective. |

Vous pouvez activer temporairement `Config.Debug` et `Config.Permissions.debug` pour diagnostiquer les problèmes. Désactivez-les lorsque vous avez terminé.

[Continuer avec la configuration](https://docs.cxgstudios.com/docs/fr/01-cxg-tattoos/03-configuracion.md).


