Контент-пакет и filelist.xml
Манифест мода: элемент contentpackage, его атрибуты, ссылки на файлы по типам контента, core и обычные пакеты.
Зачем нужен filelist.xml
filelist.xml есть у каждого мода. Он говорит игре, какие XML-файлы грузить и какого
они типа (предмет, существо, аффликшен и т. д.). Без манифеста игра просто не узнает, что в
твоём моде вообще что-то есть.
Корневой элемент contentpackage
Корень манифеста — contentpackage, у него есть такие атрибуты:
| Атрибут | Зачем |
|---|---|
name | Имя мода, которое игрок видит в игре. |
modversion | Версия мода. Поднимай её, когда выпускаешь обновление. |
gameversion | Версия игры, под которую мод обновлялся. Помогает ловить несовместимость. |
corepackage | true/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— контент просто не появится в игре.
Дальше — как аккуратно заменять ванильный контент через перезапись.