Туториал: скин-моды
Как модом поменять внешность NPC: и персонала блокпоста, и посетителей.
Вариант А: замена персонала блокпоста
Пример результата — мод, который превращает всех пятерых сотрудников КПП в зомби.
- Запустите редактор Creator Kit (
Run_QZSim_Editor.bat) — не открывайтеQZSim.uprojectдвойным кликом: Windows попросит выбрать версию движка и завершится ошибкой «This project does not have any source code» (в ките специально нет C++-исходников). Создайте мод через mod.io → Create & Upload → Create Mods. - В Content своего мода создайте ассет QzStaticNPCSkinDataAsset (ПКМ → Miscellaneous → Data Asset → выберите класс).
- Заполните поля:
- NPCTag — кого меняем:
NPC.Skin.Doc(доктор Джорджи),NPC.Skin.Usmon,NPC.Skin.UsmonWhite,NPC.Skin.Military(все солдаты разом),NPC.Skin.Scientist(хирург в рентген-зоне). - Mesh — новый скелетал-меш (опционально; пусто = менять только материалы). Меш должен быть ригнут на скелет, который игра умеет анимировать — проще всего взять меш, который уже есть в игре (например, меш зомби), или свою модель, подогнанную под скелет персонала — см. Своя модель. Модель с Mixamo «как есть» не встанет — нужен перескин в Blender на этот скелет.
- Materials — переопределение материалов по слотам (номер слота → материал). Можно ссылаться на любые материалы базовой игры.
- NPCTag — кого меняем:
- Один ассет = один NPC. Хотите заменить всех — сделайте ассет на каждый тег (всего их пять).
- Проверьте в Play In Editor прямо в ките: моды из
QZSim\Mods\монтируются автоматически. - Упакуйте через Package Mods и залейте на mod.io — или сначала протестируйте локально: распакуйте упакованное в
<папка игры>\QZSim\Modio\<ИмяМода>\и запустите игру.
Сюжетных NPC (Шульц, Торрес, Майор, MrWhite) заменить нельзя.
Вариант Б: замена/добавление внешности посетителей
Внешность генерируемых посетителей (одежда, причёски, лица, тела) собрана в пулы по ключам.
Ключ — это поле ассета Key Tag Data; вписать его вручную в панели деталей нельзя.
-
Заменить базовую вещь: продублируйте базовый ассет в свой мод. Копия сохраняет базовый Key Tag Data, поэтому заменяет базовую вещь везде, включая восстановление сейвов. Поле Generator Data Source на это не влияет.
-
Добавить новую вещь:
- Продублируйте базовый ассет в свой мод и переименуйте его. Копия пока хранит в Key Tag Data базовый ключ.
- Сначала сохраните ассет. Кнопка Generate data key tag на несохранённом новом ассете ничего не делает.
- Нажмите Generate data key tag. Key Tag Data станет
Generator.DataKey.<Layer>.<ИмяАссета>. - Редактор записывает строку тега в
QZSim\Config\Tags\Generator.iniсамого кита, а не в ваш мод. Перенесите строку вConfig\Tags\<ИмяМода>Tags.iniсвоего мода (шаблон: Свои GameplayTags) и удалите её из файла кита, затем сохраните. После этого Package Mods включит ini в мод. - У продублированного базового ассета может быть включено Use Only Custom Profile. Снимите галочку, если вещь должна появляться у случайных посетителей.
Новая вещь сама попадает в пул генерации; частоту появления задаёт её Selection Weight.

До: у дубликата всё ещё базовый ключ (...DA_Hats_Beer_helmet).

После: Key Tag Data = Generator.DataKey.Accessory.Hat.DA_Hats_MyFirstHat.
См. также Внешность посетителей.
Своя модель
Вариант 1 — меш из игры. Создайте QzStaticNPCSkinDataAsset, укажите тег персонажа (NPC.Skin.Doc, NPC.Skin.Military ...), в поле Mesh выберите подходящий меш, который уже есть в игре (например, меш зомби), при желании переопределите материалы. Экспорт не нужен.
Вариант 2 — своя модель. Меши персонала блокпоста в Creator Kit — обычные, экспортируемые ассеты, поэтому скелет персонала можно взять из них.
- В Content Browser найдите меш персонала, который хотите заменить, в
Art/Characters/PA_Collection/Assets/Characters/Mesh/: докторD2_Zheka, солдатD4_Mirbek, Usmon / Usmon White / хирургD1_Usmon(такжеD3_Bolat). - ПКМ → Asset Actions → Export... → FBX. В FBX лежат меш и его скелет (
D1_Usmon_Skeleton; он общий для всего персонала). - В Blender импортируйте этот FBX, смоделируйте или подгоните своего персонажа под эту арматуру (имена арматуры и костей не меняйте), заскиньте и экспортируйте в FBX.
- В ките импортируйте FBX в папку своего мода. В диалоге Import Content на вкладке Skeletal Meshes укажите Skeleton =
D1_Usmon_Skeleton; анимации не импортируйте.

Диалог Import Content, вкладка Skeletal Meshes: Skeleton = D1_Usmon_Skeleton.
- Создайте
QzStaticNPCSkinDataAsset, выберите NPCTag и укажите в Mesh свой импортированный меш.

Выбор NPCTag: Doc, Military, Scientist, Usmon, UsmonWhite.

Заполненный скин-ассет: NPCTag = NPC.Skin.Doc, Mesh = собственный скелетал-меш.
- Проверьте в Play In Editor, затем упакуйте и опубликуйте.
Экспортировать можно только персонал; остальные сторонние (cooked) ассеты по-прежнему нельзя, а Migrate остаётся отключённым.
Моды и сейвы
- Сейв, созданный без модов, спокойно работает после установки мода: новое подхватывается со следующего дня, замены применяются и к уже сохранённым NPC.
- Удаление мода слот НЕ ломает: контент мода хранится в сейве тегами и при отсутствии мода просто выпадает (симптомы мода исчезнут у сгенерированных NPC, инструменты пропадут из колеса, замены вернутся к базе).
- Рекомендация игрокам: подписываться/отписываться между кампаниями или хотя бы между днями, не посреди дня.
Частые грабли
- Uplugin: инструмент Package Mods сам проставляет
EngineVersionиGameVersion— руками не трогайте. Без них (или со старым GameVersion) игра мод отклонит: игрок увидит в меню «Mods need an update» (или «Some mods were not loaded», если причина не в версии). - Обновили мод, а в игре старьё — установка/обновление посреди сессии применяется сразу, но уже загруженный уровень контент на лету не подменит: выйдите в главное меню и зайдите заново. Если и после этого старьё — перезапустите игру.
- Меш встал в позу «T/A» — скелет вашего меша несовместим с аним-блюпринтом персонажа. Возьмите меш на скелете персонала
D1_Usmon_Skeleton(импортируйте с выбранным этим скелетом) — см. Своя модель. - Теги скинов эксклюзивны между модами: каждым тегом
NPC.Skin.*может владеть только один мод. Если два мода задают один тег, применяется только один из них, и какой именно — не определено. - Скин применяется в каждой кампании, включая официальные. Перед публикацией уберите тестовые скины.
- Для продвинутых: Post Process Anim Blueprint меша должен пропускать позу дальше, иначе NPC встанет в T-позу.
- Свои GameplayTags (для новых симптомов, инструментов и т. п.) объявляйте в
Config\Tags\<ИмяМода>Tags.iniвнутри мода — они подхватятся и упакуются автоматически.