Вирішення конфліктів модів та крашів сервера в Arma Reforger

Технічний посібник з усунення крашів та конфліктів модифікацій на серверах Arma Reforger. Навчіться читати логи движка Enfusion та оптимізувати ієрархію JSON.

20.05.2026 Українська

Вирішення конфліктів модів та крашів сервера в Arma Reforger

Перехід серії Arma на новий движок Enfusion Engine кардинально змінив механіку роботи з модифікаціями. В Arma Reforger моди завантажуються та оновлюються безпосередньо через вбудовану майстерню (Bohemia Workshop), а керування ними здійснюється через JSON-конфігурації. Однак архітектура нового движка вкрай чутлива до помилок у коді аддонів. Один некоректний скрипт або конфлікт між двома важкими модифікаціями на техніку чи зброю може призвести до того, що сервер піде в нескінченний цикл перезавантаження або буде намертво зависати при запуску сценаріїв (Conflict або Combat Operations).

У цій статті we розберемо, як професійно читати логи сервера (console.log), виявляти моди, що ламають мережеву реплікацію, і правильно вибудовувати ієрархію завантаження аддонів у панелі керування хостингом.

Частина 1: Де шукати і як читати console.log?

Коли сервер Arma Reforger аварійно завершує роботу, панель хостингу фіксує краш, но не пояснює його причину. Справжня відповідь завжди криється в текстових логах сервера. Через вбудований файловий менеджер або SFTP перейдіть до папки з профілем сервера (зазвичай це шлях profile/logs/ або корінь сервера) і знайдіть найсвіжіший файл console.log або application.log.

Прокрутіть файл у самий низ — саме там, перед системним рядком закриття процесу, перебуватимуть критичні помилки (Errors) та попередження (Warnings). У движку Enfusion вони мають чітку класифікацію.


Частина 2: Головні типи помилок реплікації та скриптів

1. Помилки реплікації (Replication Token / Node Errors)

Мережевий код Enfusion Engine побудований на системі реплікації (Replication) — жорсткій угоді між сервером та клієнтом про те, які властивості об'єктів передаються мережею. Якщо один мод намагається змінити властивості автомобіля (наприклад, додає броню), а інший мод переписує фізику коліс цієї ж машини, на сервері ламається мережевий токен.

У логах це виглядає наступним чином:

[Replication] ERROR: Component 'SCR_VehicleWeaponComponent' has mismatched replication layout!
[Server] CRASH: REPL_RECONCILE_FAILED for entity: Vehicle_Ural4320_RHS

Як прочитати: Движок прямо вказує на конфлікт у компоненті зброї техніки (SCR_VehicleWeaponComponent) всередині сутності Уралу від модифікації RHS. Це означає, що два встановлені моди одночасно намагаються керувати стрільбою або туреллю цієї машини.

2. Скриптові виключення (Script Runtime Exceptions)

Мова програмування Enforce Script, що використовується в Reforger, строго типізована. Якщо автор мода припустився помилки в логіці (наприклад, звернувся до об'єкта, який ще не встиг заспавнитися на сервісі), движок зупиняє виконання всього ігрового режиму.

(E) Script: Runtime exception: 'Null pointer' access
(E) Script: Function: 'BaseGameMode.OnPlayerSpawned()' at MyCoolMod/Scripts/Game/GameMode/OnPlayerSpawn.c:42

Як прочитати: Стався виліт через звернення до неіснуючого об'єкта (Null pointer) у функції спавну гравця. Лог вказує точний шлях до файлу всередині мода: папка MyCoolMod, рядок 42. Цей аддон необхідно негайно вимкнути або оновити.


Частина 3: Правильне налаштування порядку завантаження (Ієрархія JSON)

На відміну від Arma 3, де порядок завантаження визначався рядком запуску, в Arma Reforger сервер зчитує моди з масиву mods у файлі config.json. Сервер завантажує їх строго зверху вниз. Якщо важкий мод вимагає для своєї роботи інший базовий мод, базовий повинен перебувати в списку вище.

Приклад правильної структури ієрархії в config.json:

"mods": [
    {
        "modId": "595F284F4E402BF4",
        "name": "RHS_Status_Quo_Core",
        "version": "1.0.5"
    },
    {
        "modId": "5A3B189C4F201AA2",
        "name": "RHS_Extra_Vehicles_Extension",
        "version": "1.0.2"
    },
    {
        "modId": "5C2A449B8D105FF4",
        "name": "Server_Admin_Tools",
        "version": "2.1.0"
    }
]

Универсальні правила побудови списку модів:

  1. Ядра та Фреймворки (Core Mods): Завжди ставте глобальні модифікації (такі як RHS Status Quo, глобальні паки карт або скриктові бібліотеки) до самого верху списку. Вони створюють базові класи предметів.
  2. Розширення та Доповнення (Sub-mods / Addons): Моди, які додають кастомні камуфляжі, приціли або конкретні машини для великих паків, повинні йти строго після своїх батьківських ядер.
  3. Серверні утиліти та Адмінки: Плагіни на логування, адмін-панелі та керування правами ставте в самий кінець списку, щоб вони могли ініціалізуватися, коли ігровий світ і всі сутності вже створені сервером.

Покроковий чек-лист локалізації прихованого конфлікту

Якщо сервер крашиться без явного вказання конкретного мода в логах, використовуйте метод виключення (Метод ділення навпіл):

  1. Зробіть резервну копію вашого поточного файлу config.json.
  2. Вимкніть рівно половину встановлених модів у списку (просто видаліть їхні блоки з JSON або закоментуйте).
  3. Спробуйте запустити сценарій Conflict.
    • Якщо сервер запустився успішно — проблема сидить у тій половині модів, яку ви вимкнули.
    • Якщо сервер знову крашнувся — винуватець перебуває серед активних модів, що залишилися.
  4. Повторюйте процедуру ділення списку навпіл, поки не локалізуєте один конкретний modId, що викликає збій.
Симптом крашу Часта технічна причина Метод усунення проблеми
Сервер зависає на етапі [GameMode] Spawn entities... Конфлікт кастомних точок спавну (Spawn Points) у сценарії або карті. Перевірити, чи не встановлені одночасно дві різні карти-модифікації, що переписують один і той самий регіон (наприклад, Еверон).
Гравців кікає з помилкою Connection Timeout / Replication Loss Важкий мод шле занадто багато неоптимізованих мережевих RPC-повідомлень. Видалити моди на деталізоване промальовування дрібних об'єктів інтер'єру або кастомний одяг зі складними скриптами анімації.
Нескінченне завантаження модів сервером при рестарті У config.json вказана застаріла версія мода, якої більше немає в Bohemia Workshop. Видалити значення в полі "version" (залишити рядок порожнім: ""). Сервер автоматично завантажить найостаннішу актуальну версію з майстерні.

Порада для адміністратора: Після кожного великого оновлення самої гри Arma Reforger від розробників, Bohemia Interactive часто змінює внутрішні API-класи движка Enfusion. Настійно рекомендується тимчасово вимикати всі геймплейні скриптові моди в перші 24–48 годин після патчу, пока автори аддонів не випустять свої оновлення сумісності.

Схожі статті

Оптимізація серверної продуктивності в Arma Reforger: ліміти ШІ та чистка карти

Технічний посібник з оптимізації виділених серверів Arma Reforger за допомогою налаштування лімітів спавну ботів ШІ та правил збирача сміття в файлі config.json.

Читати далі

Налаштування мережевої реплікації (Replication Layer) та боротьба з затримками в Arma Reforger

Технічний посібник з оптимізації мережевого рівня реплікації движка Enfusion, налаштування пропускної здатності в config.json та усунення десинхронізації через важкі моди.

Читати далі

Як знайти та підключитися до вашого сервера

Зручний посібник із пошуку сервера Arma Reforger у грі за допомогою пошуку за назвою або прямого підключення за IP-адресою.

Читати далі