使用 retoc 编辑 IoStore 资源
本指南介绍如何为使用 IoStore 的游戏制作资源数值修改 Mod。示例使用 UE5.6 游戏 The Last Caretaker,修改一个数据资源中的默认变量。如果游戏的 Paks 文件夹有 .utoc 和 .ucas 文件,说明游戏使用了 IoStore。
需要准备 FModel 查找资源、retoc 提取和重新打包资源,以及 UAssetGUI 编辑资源。本文假设你已知道游戏的 UE 版本,拥有映射文件及 AES 密钥(如需要)。
使用 FModel 查找资源
在 FModel 中打开游戏文件,找到要修改的资源。有关配置方法,参见 FModel 指南。
示例修改 DA_Enhancer_Character_HaulMastery 中的 InventoryWeightCapacityIncrease 默认变量。
使用 retoc 提取
retoc 通过命令提示符使用。Windows 用户可按 Win + R,输入 cmd 并回车。使用 cd 切换到 retoc 所在文件夹,例如:
cd "C:\UE Modding\Tools\retoc"
提取指定资源的命令格式:
retoc to-legacy --no-shaders <Paks_Folder> --filter <Asset_Path> --version <version> <output_folder>
<Paks_Folder>:游戏 Paks 文件夹的完整路径,例如E:\SteamLibrary\steamapps\common\TheLastCaretakerDemo\Voyage\Content\Paks。<Asset_Path>:目标资源的完整路径,例如Voyage/Content/Data/Assets/Enhancements/DA_Enhancer_Character_HaulMastery.uasset。<version>:游戏的 UE 版本,例如UE5_6。<output_folder>:提取文件的输出目录。
只修改单个资源时无需提取全部资源;提取全部资源可能占用大量磁盘空间。
使用 UAssetGUI 编辑
在提取目录中找到目标 .uasset,用 UAssetGUI 打开。确认 UE 版本正确,并通过 Utils → Import mappings 导入游戏的 usmapping 文件。
如果打开文件时提示缺少依赖资源,可对提示中的资源重新运行 retoc,使用 --filter 提取,再重新打开目标文件。
不同资源的结构各不相同。找到要修改的变量后更改其值,保存并关闭 UAssetGUI。
准备并重新打包
打包前删除 UAssetGUI 生成的 .bak 文件,以及之前为打开目标文件而提取的依赖资源。只保留修改过的文件,每项资源包含对应的 .uasset 和 .uexp。
使用以下命令,将 Mod 文件夹重新打包为 .pak、.utoc 和 .ucas:
retoc to-zen <Folder_name> <Folder_name>.utoc --version <version>
将生成的三个文件复制到游戏 Paks 文件夹并测试。原指南所用的 Mod 可在 Nexus Mods 查看。