# Установка

В этом руководстве используется дистрибутив с уже собранным интерфейсом. Для установки не нужны Node.js и повторная сборка UI.

## Требования

| Компонент | Когда требуется |
| --- | --- |
| `oxmysql` и действующее подключение к базе данных | Обязательны для сохранения данных ресурса. |
| Qbox, QBCore или ESX | Если используется их экономика и система прав. К другой экономике можно подключиться через standalone callbacks. |
| Наборы татуировок | Необязательны. Можно не устанавливать ни одного, установить несколько или все. |
| `ox_lib` | Необязателен для уведомления TextUI; есть встроенная альтернатива. |
| Система внешнего вида | Если сервер её использует, ознакомьтесь с [bridge-модулем внешнего вида](https://docs.cxgstudios.com/docs/ru/01-cxg-tattoos/05-integraciones.md#внешность-и-загрузка-персонажа). |

Чертежи передаются с помощью кодов. Для использования включённой конфигурации не нужно добавлять предмет в инвентарь.

## Разместите ресурс

1. Распакуйте пакет в папку ресурсов сервера.
2. В этих руководствах папка называется `cxg-tattoos`. Если у вас папка называется иначе, указывайте её фактическое имя в командах `ensure` и `restart`.
3. Сохраните структуру пакета. Убедитесь, что вместе с файлами пакета находятся `config.lua`, `shared/tattoos.json`, `bridge/` и `ui/dist/index.html`.
4. Настройте подключение к базе данных и убедитесь, что `oxmysql` запускается без ошибок.

## Порядок запуска

Пример для Qbox без внешних наборов:

```cfg
ensure oxmysql
ensure qbx_core
ensure cxg-tattoos
```

Для QBCore или ESX замените `qbx_core` на `qb-core` или `es_extended`. Если используете систему внешнего вида, запустите её до этого ресурса. Для standalone сначала настройте [callbacks платежей и прав доступа](https://docs.cxgstudios.com/docs/ru/01-cxg-tattoos/05-integraciones.md).

Если у вас есть наборы, запускайте только установленные и перед этим ресурсом. Например:

```cfg
ensure oxmysql
ensure qbx_core
ensure xgc_TattooClasic
ensure xgc_TattooGangs
ensure cxg-tattoos
```

Не добавляйте строки `ensure` для отсутствующих наборов. Источники по умолчанию могут оставаться в `Config.TattooCatalog.sources`: не запущенные наборы будут пропущены.

## Первый запуск

Ресурс автоматически подготовит хранилище. Для новой установки вручную импортировать схему не требуется.

Перед проверкой просмотрите в `config.lua` следующие параметры:

- `Config.Locale`: общий язык.
- `Config.Purchases`: экономика и счета для списания.
- `Config.Permissions`: административный доступ.
- `Config.Identity`: система идентификации сервера и идентификатор, который используется для сохранения и загрузки данных игрока. См. раздел [Система идентификации](https://docs.cxgstudios.com/docs/ru/01-cxg-tattoos/03-configuracion.md#система-идентификации).
- `Config.Shops`: начальные места расположения магазинов.

Подойдите к настроенному магазину и воспользуйтесь взаимодействием. Проверьте каталог, предпросмотр и покупку на тестовом персонаже. Загрузите персонажа заново и убедитесь, что татуировка сохранилась.

Встроенная административная команда настраивается через `Config.AdminCommand`; начальное имя — `/tattooadmin`. Перед использованием прочтите раздел [Права доступа и платежи](https://docs.cxgstudios.com/docs/ru/01-cxg-tattoos/05-integraciones.md).

## Применение изменений

После изменения `config.lua` или bridge-модуля сохраните файл и перезапустите ресурс:

```cfg
restart cxg-tattoos
```

Источники каталога считываются при запуске и могут синхронизироваться через административную панель. Настройки, сохранённые в панели, сохраняются; перед тем как ожидать замены их значений из файла, ознакомьтесь с разделами [Настройка](https://docs.cxgstudios.com/docs/ru/01-cxg-tattoos/03-configuracion.md) и [Каталог](https://docs.cxgstudios.com/docs/ru/01-cxg-tattoos/04-catalogo.md).

## Частые проблемы

| Симптом | Что проверить |
| --- | --- |
| Ресурс не запускается | Запущен ли `oxmysql`, работает ли подключение и полностью ли распакован пакет. |
| В магазине нет набора | Запущен ли его ресурс, не установлено ли `enabled` в `false` и совпадает ли путь JSON с путём в наборе. |
| Интерфейс пустой | Скопированы ли вместе `ui/dist/index.html` и файлы из `ui/dist/assets/`, на которые он ссылается. |
| Панель отказывает в доступе | Проверьте `Config.AdminCommand.permission`, привязки прав, роли и настройки ACE. |
| Платёж отклонён | Проверьте выбранный framework, имена ресурсов, баланс и standalone callbacks, если они используются. |
| В одном месте отображаются два взаимодействия с татуировками | Проверьте, не активировали ли эту же точку другой ресурс внешнего вида или магазинов. Оставьте только один доступ к нужному магазину. |
| Изменение магазина или уровня не применяется | Возможно, значение уже сохранено через панель. Измените действующее значение там. |

Для диагностики можно временно включить `Config.Debug` и `Config.Permissions.debug`. По окончании отключите их.

[Перейти к настройке](https://docs.cxgstudios.com/docs/ru/01-cxg-tattoos/03-configuracion.md).
