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

Перезапись (Override)

Как заменять ванильный контент через элемент Override, правило совпадения идентификаторов и частые ошибки.

Зачем нужна перезапись

Перезапись (Override) позволяет заменить уже существующий контент — ванильный или из другого мода — не создавая мод-конверсию на всю игру. Это главный способ что-то «перебалансить»: ровно так наш мод «ЭИК Ребаланс» меняет характеристики ванильных предметов.

Принцип: совпадают идентификаторы

Перезапись работает по identifier: идентификатор твоего нового элемента должен совпасть с идентификатором того, что заменяешь. Игра видит совпадение и подменяет оригинал твоим вариантом.

<Override>
  <Item identifier="harpoongun" name="Potato Gun" tags="mediumitem,weapon,gun">
    <Sprite texture="%ModDir%/potatogun.png" sourcerect="0,64,282,60"
            depth="0.55" origin="0.5,0.5" />
  </Item>
</Override>

Здесь harpoongun — ванильный идентификатор. Имя, спрайт и теги меняются, но для игры это по-прежнему «тот самый» предмет.

Важно: переноси всё

При перезаписи ты полностью заменяешь оригинальный элемент. Значит, всё, что хочешь сохранить — теги и вложенные элементы оригинала, — нужно перенести к себе, иначе оно потеряется.

Делай так: возьми оригинальный XML предмета из файлов игры, скопируй целиком, оберни в <Override> и меняй только то, что нужно. Так ничего важного не отвалится.

Без Override

Если задать контент с уже существующим identifier без <Override> — получишь конфликт дублирующихся идентификаторов. Хочешь намеренно заменить контент — всегда оборачивай в <Override>.

Перезапись нескольких элементов

<Override> может обернуть сразу несколько штук:

<Override>
  <Item identifier="harpoongun" name="Potato Gun"> ... </Item>
  <Item identifier="spineling" name="Buffed Spineling"> ... </Item>
</Override>

Работает не только с предметами, но и с большинством типов контента (аффликшены, существа и т. д.) — принцип совпадения идентификаторов везде один.

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

  • Опечатка в identifier — игра не найдёт оригинал, перезапись промахнётся мимо.
  • Потерял вложенные элементы — забыл перенести компонент, и предмет «сломался».
  • Порядок загрузки — если два мода перезаписывают одно и то же, победит загруженный позже. Рули порядком в меню Mods.

Теперь, когда понятно, как заменять контент, перейдём к созданию своих предметов.