Устранение конфликтов между моделями DA:O
MoonAerin
Всем привет! В этот раз коснёмся больной для многих темы. А именно подробно разберём, как устранять конфликты между модами на одежду, броню, оружие и т.д.
Оглавление
Теория
- Как проявляется данный конфликт?
Всё просто: когда вы надеваете доспехи из одного мода, вместо них отображаются совсем другие, либо от персонажа остаётся одна летающая голова. Ещё бывает так, что модель доспехов правильная, но текстуры к ней явно не «подходят», а всё потому, что они используются из другого мода.
- Почему происходит конфликт?
Игра не взаимодействует с моделями напрямую, поэтому недостаточно просто положить модель, например, доспехов в папку override, чтобы игра поняла, что с этим можно как-то работать. Игра увидит новую модель только после того, как вы пропишите её в своеобразный игровой реестр, выполненный в виде таблиц в формате gda. Действительно, файлы *.gda – это обычные таблицы Excel, которые компилируются специальной программой. Но даже после всех манипуляций файлы *.gda остаются внутри всё теми же таблицами, которые можно открыть и отредактировать, правда для этого потребуются другие программы.
У игры целая куча файлов *.gda, и каждый отвечает за что-то своё. Один – это список моделей доспехов, другой – список моделей перчаток, третий – награды за квесты, четвёртый – характеристики предметов или виды визуальных эффектов и т.д. Это особенность игрового движка, которая в каких-то случаях удобна, в каких-то нет, однако именно из-за файлов *.gda случаются конфликты между моделями. Чтобы лучше понять, что же происходит, предлагаю посмотреть внутренность одного из файлов *.gda. Для примера взят оригинальный файл со списком моделей средних нагрудников.

Первый столбец под названием ID содержит не просто порядковые номера, а номера, к которым привязаны модели средних нагрудников. К номеру 1 привязан нагрудник Medium Armor A, к номеру 2 – Medium Armor B и т.д. К каждому номеру может быть привязана только одна модель, это правило также распространяется на все моды! На скрине выше видно, что номера от 1 до 7 уже заняты самими разработчиками, поэтому моддеры, руководствуясь логикой, должны использовать в своих модах только свободные номера, начиная от 8 и заканчивая 255. И вот здесь, при выборе номеров, появляются 2 главные проблемы.
- Так исторически сложилось или почему разрабы те ещё чудаки, но все файлы *.gda, отвечающие за модели доспехов/оружия/одежды ограничены 256 номерами (включая пустую строку 0). И если новую модель привязать к номеру 257, то игра эту модель уже не увидит, потому что ограничение. Смиритесь, с этим ничего нельзя сделать.
- Единого и актуального списка занятых модами номеров нет. Да, есть старая гугл-таблица, но не все о ней знают, плюс она не обновлялась уже очень давно, поэтому при создании модов многие моддеры часто привязывают свои модели к случайным номерам.
Всё это в совокупности приводит к частым конфликтам между модами. С одной стороны, у нас ограничение в 256 строк, поэтому нельзя задать номер 43827 и расслабиться, потому что его вряд ли займёт кто-то ещё; с другой стороны, нет актуальной единой базы номеров, поэтому мысль: «Займу-ка я номер 15, что может пойти не так?», – может прийти в голову сразу нескольким моддерам.
Единственный светлый лучик в этом тёмном царстве безнадёги то, что разные типы предметов не могут конфликтовать друг с другом.
- Что такое тип предмета?
Тип предмета – это категория в вашем игровом инвентаре. Тяжёлый шлем – один тип предмета, каплевидный щит – второй, одежда – третий, средние перчатки – четвёртый и т.д. Слава Создателю, что каждому типу предметов (а не всем вместе) доступно 255 номеров, хотя всё равно этого очень и очень мало. Например, на время написания этой статьи все номера, доступные для одежды, уже заняты разными модами. Некоторые даже по нескольку раз, поэтому установить все моды с новой одеждой не получится чисто технически, как бы ни хотелось. И ещё: так как конфликт происходит между моделями, то такие предметы, как амулеты, зелья, яды, кольца, подарки и т.д., не могут конфликтовать вообще, потому что у них отсутствуют модели и их не нужно вносить в какие-либо файлы *.gda.
Подытожим. Разные типы предметов не могут конфликтовать друг с другом. Модели средних перчаток никогда не будут конфликтовать с моделями тяжёлых шлемов, например. Поэтому если вы обнаружили конфликт, то искать его надо внутри одного типа предмета.
Ещё немного теории.
Ниже я разберу, как файлы одного предмета взаимодействуют друг с другом. Если вам это неинтересно, переходите к следующему разделу статьи, то есть к практическому устранению конфликтов.
Представим, что есть готовая модель в уже правильном формате, которую нужно добавить в игру в качестве одежды. В первую очередь нужно, чтобы и игра, и DA: Toolset (оф. инструментарий, далее – Тулсет) начали видеть эту модель, поэтому придётся прописать её в соответствующий файл *.gda. За все модели одежды отвечает файл clothing_variation.gda, который находится в корневой папке игры. Этот файл копируется в рабочую папку, где создаётся мод, и открывается с помощью программы GDApp. Далее удаляются все строки, кроме, например, второй, и вставляется своё название модели, а также ей присваивается номер. Допустим, для новой модели был выбран номер 50, он вписывается в первый столбец. Во втором столбце прописывается понятное название модели одежды, потому что именно оно будет отображаться при создании предмета в Тулсете. В итоге получится следующее.

Оригинальный файл clothing_variation.gda.

Файл clothing_variation.gda после редактирования.
После этого файл clothing_variation.gda сохраняется с тем же названием, но в конец добавляется пара букв и/или цифр, чтобы получившийся файл не перезаписал оригинальный clothing_variation.gda из корневой папки, либо из других модов.
Теперь, когда модель, текстуры и файл *.gda в папке override, Тулсет начнёт видеть новую модель, и на её основе можно создать предмет инвентаря или даже несколько предметов с разными характеристиками, как вариант. Но создание предмета в Тулсете – тема для отдельной статьи, поэтому будем считать, что предмет уже создан и экспортирован из Тулсета. Файл предмета экспортируется в формате *.uti. В файлах *.uti прописываются характеристики, название, стоимость, материал и прочие параметры предмета, среди которых также находится номер модели. Да, когда мы выбираем внешний вид (модель) предмета в Тулсете при его создании, мы видим красивое название, которое написано в столбце Label в файле *.gda, но в уже экспортированном файле *.uti указан только номер модели из первого столбца (ID). За номер модели в файле *.uti отвечает строка под названием ModelVariation.

Прежде чем подытожить, посмотрите на зависимость файлов более наглядно.

Итак, файлы *_variation.gda являются своего рода посредниками между моделями одежды/брони/оружия и игровыми предметами. А ещё я таким образом намекаю на то, что, чтобы устранить конфликт, придётся редактировать и файлы *.gda, и файлы *.uti одновременно.
Любопытная информация: несмотря на такие странности с добавлением моделей одежды/брони/оружия в игру, модели причёсок не нужно вписывать в *.gda файлы, что позволяет добавлять их в огромном количестве. Обратная ситуация с игрой Neverwinter Nights 2, где модели причёсок приходится вписывать в местный аналог gda-файлов, чтобы они появились в редакторе создания персонажей. Только представьте, что для одной расы и пола существует всего лишь 255 номеров для причёсок. Чтобы обойти это ограничение, создавались клоны рас с такими же характеристиками и внешностью, но с другим набором причёсок. Такой же трюк можно провернуть с предметами из Dragon Age: Origins, только создать клон не расы, а типа предмета. Вы не заметите разницу в игре, клон там будет отображаться как «длинный меч», хотя технически это будет «длинный_меч_2». К сожалению, так делать не рекомендуется по ряду причин.
Первая причина – это невозможность создания клона типа предмета «одежда» (самого востребованного). Нет, продублировать файлы можно, но итог будет ужасен. Дело в том, что, когда мы надеваем на персонажа одежду, игра скрывает его руки и ноги так же, как шлем при надевании скрывает причёски. Но с клонированной одеждой этого не происходит. В итоге на персонаже отображается цельная модель одежды + модели голых рук и ног поверх неё. То ещё зрелище.
Вторая причина – неработоспособность многих геймплейных модов с клонированными типами предметов. Возьмём, к примеру, мод на увеличение скорости атаки. Он редактирует файл *.gda, отвечающий за типы предметов, внося изменения в параметр скорости атаки всего оружия. Конечно, на клон длинных мечей эти изменения не повлияют, потому что у него свой набор файлов *.gda, которые никто, кроме моддера, который их создал, не отредактирует.
Нудная теория закончилась, теперь можно переходить к практике.
Устранение конфликтов
Что понадобится:
- Один из конфликтующих модов.
- Официальный DA: Toolset или pyGFF.
- daoGFF или TlkEdit2.
- GDApp.
- DAOTlkEdit (на тот случай, если мод переведён).
- Гугл-таблица моделей из разных модов. Огромное спасибо Zloybelka за обновление этой таблицы!
Очень краткая инструкция по устранению конфликтов:
- Выберите один из конфликтующих модов.
- Если нужно, распакуйте его erf-архивы с помощью Тулсета или pyGFF.
- Скопируйте файлы *_variation_*.gda и *.uti в рабочую папку.
- Откройте нужный файл *_variation_*.gda с помощью GDApp.
- Измените в первом столбце номер на свободный, используя гугл-таблицу.
- Сохраните файл.
- Откройте нужный файл *.uti с помощью daoGFF или TlkEdit2.
- Найдите строку ModelVariation. Замените её значение на такое же, какое вы только что вписали в файл *_variation_*.gda.
- Сохраните файл.
- Отредактированные файлы переместите в вашу папку override.
- Готово.
Также ниже привожу список названий файлов *.gda всех типов предметов:
- armor_heavy_variation.gda – тяжёлые нагрудники.
- armor_light_variation.gda – лёгкие нагрудники.
- armor_massive_variation.gda – массивные нагрудники.
- armor_medium_variation.gda – средние нагрудники.
- battleaxe_variation.gda – боевые топоры.
- boots_heavy_variation.gda – тяжёлые сапоги.
- boots_light_variation.gda – лёгкие сапоги.
- boots_massive_variation.gda – массивные сапоги.
- boots_medium_variation.gda – средние сапоги.
- clothing_variation.gda – одежда.
- dagger_variation.gda – кинжалы.
- gloves_heavy_variation.gda – тяжёлые перчатки.
- gloves_light_variation.gda – лёгкие перчатки.
- gloves_massive_variation.gda – массивные перчатки.
- gloves_medium_variation.gda – средние перчатки.
- greatsword_variation.gda – большие мечи.
- helmet_heavy_variation.gda – тяжёлые шлемы.
- helmet_light_variation.gda – лёгкие шлемы.
- helmet_mage_variation.gda – шапки магов.
- helmet_massive_variation.gda – массивные шлемы.
- helmet_medium_variation.gda – средние шлемы.
- kite_shield_variation.gda – каплевидные щиты.
- longbow_variation.gda – длинные луки.
- longsword_variation.gda – длинные мечи.
- lround_shield_variation.gda – большие круглые щиты.
- mace_variation.gda – булавы.
- maul_variation.gda – молоты.
- shortbow_variation.gda – короткие луки.
- sround_shield_variation.gda – маленькие круглые щиты.
- staff_variation.gda – посохи.
- tower_shield_variation.gda – тяжёлые щиты.
- waraxe_variation.gda – секиры.
А теперь рассмотрим всё на конкретном примере и более подробно.
Первым делом нужно определить, какие моды конфликтуют. Даже необязательно знать двоих виновников – достаточно одного. Итак, когда я надеваю на персонажа лёгкий нагрудник под названием «Noble light armor» из мода Kirkwall Exports (версия с Nexusmods), то он отображается неправильно, значит с чем-то конфликтует.
Kirkwall Exports – это мод в формате dazip с архивами *.erf внутри, которые придётся распаковать, прежде чем приступить к редактированию файлов. Для распаковки erf-архивов используется либо программа ErfEditor.exe, которая идёт в комплекте с Тулсетом, либо сторонняя программа pyGFF.
Конечно, если мод устанавливается в папку override, то его файлы обычно не запакованы и работать с ними проще простого. Поэтому, если у вас конфликтует именно такой мод, пропускайте этот этап распаковки!
Моды в формате dazip обычно устанавливаются в папку AddIns по пути: …Документы\BioWare\Dragon Age\, но их файлы могут находиться и в других местах. Чтобы не мучиться и не искать их по разным папкам, поступим проще. Возьмём файл dazip того мода, который конфликтует, и просто распакуем его в рабочую папку с помощью любого архиватора, потому что dazip – это обычный архив zip, но со специальной структурой, понятной установщикам модов.
Вот так выглядит dazip, если открыть его в 7-zip архиваторе.

Из всех файлов внутри dazip нас пока интересуют только erf-архивы, из которых нужно достать файлы *.gda и *.uti. Единого рецепта, как определить, в каких конкретно архивах *.erf могут находиться эти файлы, нет, поэтому нужно проверить их все.
Работа с ErfEditor.
Сперва я пройду по пути: …\(рабочая_папка)\Contents\packages\core\data и открою файл Kirkwall_exports_package.erf с помощью программы ErfEditor.exe. Меню File – Open. Удобно сразу же отсортировать файлы в программе по типу, нажав левой кнопкой мыши (ЛКМ) по столбцу Type. После этого я выделяю все файлы *_variation_*.gda, нажимаю правую кнопку мыши (ПКМ) и выбираю пункт Extract Resource…

Затем указываю путь до рабочей папки и распаковываю файлы туда.
Есть и другой вариант. Если из архива нужно достать всего один файл, можно просто перетащить его из окна ErfEditor прямо в рабочую папку. Выделить и перетащить таким образом сразу несколько файлов не получится, только по одному.
Следом нужно распаковать все файлы *.uti по такому же принципу. Однако в моём случае эти файлы находятся в другом архиве – Kirkwall_exports_modcore.erf по пути: …(рабочая_папка)\Contents\addins\Kirkwall_exports\core\data. Теперь с распаковкой покончено.
Работа с pyGFF.
Если у вас по какой-то причине не устанавливается Тулсет, или если вы просто не хотите его устанавливать, можно воспользоваться сторонней программой. Программа эта называется pyGFF, и она работает как с файлами GFF, так и с ERF архивами.
Чтобы запустить программу, нужен установленный Python 2.6 на компьютере. Скачайте инсталлятор по ссылке «Windows X86-64 MSI Installer (2.6) [1] (sig)» и установите его. Возможно, понадобится перезагрузить компьютер.
Распакуем архив с программой pyGFF и запустим editor.exe.
Перейдём в меню File, пункт Export. В открывшемся окне выберем необходимый архив *.erf. Затем появится небольшое окно со списком файлов внутри архива. Отметим галочкой только те, которые нужно распаковать.

После этого нажмём OK и укажем папку для распаковки. Затем программа спросит про возможную перезапись файлов, соглашаемся.
Единственный минус этой программы в том, что при выборе файлов для экспорта их нельзя отсортировать по типу, поэтому придётся долго и мучительно выбирать нужные в этом небольшом окне. Но можно поступить немного по-другому. После открытия программы так же переходим в меню File, но вместо пункта Export выбираем пункт Export All. Указываем erf-архив и сразу же рабочую папку, куда будут распакованы абсолютно ВСЕ файлы из архива. Затем в рабочей папке можно удалить все распакованные файлы, кроме файлов *.gda и *.uti. Такой способ тоже так себе, но в проводнике файлы можно хотя бы отсортировать по типу, названию и т.д. В общем, это на ваш выбор.
Итак, файлы распакованы и подготовлены, теперь остаётся их отредактировать. Но прежде среди них придётся найти нужные. И вот тут будет несколько сценариев.
Сценарий первый
Самый первый и самый простой, когда нужный файл *.uti можно вычислить с помощью классной гугл-таблицы. Откройте её. Сейчас я научу вас ею пользоваться.

Данная таблица состоит из нескольких листов, где каждый лист, начиная со второго – это таблица определённого типа предмета со списком всех моделей из всех модов. Обязательно ознакомьтесь с моими комментариями на титульном листе.
На самом деле это копия оригинальной таблицы от valerie1972, которую я немного привела в порядок и залила на свой гугл-диск. Я не стала переводить её, так как пользуюсь ею сама, делая разные пометки, и английский язык для меня в таких документах предпочтительнее. Но, чтобы вы не запутались, ниже я напишу перевод названий листов.
- clothing – одежда
- helmet_mage – шапки/шлемы для магов
- armour_light – лёгкие нагрудники
- boots_light – лёгкие сапоги
- gloves_light – лёгкие перчатки
- helmet_light – лёгкие шлемы
- armor_medium – средние нагрудники
- boots_medium – средние сапоги
- gloves_medium – средние перчатки
- helmet_medium – средние шлемы
- armor_heavy – тяжёлые нагрудники
- boots_heavy – тяжёлые сапоги
- gloves_heavy – тяжёлые перчатки
- helmet_heavy – тяжёлые шлемы
- armor_massive – массивные нагрудники
- boots_massive – массивные сапоги
- gloves_massive – массивные перчатки
- helmet_massive – массивные шлемы
- longbow – длинные луки
- shortbow – короткие луки
- dagger – кинжалы
- shortsword – короткие мечи (добавляется каким-то модом)
- longsword – длинные мечи
- greatsword – большие мечи
- waraxe – секиры
- battleaxe – боевые топоры
- mace – булавы
- maul – молоты
- kite_shield – каплевидные щиты
- large_round_shield – большие круглые щиты
- small_round_shield – маленькие круглые щиты
- tower_shield – тяжёлые щиты
- staff – посохи
- crossbow – арбалеты
Вспоминаем, что у меня конфликтует лёгкий нагрудник под названием «Noble light armor». Значит, в этой таблице мне нужно перейти на лист armour_light (лёгкие нагрудники). Теперь я буду искать название нагрудника в столбце item (это название предмета в игре). Итак, виновник найден. Даже два.

Я не знаю точно, какая версия нагрудника конфликтует, поэтому заменю номера сразу у двух моделей. Обратите внимание на столбец UTI на скрине выше, здесь указаны названия файлов *.uti, что очень удобно, не придётся тратить время на их поиски.
Итак, я запускаю сразу две программы: daoGFF и GDApp. В daoGFF я открываю файл noblelarm.uti, а в GDApp – файл armor_light_variation_kimp.gda, так как он отвечает за лёгкие нагрудники в этом моде.

Да начнётся параллельная замена номера сразу в обеих программах! Для этого в программе daoGFF нужно отредактировать значение строки ModelVariation, а в программе GDApp – значение строки в столбце ID.
В программе daoGFF в левой части окна я выделяю ЛКМ строку ModelVariation, а в правой части окна редактирую её значение. В моём случае я заменю 141 на 144, так как этот номер, судя по гугл-таблице, пока что свободен (но это не точно). После этого нужно обязательно нажать на кнопку «применить», чтобы не потерять изменения!

В программе GDApp я дважды щёлкаю ЛКМ по нужной строке в столбце ID, стираю старое значение и вписываю новое, нажимаю Enter. То есть также меняю 141 на 144.

Теперь файлы выглядят так:

После этого файлы нужно обязательно сохранить, делается это стандартно через меню File/Файл и пункта Save/Сохранить.
Со вторым файлом, noblelarm2.uti, все предыдущие действия повторяются: он открывается в программе daoGFF, в строке ModelVariation значение 142 меняется на, например, 176. В программе GDApp по-прежнему открыт файл armor_light_variation_kimp.gda, и значение в строке 142 тоже меняется на 176. Оба файла снова сохраняются.
Почти всё. Теперь отредактированные файлы нужно поместить в папку override, чтобы они перезаписали существующие в архивах *.erf. Напоминаю, что папка override находится по пути: …Документы \BioWare\Dragon Age\packages\core\override.
ГОТОВО! Конфликта больше нет и можно играть дальше. =)
Во втором сценарии я разберу ситуацию, когда мод переведён на русский язык и найти нужный предмет в гугл-таблице уже так быстро не получится.
Сценарий второй
Допустим, мы установили мод на русском языке или нужного мода и вовсе нет в нашей замечательной гугл-таблице. Да, бывает и такое, поэтому мы научимся обходиться без неё.
Хорошо. Забыли первый сценарий. Представим, что я установила русскую версию мода Kirkwall Exports. Я знаю, что конфликтует предмет под названием «Легкий доспех дворянина». Теперь мне нужно найти *.uti, связанный с этим предметом. Гугл-таблицей в этом случае не воспользоваться, так как там названия предметов только на английском (да-да, я лентяйка и не вписала туда переведённые названия), поэтому пойдём следующим путём.
Поначалу действия не меняются, нужно всё так же распаковать dazip русифицированной версии Kirkwall Exports, а из распакованных архивов *.erf достать файлы *.gda и *.uti в рабочую папку. Но на этом совпадения заканчиваются и начинаются поиски файлов.
При переводе модов текст из всех файлов переносится в специальный файл *.tlk. Это вынужденная мера, так как никакие другие файлы, кроме *.tlk, не поддерживают кириллицу. Поэтому нам нужно найти файл *_ru-ru.tlk («ru-ru» в конце названия указывает на то, что в файле содержится текст на русском языке) среди файлов распакованного dazip. Затем посмотреть ID названия нагрудника. Не путать с ID модели нагрудника, у игры много разных ID. Как только мы будем знать ID названия нагрудника, мы довольно быстро вычислим нужный файл *.uti.
При переводе модов я обычно помещаю файлы *.tlk в отдельную папку под названием talktables, но другие переводчики могут поступить по-своему и даже запаковать эти файлы в архив *.erf, поэтому точное расположение файлов *.tlk я, к сожалению, не смогу вам подсказать.
В моём случае файл kirkwall_exports_c_ru-ru.tlk оказался по пути: …(рабочая_папка)\Contents\addins\Kirkwall_exports\core\data\talktables\.
Для работы с файлами *.tlk понадобится программа DAOTlkEdit. Конечно, Тулсет тоже может открывать, создавать и редактировать эти файлы, но его функционал по поиску внутри файла сильно ограничен, точнее, его нет вообще.
Итак, я запускаю DAOTlkEdit.exe. Затем с помощью этой программы открываю файл kirkwall_exports_c_ru-ru.tlk, и получаю такой результат:

Обратите внимание на строку Type char(s), and enter or click [Find] в правом нижнем углу окна программы, именно она отвечает за поиск по файлу *.tlk. Снова напоминаю, что у меня конфликтует предмет «Легкий доспех дворянина», поэтому я пишу это название в строку поиска.

После чего нажимаю кнопку Find. Нашлось целых 2 результата с одинаковым названием, но с разными ID.

Копирую ID первого названия из строки StrRef в правой части окна программы в какой-нибудь текстовый документ.

Так как нашлось два результата с одинаковым названием, я нажму на кнопку Next под кнопкой Find, и программа отобразит следующую найденную строку. Её ID также надо скопировать в текстовый документ.

Всё, ID названия (даже названий) мы узнали, поэтому программу DAOTlkEdit можно закрыть.
Теперь не остаётся ничего другого, кроме как открывать поочерёдно каждый файл *.uti в программе daoGFF и сравнивать скопированный ID с ID в строке LocalizedName… НО! Так как файлов *.uti в моде Kirkwall Exports аж 56 штук и проверять все будет очень долго, то можно прибегнуть к небольшой хитрости и немного отсеять лишние *.uti. Скажу сразу, что этот способ не панацея и сильно зависит от того, как автор назвал свои файлы *.uti, но всё равно может помочь.
Итак, у меня конфликтует нагрудник. Часто названия файлов *.uti нагрудников содержат в себе буквы cht (от слова «chest» – нагрудник) или arm (от слова «armor(armour)» – броня). Если по такому принципу отфильтровать файлы *.uti, то совпадение обнаружится всего у 5 штук. Конечно, нагрудников в моде гораздо больше, и остальные не содержат в своём названии ни cht, ни arm (это уже на совести автора), но для начала можно проверить эти 5 файлов.
Тем временем вот вам небольшая шпаргалка, как по буквам названия файлов *.uti можно вычислить, какой это тип предмета:
- cht/arm – нагрудник.
- boo – сапоги.
- glv – перчатки.
- hlh/hlf/hel/hoo – шлем.
- rob – роба/мантия (нагрудник храмовников тоже может содержать буквы rob вместо arm).
(Полный список сокращений в документе PDF, так как тут ограничение по кол-ву символов).
Я повторюсь, что названия файлов *.uti на совести автора мода. Если он даст файлу название fwgkef.uti, то вы никогда по нему не поймёте, какой тип предмета перед вами. (Моддеры, если вы это читаете, давайте, пожалуйста, правильные названия файлам в ваших модах!).
Вернёмся к нашим конфликтующим баранам. Я запускаю программу daoGFF и открываю в ней первый файл *.uti с буквами arm в названии, у меня это leatharm.uti. После чего сверяю ID в строке LocalizedName с тем, который скопировала из файла *.tlk в текстовый документ.

В файле leatharm.uti ID названия 1154081649, тогда как скопированный из файла *.tlk – 1154081663. Не сходится, поэтому я открываю следующий файл *.uti в daoGFF, это noblelarm.uti. И бинго! ID в строке LocalizedName такой же, как в файле *.tlk – 1154081663.

Теперь, когда файл конфликтующего предмета найден, нужно исправить значение строки ModelVariation на свободный номер, используя ту же гугл-таблицу, ну, или случайное число.
Также важно не забыть заменить это же значение в файле *_variation_*.gda. То есть для этого мне нужно открыть файл armor_light_variation_kimp.gda в программе GDApp и заменить значение 141 в столбце ID на значение, только что вписанное в файл noblelarm.uti, затем сохранить файлы и поместить их в папку override. В общем, сделать под конец то же самое, что и в первом сценарии.
Заключение
Я расписала всего лишь два сценария поиска конфликтующих файлов, но на самом деле их великое множество.
Например, кому-то может быть удобнее сначала открыть файл *_variation_*.gda в программе GDApp и по названию в столбце Label определить конфликтующую броню/одежду/оружие.
Или, если вы неплохо знаете английский и название файла *.uti позволяет, то вы сможете найти нужный файл *.uti просто по его названию или по тегам внутри.
И так далее.
Поиск файлов – это тоже навык, который постепенно можно развить, часто работая с файлами игры. Однако я желаю вам встречаться с конфликтами модов как можно реже, чтобы не тратить время на их устранение, а потратить его на более приятные вещи. :)
Удачи!