> ## Documentation Index
> Fetch the complete documentation index at: https://rust-co.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Magasins et overlays personnalisés

> Ajoutez des magasins de vêtements, des barbiers et des garde-robes, et importez vos propres tatouages et maquillages.

## Magasins

Chaque boutique de votre serveur est une entrée dans `Config.Stores` à l'intérieur de `rco-appearance/config/config.lua`. Appearance est livré avec des magasins de vêtements, des barbiers et des garde-robes dans les principales villes, et vous pouvez en ajouter, déplacer ou supprimer autant que vous le souhaitez.

Un magasin ressemble à ceci :

```lua theme={"dark"}
{
    id = 'clothing_valentine',
    type = 'clothing',
    label = 'Clothing Store',
    prompt = vector3(-325.95, 806.58, 117.89),
    fitting = vector4(-327.77, 807.77, 117.89, 254.59),
    blip = vector3(-327.07, 807.77, 117.89),
    showBlip = true,
},
```

| Champ      | Description                                                                                                                                                                                                                  |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`       | Nom unique de ce magasin. Utilisé en interne ; jamais affiché aux joueurs.                                                                                                                                                   |
| `type`     | `clothing`, `barber`, `wardrobe` ou `tattoo`. Détermine quelles parties de l'interface s'ouvrent.                                                                                                                            |
| `label`    | Texte affiché sur l'invite d'interaction et le blip de la carte.                                                                                                                                                             |
| `prompt`   | Où le joueur se tient pour interagir — généralement juste à l'intérieur de la porte. Pour **clothing** et **barber**, l'interface s'ouvre aussi ici ; le joueur n'est pas déplacé.                                           |
| `fitting`  | Utilisé par les magasins **wardrobe** : où le joueur est téléporté pendant que l'interface est ouverte, avec orientation. Obligatoire dans la config pour chaque magasin, mais ignoré à l'exécution pour clothing et barber. |
| `blip`     | Où le blip de la carte est dessiné. Généralement identique à `prompt`.                                                                                                                                                       |
| `showBlip` | Mettez à `false` pour un magasin caché, par exemple dans une planque de gang.                                                                                                                                                |

### Types de magasin

* **clothing** – éditeur complet de vêtements. Les joueurs essaient des articles et paient `Config.ShopCost` à la sauvegarde.
* **barber** – cheveux, barbe, sourcils et maquillage. Facture aussi `Config.ShopCost` à la sauvegarde.
* **wardrobe** – bascule entre les tenues enregistrées ou se déshabille. Toujours gratuit. Les garde-robes sont l'endroit où les joueurs enregistrent les tenues achetées ailleurs.
* **tattoo** – salon de tatouage. Pris en charge par l'interface, mais Appearance ne livre pas encore d'emplacement de magasin validé ; aucun salon de tatouage n'est activé par défaut. Ajoutez-en un avec vos propres coordonnées quand vous êtes prêt.

### Où se tient le joueur

* **clothing** et **barber** — l'interface s'ouvre sur `prompt`. Le joueur reste où il a interagi ; une caméra orbitale cadre le ped. Les cabines et fauteuils de barbier sont trop petits pour cette caméra, donc ces types ne téléportent pas.
* **wardrobe** — le joueur est téléporté vers `fitting` pendant que l'interface est ouverte et revient à `prompt` en quittant.

<Tip>
  Pour les garde-robes, l'emplacement `fitting` peut être n'importe où — même une pièce sans porte — car le joueur revient à `prompt` à la fermeture.
</Tip>

## Tatouages et maquillages personnalisés

Appearance peut afficher vos propres textures d'overlay aux côtés de celles intégrées au jeu. Vous avez besoin d'un dictionnaire de textures `.ytd` conçu pour les overlays RDR3 (généralement créé par un artiste texture ou acheté dans un pack) et deux minutes.

<Steps>
  <Step title="Ajouter la texture">
    Copiez le `.ytd` dans `rco-appearance/stream/addons/`. Le serveur stream tout ce dossier automatiquement ; vous n'avez pas besoin de modifier le manifest.
  </Step>

  <Step title="L'enregistrer">
    Ouvrez `rco-appearance/config/overlays.lua` et ajoutez une entrée à `Config.OverlayAddons` :

    ```lua theme={"dark"}
    Config.OverlayAddons = {
        {
            id = 'wolf_arm',           -- unique, letters/numbers/underscores
            label = 'Wolf',            -- shown in the UI
            kind = 'tattoo',           -- tattoo | makeup
            host = 'bodies_upper',     -- heads | bodies_upper | bodies_lower
            dict = 'meu_lobo',         -- the .ytd name without extension
            material = 'meu_lobo_ma',  -- optional
            sex = 'both',              -- male | female | both
            priority = 100,            -- optional; lower draws first
        },
    }
    ```

    `host` est la zone du corps pour laquelle la texture a été peinte. `kind` détermine si elle apparaît sous Tattoos ou Makeup dans l'interface.
  </Step>

  <Step title="Redémarrer">
    Redémarrez `rco-appearance` (ou le serveur). La nouvelle entrée apparaît dans l'éditeur et dans les salons de tatouage.
  </Step>
</Steps>

### Distribuer un pack

Si vous distribuez un ensemble d'overlays — ou en avez acheté un — gardez-le autonome en lui donnant son propre fichier catalogue dans `rco-appearance/config/addons/`. Les fichiers de ce dossier sont chargés après `overlays.lua` et **s'ajoutent** à la liste :

```lua theme={"dark"}
-- config/addons/my_pack.lua
Config.OverlayAddons[#Config.OverlayAddons + 1] = {
    id = 'pack_rose',
    label = 'Rose',
    kind = 'tattoo',
    host = 'bodies_upper',
    dict = 'pack_rose',
    sex = 'both',
}
```

Ne remplacez jamais `Config.OverlayAddons` dans un fichier addon ; ajoutez toujours, pour que les packs ne s'effacent pas mutuellement. Consultez `config/addons/example.lua` pour un modèle.

<Note>
  Les joueurs ne choisissent jamais qu'un `id` de ce catalogue. Le dictionnaire de textures, la zone du corps et les hashes sont résolus côté serveur à partir de votre configuration ; un client modifié ne peut donc pas charger des textures que vous n'avez pas approuvées.
</Note>

### Note sur le superposition

Plusieurs tatouages corporels sur la même zone sont stockés et dessinés jusqu'à la limite de couches du moteur, mais RDR3 ne les mélange pas comme le ferait une seule texture pré-calculée. Si vous voulez une manche complexe, intégrez-la dans une seule texture plutôt que d'empiler de nombreuses petites.

## Visibilité du preview Barber (v1.7.1)

Quand `mode = 'barber'` s'ouvre, RCO masque temporairement **uniquement dans le preview** les éléments qui peuvent cacher les cheveux ou le visage :

```text theme={"dark"}
hats / hat accessories / hatbands / headwear
hair accessories
masks / large masks
eyewear
neckwear / neckties / neckerchiefs
```

Les vêtements d'origine restent dans le snapshot de l'éditeur. Les previews hair/beard gardent ces catégories masquées afin qu'elles ne reviennent pas devant le visage. **Save** conserve les nouveaux cheveux/barbe et restaure la visibilité des vêtements ; **Cancel** restaure exactement l'apparence d'entrée.
