ЭИК
Контент-пакеты

Контент-пакет и filelist.xml

Манифест мода: элемент contentpackage, его атрибуты, ссылки на файлы по типам контента, core и обычные пакеты.

Зачем нужен filelist.xml

filelist.xml есть у каждого мода. Он говорит игре, какие XML-файлы грузить и какого они типа (предмет, существо, аффликшен и т. д.). Без манифеста игра просто не узнает, что в твоём моде вообще что-то есть.

Корневой элемент contentpackage

Корень манифеста — contentpackage, у него есть такие атрибуты:

АтрибутЗачем
nameИмя мода, которое игрок видит в игре.
modversionВерсия мода. Поднимай её, когда выпускаешь обновление.
gameversionВерсия игры, под которую мод обновлялся. Помогает ловить несовместимость.
corepackagetrue/false — это «ядро» (core) или обычный мод.
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Alien Wrench" modversion="1.0.0"
                gameversion="0.17.8.0" corepackage="false">
  <Item file="%ModDir%/alienwrench.xml" />
</contentpackage>

Ссылки на файлы по типам контента

Каждый вложенный элемент contentpackage — это тип контента. Имя тега берётся из списка типов контента игры (Item, Character, Afflictions, Structure, Text и др.), а путь к файлу задаёшь атрибутом file, обычно через %ModDir%:

<contentpackage name="Большой мод" modversion="1.0.0"
                gameversion="1.0.0.0" corepackage="false">
  <Item file="%ModDir%/items/weapons.xml" />
  <Item file="%ModDir%/items/tools.xml" />
  <Character file="%ModDir%/characters/mycreature.xml" />
  <Afflictions file="%ModDir%/afflictions/diseases.xml" />
  <Text file="%ModDir%/text/Russian.xml" />
</contentpackage>

Один тип можно указывать сколько угодно раз — например, раскидать предметы по нескольким файлам Item, чтобы не держать всё в одной простыне.

Core-пакет против обычного

  • Обычный пакет (corepackage="false") — добавляет или меняет контент поверх ванильного. Это почти все моды, включая твой.
  • Core-пакет (corepackage="true") — содержит все файлы, нужные игре, и может быть выбран только один за раз. Такие пакеты легко ломаются на обновлениях игры; берись за core только если перезаписи ванильного контента реально не хватает.

В 99% случаев тебе нужен обычный пакет.

Порядок загрузки и приоритет

Если несколько активных модов задают контент с одним и тем же identifier, решает порядок загрузки: кто загрузился позже, тот и перезаписывает (при правильной перезаписи). Порядком рулишь в меню Mods.

Где новички спотыкаются

  • Кривой путь в file — игра не найдёт файл (проверь %ModDir% и регистр).
  • Неправильное имя типа контента (тега) — файл загрузится не туда или не загрузится вовсе.
  • Забыл дописать новый файл в filelist.xml — контент просто не появится в игре.

Дальше — как аккуратно заменять ванильный контент через перезапись.