> ## 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.

# Магазины и пользовательские оверлеи

> Добавление магазинов одежды, барбершопов и гардеробов, а также своих татуировок и макияжа.

## Магазины

Каждый магазин на сервере — запись в `Config.Stores` внутри `rco-appearance/config/config.lua`. Appearance поставляется с магазинами одежды, барбершопами и гардеробами в основных городах; можно добавлять, перемещать и удалять сколько угодно.

Магазин выглядит так:

```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,
},
```

| Поле       | Назначение                                                                                                                                                                    |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`       | Уникальное имя магазина. Используется внутри; игрокам не показывается.                                                                                                        |
| `type`     | `clothing`, `barber`, `wardrobe` или `tattoo`. Определяет, какие части UI открываются.                                                                                        |
| `label`    | Текст на подсказке взаимодействия и blip'е карты.                                                                                                                             |
| `prompt`   | Где игрок стоит для взаимодействия — обычно у двери. Для **clothing** и **barber** UI тоже открывается здесь; игрок не перемещается.                                          |
| `fitting`  | Для магазинов **wardrobe**: куда телепортируется игрок при открытом UI, с heading. Обязателен в config для каждого магазина, но для clothing и barber в runtime игнорируется. |
| `blip`     | Где рисуется blip на карте. Обычно совпадает с `prompt`.                                                                                                                      |
| `showBlip` | `false` для скрытого магазина, например в убежище банды.                                                                                                                      |

### Типы магазинов

* **clothing** — полный редактор одежды. Игроки примеряют и платят `Config.ShopCost` при сохранении.
* **barber** — волосы, борода, брови и макияж. Также списывает `Config.ShopCost` при сохранении.
* **wardrobe** — переключение между сохранёнными комплектами или раздевание. Всегда бесплатно. В гардеробах игроки сохраняют комплекты, купленные в других местах.
* **tattoo** — тату-салон. Поддерживается UI, но Appearance пока не поставляет проверенную локацию — тату-магазин по умолчанию не включён. Добавьте свой с координатами, когда будете готовы.

### Где стоит игрок

* **clothing** и **barber** — UI открывается на `prompt`. Игрок остаётся на месте взаимодействия; орбитальная камера кадрирует ped. Примерочные и кресла барбера слишком малы для этой камеры, поэтому эти типы не телепортируют.
* **wardrobe** — игрок телепортируется в `fitting` при открытом UI и возвращается к `prompt` при выходе.

<Tip>
  Для гардеробов точка `fitting` может быть где угодно — даже в комнате без двери — потому что при закрытии игрок возвращается к `prompt`.
</Tip>

## Пользовательские татуировки и макияж

Appearance может показывать ваши оверлей-текстуры рядом со встроенными. Нужен `.ytd` словарь текстур для оверлеев RDR3 (обычно от художника или из пака) и пара минут.

<Steps>
  <Step title="Добавьте текстуру">
    Скопируйте `.ytd` в `rco-appearance/stream/addons/`. Сервер автоматически стримит всё из этой папки; манифест править не нужно.
  </Step>

  <Step title="Зарегистрируйте">
    Откройте `rco-appearance/config/overlays.lua` и добавьте запись в `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` — область тела, для которой нарисована текстура. `kind` определяет, Tattoos или Makeup в UI.
  </Step>

  <Step title="Перезапуск">
    Перезапустите `rco-appearance` (или сервер). Новая запись появится в редакторе и в тату-магазинах.
  </Step>
</Steps>

### Распространение пака

Если вы распространяете набор оверлеев — или купили — держите его автономным: отдельный каталог в `rco-appearance/config/addons/`. Файлы там загружаются после `overlays.lua` и **добавляются** к списку:

```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',
}
```

Никогда не заменяйте `Config.OverlayAddons` в addon-файле — всегда добавляйте, чтобы паки не затирали друг друга. Шаблон в `config/addons/example.lua`.

<Note>
  Игроки выбирают только `id` из этого каталога. Словарь текстур, область тела и хеши разрешаются на сервере из вашего конфига — изменённый клиент не загрузит неодобренные текстуры.
</Note>

### О наложении слоёв

Несколько тату на одной области хранятся и рисуются до лимита слоёв движка, но RDR3 не смешивает их как одну запечённую текстуру. Для сложного рукава лучше запечь всё в одну текстуру, чем накладывать много мелких.

## Видимость Barber preview (v1.7.1)

При открытии `mode = 'barber'` RCO временно скрывает **только в preview** элементы, которые закрывают волосы или лицо:

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

Исходная одежда остаётся в snapshot редактора. Hair/beard preview продолжает скрывать эти категории, чтобы они не возвращались поверх лица. **Save** сохраняет новые волосы/бороду и возвращает видимость одежды; **Cancel** полностью восстанавливает внешний вид на момент входа.
