Skip to content

Конфиг

Конфиг мода находится в файле MPG_CarFellingTrees2/Config.json внутри папки с профилем сервера.

Пример минимального файла:

json
{
  "configVersion": 2,
  "documentation": "https://docs.mpg-dayz.ru/car-felling-trees-2",
  "logLevel": 3,
  "vehicles": [
    {
      "className": "Truck_01_Base",
      "fellingEnabled": 1,
      "slots": [],
      "fellingAttachmentSlots": ["Truck_01_Hood"],
      "fellingMinSpeed": 15.0,
      "fellingMinImpulse": 200.0
    }
  ]
}

Параметры мода

configVersion

configVersion – Версия конфига, служебное поле, не нужно его менять. Оно обновляется само при обновлении мода, если в этом есть необходимость.

documentation

documentation – Служебное поле, содержит ссылку на документацию по моду для вашего удобства.

logLevel

logLevel – Глобальный уровень логирования мода. Числовой параметр.

Доступные значения:

ЗначениеУровеньЧто пишется
1TRACEМаксимальная детализация: результат каждой проверки валки
2DEBUGКаждое сваленное дерево (класснейм, координаты)
3INFOКлючевые события: старт/остановка мода (по умолчанию)
4WARNПредупреждения
5ERRORОшибки (не удалось загрузить/сохранить конфиг)
6FATALТолько критические ошибки

Значение по умолчанию: 3 (INFO).

Рекомендации

  • Обычная работа сервера – 3 (INFO).
  • Валка не работает и непонятно почему – поставьте 1 (TRACE). Мод напишет, какая именно проверка не прошла: двигатель выключен, скорость слишком низкая, импульс слишком слабый, слоты не заполнены, объект не дерево и т.д.
  • Нужно "тихо" – поставьте 6 (FATAL).

Пример: "logLevel": 3,

Логи в отдельный файл

Логи пишутся модом MPG_ModsLogger в папку MPG_CarFellingTrees2/Logs/. Если этот мод не установлен – мод деградирует до Print() в общий RPT-лог сервера.

vehicles

vehicles – Массив с настройками для каждой машины. Каждый элемент – объект с параметрами валки для конкретной машины.

Пример:

json
"vehicles": [
  {
    "className": "Truck_01_Base",
    "fellingEnabled": 1,
    "slots": ["TruckBattery", "Reflector_1_1", "Reflector_2_1", "Truck_01_Hood"],
    "fellingAttachmentSlots": ["Truck_01_Hood"],
    "fellingMinSpeed": 15.0,
    "fellingMinImpulse": 200.0
  }
]

Параметры машины

TIP

Ниже описаны параметры одной машины.

Машин в массиве vehicles может быть столько, сколько вам нужно. Мод сам добавит недостающие при первом запуске.

className

className – Имя класса машины в CfgVehicles.

Можно использовать как конкретную машину (Truck_01_Covered), так и базовый класс (Truck_01_Base) – дочерние классы примут его настройки через наследование.

Пример: "className": "Truck_01_Covered",

fellingEnabled

fellingEnabled – Включение валки деревьев для этой машины.

ЗначениеЧто значит
-1Наследовать от родителя (нет явной настройки)
0Валка выключена явно
1Валка включена

По умолчанию мод добавляет все машины с -1 (наследование). Если ни у самой машины, ни у её предков нет 1 – валка выключена.

Пример: "fellingEnabled": 1,

Подробнее про -1

См. раздел Наследование параметров ниже.

slots

slots – Доступные слоты машины. Собираются модом автоматически один раз, при первом добавлении машины в конфиг.

Пример: "slots": ["TruckBattery", "Reflector_1_1", "Reflector_2_1", "Truck_01_Hood"],

fellingAttachmentSlots

fellingAttachmentSlots – Список слотов, которые должны быть заполнены незаруиненными аттачментами, чтобы валка сработала.

Пусто – проверка не нужна

Если массив пустой [] – проверка заполненности слотов не выполняется. Машина может валить деревья без дополнительных условий.

Например, можно потребовать, чтобы был установлен бампер:

json
"fellingAttachmentSlots": ["YourCar_Slot_Bamper"]

Если аттачмент в указанном слоте отсутствует или заруинен – дерево не упадёт.

Пример: "fellingAttachmentSlots": [],

fellingMinSpeed

fellingMinSpeed – Минимальная скорость машины в км/ч, при которой возможна валка.

Пример: "fellingMinSpeed": 15.0,

fellingMinImpulse

fellingMinImpulse – Минимальный импульс столкновения с деревом.

Импульс зависит от массы машины и скорости удара. Чем тяжелее машина и быстрее удар – тем выше импульс. Этот параметр позволяет отсеять лёгкие касания.

Пример: "fellingMinImpulse": 200.0,


Наследование параметров

Значение fellingEnabled равно -1 означает "нет явной настройки – наследовать от родителя".

Пример

Иерархия классов:

CarScript
└─ Truck_01_Base
   └─ Truck_01_Covered

Конфиг:

json
"vehicles": [
  {
    "className": "Truck_01_Base",
    "fellingEnabled": 1,
    "fellingMinSpeed": 15.0,
    "fellingMinImpulse": 200.0
  },
  {
    "className": "Truck_01_Covered",
    "fellingEnabled": -1
  }
]

Что произойдёт:

  • Truck_01_Base – валка включена явной настройкой 1. Параметры: скорость 15, импульс 200.
  • Truck_01_CoveredfellingEnabled: -1, поднимаемся к Truck_01_Base -> берём оттуда 1 и все параметры.

Итог: Truck_01_Covered будет валить деревья со скоростью 15 км/ч и импульсом 200, хотя у него самого в конфиге указан только fellingEnabled: -1.

Как включить валку сразу для всех машин одного типа

Настройте базовый класс (..._Base, Offroad_02_Base и т.п.) один раз – все дочерние с fellingEnabled: -1 унаследуют настройки автоматически.

Можно ли переопределить отдельный параметр?

Нет. Наследование работает "целиком": если класс наследует, он берёт все параметры валки от найденного предка. Чтобы задать свои параметры для конкретной машины – поставьте ей fellingEnabled: 1 и укажите все нужные параметры явно.

Можно ли отключить валку для отдельной машины?

Да. В конфиге наследника поставь fellingEnabled: 0 — явно выключит.

Логика:

  • -1 -> наследовать от родителя (дефолт)
  • 0 -> выключено (явное, стопорит подъём по иерархии)
  • 1 -> включено

ResolveVehicleConfig сразу возвращает собственный cfg ребёнка, если fellingEnabled != -1 (строка 223). Дальше ApplyConfig видит 01 -> ретурнится, MPG_FellingEnabled остаётся false.

json
// parent
{ "className": "Truck_01_Base", "fellingEnabled": 1, ... }
// child — валилка выключена, остальное тоже своё
{ "className": "Truck_01_Covered", "fellingEnabled": 0 }

Родительский 1 игнорится — ребёнок не наследует, у него своё явное значение.

Можно ли отключить валку, если она "включена" в другом моде?

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


Пример Config.json

json
{
  "configVersion": 2,
  "documentation": "https://docs.mpg-dayz.ru/car-felling-trees-2",
  "logLevel": 3,
  "vehicles": [
    {
      "className": "Truck_01_Base",
      "fellingEnabled": 1,
      "slots": ["TruckBattery", "Reflector_1_1", "Reflector_2_1", "Truck_01_Hood"],
      "fellingAttachmentSlots": ["Truck_01_Hood"],
      "fellingMinSpeed": 15.0,
      "fellingMinImpulse": 200.0
    },
    {
      "className": "Truck_01_Covered",
      "fellingEnabled": -1,
      "slots": [],
      "fellingAttachmentSlots": [],
      "fellingMinSpeed": 10.0,
      "fellingMinImpulse": 2000.0
    }
  ]
}

Truck_01_Covered наследуется от Truck_01_Base -> применит fellingEnabled: 1 и все параметры валки базового класса. Собственные параметры Truck_01_Covered (fellingMinSpeed: 10.0 и т.д.) не применятся, потому что fellingEnabled: -1 запускает наследование целиком.

См. также