Настройка
Параметры этой страницы находятся в config.lua. Изменяйте поля существующих таблиц и перезапустите ресурс, чтобы применить изменения.
Начальные значения и сохранённые настройки
Магазины и правила прогрессии в файле служат начальными настройками. После сохранения через административную панель их действующие значения сохраняются между перезапусками. Изменение файла автоматически не заменяет сохранённые данные: обновляйте магазины, правила и параметры уже инициализированной системы через панель.
Язык, providers, bridge-модули, камера и одежда для предпросмотра настраиваются в файле. Источники и татуировки описаны в разделе Каталог и наборы.
Общий язык
Config.Locale = 'es'
Config.LocaleFallback = 'en'
Locale задаёт язык интерфейса и сообщений для всех игроков. После его изменения перезапустите ресурс; игрок не может менять язык через NUI. LocaleFallback задаёт резервный язык.
Доступны языки: en, es, pt-BR, fr, de, it, pl, ru, tr, th и ar. Для арабского интерфейса используется направление письма справа налево.
Система идентификации
Config.Identity настраивает интеграцию с системой идентификации сервера. Здесь задаётся способ получения идентификатора персонажа или учётной записи, который ресурс использует для сохранения и загрузки татуировок, XP и чертежей.
Config.Identity.mode = 'auto'
Config.Identity.qbxResource = 'qbx_core'
| Режим | Назначение |
|---|---|
auto | В Qbox используется идентификатор активного персонажа (citizenid). На других серверах — стабильный идентификатор FiveM. |
qbx_character | Явно использует идентификатор персонажа Qbox (citizenid). |
license | Использует лицензию FiveM как идентификатор учётной записи. Персонажи одной учётной записи используют общие татуировки, XP и чертежи. |
Выберите режим до того, как открыть ресурс игрокам. После смены режима данные будут запрашиваться по другому идентификатору; автоматического переноса данных между режимами не происходит. Не выбирайте license, если татуировки должны храниться отдельно для каждого персонажа учётной записи.
Подсказка взаимодействия
Config.HelpText.enabled = true
Config.HelpText.provider = 'auto'
Config.HelpText.position = 'left-center'
| Поле | Значения или эффект |
|---|---|
enabled | Показывает или скрывает подсказку взаимодействия у магазина с маркером. |
provider | auto, ox_lib или native. auto использует TextUI, если он доступен, иначе — встроенную подсказку. |
position | Для TextUI: left-center, right-center, top-center или bottom-center. |
style | Цвета, граница, тень, шрифт и внутренние отступы TextUI. |
Пример стиля:
Config.HelpText.style.backgroundColor = '#172328'
Config.HelpText.style.color = '#eef3f3'
Config.HelpText.style.fontSize = '15px'
Начальные магазины
В Config.Shops указаны шесть местоположений. Чтобы изменить начальную запись, сохраните её структуру:
{
label = 'Tattoo Studio',
coords = vector3(322.62, 180.34, 103.59),
heading = 156.2,
drawDistance = 10.0,
interactDistance = 1.5,
shopRadius = 4.0,
marker = {
type = 1,
scale = vector3(1.0, 1.0, 1.0),
color = { r = 255, g = 100, b = 0, a = 100 },
},
},
| Поле | Назначение |
|---|---|
label | Название магазина. |
coords, heading | Положение и направление. |
drawDistance | Дистанция отображения маркера. |
interactDistance | Дистанция взаимодействия. |
shopRadius | Радиус, в пределах которого разрешены операции магазина. |
marker.type, scale, color | Внешний вид маркера. |
Значение interactDistance не должно превышать shopRadius. Для уже созданных магазинов используйте раздел магазинов в административной панели; изменение файла не пересоздаст и не заменит такие магазины.
Уровни и XP
Параметр Config.Levels | Начальное значение | Назначение |
|---|---|---|
enabled | true | Включает прогрессию, требования и скидки. |
maxLevel | 10 | Максимальный уровень. |
defaultXpPerTattoo | 10 | XP за татуировку, для которой не указано Xp. |
thresholds | Уровни с 1 по 10 | Накопленное количество XP, необходимое для каждого уровня. |
formula.base, formula.exponent | 100, 1.5 | Параметры альтернативной формулы порогов. |
zoneRequirements | 1 для каждой зоны | Требование для зоны, если для татуировки не задано отдельное. |
discounts | Включены, 3 за уровень, максимум 25 | Скидка в процентах. |
blueprintSlots | Основа 5, прирост 3 | Количество слотов чертежей в зависимости от уровня. |
Пороги должны начинаться с уровня 1 и 0 XP, идти без пропусков, а необходимое количество XP должно возрастать:
Config.Levels.thresholds = {
{ level = 1, xpRequired = 0 },
{ level = 2, xpRequired = 100 },
{ level = 3, xpRequired = 250 },
}
Config.Levels.maxLevel = 3
Размер скидки рассчитывается как уровень × perLevel и ограничивается значением maxDiscount. При начальных настройках на 5-м уровне скидка составляет 15 %, максимальная — 25 %.
Количество слотов рассчитывается как base + (уровень - 1) × perLevel. При начальных настройках на 1-м уровне доступно 5 слотов, на 5-м — 17.
Индивидуальный RequiredLevel в каталоге имеет приоритет над требованием зоны. См. раздел Поля каталога.
При отключении уровней не применяются ограничения по уровню, XP и скидки; лимит чертежей задаётся через Config.Blueprints.maxPerPlayer. Отключение системы сохраняет накопленные XP. В уже настроенных установках обновите также действующий статус через панель.
Чертежи
Чертежи сохраняют группы татуировок и позволяют делиться ими с помощью кодов. Начальные ограничения находятся в Config.Blueprints:
| Поле | Начальное значение | Назначение |
|---|---|---|
enabled | true | Включает систему. |
codePrefix | INK | Префикс кодов, например INK-A3X9. |
codeLength | 4 | Число символов после префикса. |
maxPerPlayer | 20 | Число слотов при отключённой прогрессии. |
maxTattoosPerBlueprint | 50 | Максимум татуировок в одной группе. |
nameMaxLength | 60 | Максимальная длина названия. |
Активация кода подготавливает татуировки к покупке, но не предоставляет бесплатную покупку. Экономика настраивается в разделе Интеграции.
Камера
| Таблица | Что настраивает |
|---|---|
CameraOffsets | Целевую кость, расстояние, смещения и поле зрения для каждой зоны. |
CameraFraming | Общую композицию и смещение точки фокусировки. |
CameraFramingBySide | Дополнительные настройки вида спереди и сзади. |
CameraManualControls | Ручное управление, шаги перемещения, вращение, масштабирование и ограничения. |
Настроены зоны ZONE_HEAD, ZONE_TORSO, ZONE_LEFT_ARM, ZONE_RIGHT_ARM, ZONE_LEFT_LEG и ZONE_RIGHT_LEG.
Примеры точечных изменений:
Config.CameraOffsets['ZONE_TORSO'].fov = 50.0
Config.CameraFraming.screenOffset = 0.35
Config.CameraManualControls.enabled = true
Config.CameraManualControls.step = 0.035
Config.CameraManualControls.zoomStep = 0.08
Положительное значение screenOffset смещает персонажа влево, освобождая место для меню справа. Параметр lookAtOffsetX/Y/Z меняет точку фокусировки; camOffsetX/Y/Z в настройках сторон меняет положение камеры.
Для ручного управления параметры horizontalDegrees и rotationStepDegrees задают вращение. ranges.y/z, radialClamp и maxDistance ограничивают смещения. zoomCompositionMinBias настраивает центрирование при приближении. Изменяйте по одному значению и проверяйте все шесть зон на мужских и женских персонажах.
Одежда для предпросмотра
Config.PreviewOutfit позволяет освободить области с татуировками, пока открыт интерфейс:
Config.PreviewOutfit.enabled = true
Config.PreviewOutfit.useDefaultVariation = false
Config.PreviewOutfit.presets['mp_m_freemode_01'].components[11] = {
drawable = 15,
texture = 0,
}
Включённые пресеты различаются для mp_m_freemode_01 и mp_f_freemode_01. Для каждого компонента указываются drawable и texture; clearProps снимает аксессуары на время предпросмотра. Настройте индексы в соответствии с одеждой на сервере. Оставьте useDefaultVariation = false, если нужно применить только компоненты пресета, не сбрасывая внешний вид целиком.
Права доступа, экономика и Qbox
Параметры Config.Permissions, Config.AdminCommand, Config.Purchases и Config.QbxMulticharacterPreview описаны в разделе Интеграции. Укажите фактические имена ресурсов, если они отличаются от используемых по умолчанию.
Диагностика
Config.Debug включает общую диагностику. Config.Permissions.debug помогает проверять решения о доступе. После проверки отключите оба параметра.
Config.DebugCommands.clientTattooCommand изначально отключён. Включайте эту визуальную команду только для тестирования: она не сохраняет татуировки и не заменяет покупку.