使用 retoc 编辑 IoStore 资源

使用 retoc 编辑 IoStore 资源

本指南介绍如何为使用 IoStore 的游戏制作资源数值修改 Mod。示例使用 UE5.6 游戏 The Last Caretaker,修改一个数据资源中的默认变量。如果游戏的 Paks 文件夹有 .utoc 和 .ucas 文件,说明游戏使用了 IoStore。

需要准备 FModel 查找资源、retoc 提取和重新打包资源,以及 UAssetGUI 编辑资源。本文假设你已知道游戏的 UE 版本,拥有映射文件及 AES 密钥(如需要)。

使用 FModel 查找资源

在 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 文件。

为 UAssetGUI 导入映射文件

如果打开文件时提示缺少依赖资源,可对提示中的资源重新运行 retoc,使用 --filter 提取,再重新打开目标文件。

UAssetGUI 显示缺少依赖资源的提示

不同资源的结构各不相同。找到要修改的变量后更改其值,保存并关闭 UAssetGUI。

在 UAssetGUI 中修改目标变量

准备并重新打包

打包前删除 UAssetGUI 生成的 .bak 文件,以及之前为打开目标文件而提取的依赖资源。只保留修改过的文件,每项资源包含对应的 .uasset 和 .uexp。

清理后保留需要打包的资源

使用以下命令,将 Mod 文件夹重新打包为 .pak、.utoc 和 .ucas:

retoc to-zen <Folder_name> <Folder_name>.utoc --version <version>

retoc 重新打包命令示例

将生成的三个文件复制到游戏 Paks 文件夹并测试。原指南所用的 Mod 可在 Nexus Mods 查看。

原文来源:Dmgvol / UE_Modding:EditingIoStoreAssets.md。