В ближайшем обновлении World of Tanks мы планируем реализовать новый способ
подключения модов через так называемые пэкеджи.

Что это такое?
Пэкеджи - это способ организации файлов модов, в котором весь контент отдельного модаупакован в один файл.

Зачем это нужно?
Сейчас файлы модов для WoT устанавливаются в папку /res_mods/<версия игры>. Приэтом файлы разных модов располагаются в одних и тех же папках, и поэтому зачастую
сложно определить, какой файл относится к какому моду. Переход на формат пэкеджейсущественно упростит организацию файлов модов: для установки пользователю
достаточно скопировать пэкедж в директорию /mods/<версия игры>, а для деинсталяции- удалить ровно тот же файл.

Как устроен пэкедж?
Пэкедж представляет собой ZIP-архив без компрессии с расширением .wotmod.
! Обратите внимание, что архивы с компрессией в текущей версии не поддерживаются,поэтому при создании архива необходимо установить опцию«Уровень сжатия / Compression level» в значение «Без сжатия / Store».
Внутри себя пэкедж:должен содержать папку res/. Сюда помещаются ресурсы мода, то есть все те файлы,которые раньше устанавливались в /res_mods/<версия игры>;желательно содержит служебный файл meta.xml (описание см. ниже)может содержать иной контент, который может понадобиться автору мода длякомфортного распространения, – url домашней странички, readme, инструкции и т.п.
Например:Как пэкедж устанавливается?
Пэкеджи устанавливаются в <директория игры>/mods/<версия игры> .
Это может быть как ручное копирование, так и установка посредством инсталятора модаили модпака.
При необходимости пэкеджи могут быть организованы в подпапки, что позволяет автору
модпака, например, сгруппировать моды по типам.

Правила именования пэкеджейКаких-либо жестких ограничений на именование пэкеджей нет, однако для удобства
распространения и использования лучше придерживаться следующих рекомендаций:Использовать только латинские буквы, цифры и знак подчеркивания.
Придумать для каждого мода уникальный идентификатор на основе названия мода иимени автора и начинать именование с него.
Использовать в названии версию мода.
Например:mods/
0.9.17.0.2/
MultiHitLog_2.8.wotmod
DamagePanel/
Some_common_library_3.14.5.wotmod
DamagePanel_2.6.wotmod
DamagePanel_2.8.wotmod
DamagePanel_2.8_patch1.wotmodФайл meta.xml

Необязательный файл meta.xml содержит опциональные поля, описывающие мод.
Возможный вариант заполнения.
<root><!-- Techical MOD ID --><id>DamagePanel</id><!-- Package version --><version>0.2.8</version><!-- Human readable name --><name>Damage Panel</name><!-- Human readable description --><description>New cool Damage Panel with feature1.....N </description></root>Значения из указанных полей в будущем будут использоваться в системе управлениямодами.

В каком порядке пэкеджи загружаются?
При запуске клиента все пэкеджи, установленные в папке mods/, сортируются поалфавиту и загружаются в порядке от A до Z.
При необходимости (например, при подготовке модпака) можно организовать ручноеуправление порядком загрузки. Для этого необходимо разместить в корневой папке спэкеджами mods/<версия игры>/ опциональный файл load_order.txt.
Формат - Plain text; UTF8; CR+LF. В нем может быть указан альтернативный порядокзагрузки модов. Относительные пути, по одному файлу в строке:Например:zzzz.wotmod
bbbb.wotmod
aaaa.wotmodПэкеджи, указанные в load_order.txt, загружаются первыми и в порядке расположения ихв этом файле. Затем стандартным образом загружаются все оставшиеся пэкеджи, неуказанные в load_order.txt.

Решение конфликтов при загрузке пэкеджейВ общем случае система пэкеджей не допускает ситуации, когда в папке res/ внутриразных пэкеджей находятся одинаковые файлы. Такая ситуация считается конфликтом.
В случае обнаружения конфликта пэкедж, его вызвавший, целиком исключается изобработки, о чем пользователю выдается соответствующее уведомление.

Т.е. в случае если пэкеджи a.wotmod и b.wotmod содержат внутри себя файлres/scripts/entities.xml, то a.wotmod будет загружен успешно, а b.wotmod вызоветконфликт и загружен не будет.
Для управления обработкой конфликтов можно использовать:1. Файл load_order.txt. Пэкеджи, перечисленные в этом файле, не считаются
конфликтующими и загружаются без анализа на пересечение имен файлов, т.к.
предполагается, что автор load_order.txt знает, что он делает и для чего.
2. Значение ноды <id> из meta.xml. Пэкеджи, у которых <id> совпадает, считаются разными
версиями/частями одного и того же мода, и конфликты между ними также неучитываются.
При наличии одноименных файлов внутри разных пэкеджей, конфликты между которымиразрешены посредством load_order.txt или meta.xml, приоритет имеет файл изпоследнего загруженного пэкеджа.