Valheim Packager 是一个小型命令行辅助工具,用于准备 Valheim 模组发布。它可以从你的模组项目文件夹中创建、验证并打包符合 Thunderstore 发布要求的文件,这样你在每次发布或更新模组时就不需要手动重新构建相同的文件夹结构。
该工具主要围绕常见的英灵神殿BepInEx模组开发流程构建:在本地BepInEx插件文件夹中开发和测试你的模组,将Thunderstore文件保留在项目中,然后在模组准备就绪时生成干净的发布文件夹和可上传的zip包。
它有助于捕获常见的打包错误,例如缺少清单文件、缺少README、图标尺寸无效、缺少DLL以及根结构错误的zip文件。
- 创建初始Thunderstore包文件,包含 初始化 命令。
- 在打包前验证所需的发布文件。
- 检查清单文件、自述文件、图标、更新日志以及模组DLL文件。
- 验证 icon.png 是否为有效的 256x256 PNG。
- 检查常见清单字段,如模组名称、版本、网站链接、描述和依赖项。
- 在内部创建干净的发布文件夹 距离.
- 创建可直接上传的匹配压缩包。
- 使用正确的Thunderstore根目录结构,因此文件会直接放在zip内,而不是放在额外的父文件夹中。
- 可以从你本地的 BepInEx 插件文件夹自动复制模组 DLL。
- 通过以下方式支持项目特定设置 瓦尔海姆打包器.json.
- 支持为本地 BepInEx 插件路径使用全局配置文件。
- 为在你的模组项目文件夹内重复执行发布命令而设计。
Valheim 打包工具是一个独立的 Windows 命令行工具。
推荐:
- Windows 10 或 Windows 11
- 你想打包的英灵神殿模组项目
- 一个终端,例如命令提示符、PowerShell或Windows终端
- 可选:如果你希望 Valheim Packager 自动从你的开发插件文件夹复制 DLL,可以使用 r2modman 或其他本地 BepInEx 配置
只有在你想使用提供的 PATH 设置片段时,才需要 PowerShell。
BepInEx 仅用于开发和测试 Valheim 模组。Valheim Packager 本身运行不需要 BepInEx。下载 Valheim Packager 并将其解压到电脑上的一个永久文件夹中。
推荐的示例位置:
C:\Tools\ValheimPackager该文件夹应包含:
Valheim打包器.exe可选,但
推荐:将该文件夹添加到你的 Windows PATH 中。这样你就可以从任何模组项目文件夹运行 Valheim Packager。你可以使用 PowerShell 将其添加到用户 PATH 中:
$toolPath = "C:\Tools\ValheimPackager"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
如果($userPath 不匹配 "*$toolPath*"){
[Environment]::SetEnvironmentVariable("Path", "$userPath;$toolPath", "User")
}
运行完 PowerShell 代码片段后,关闭并重新打开你的终端。
测试命令是否有效:
Valheim打包工具 --帮助如果你使用包含的命令包装器,你也可以运行:
瓦尔海姆打包器 --帮助 或者简单地说
瓦尔海姆打包工具可选全局配置全局配置允许Valheim Packager在你运行打包命令时,自动从本地BepInEx插件文件夹复制你的模组DLL。
创建此文件:
C:\Users\你的用户名\AppData\Roaming\ValheimPackager\config.json示例内容:
{
"bepInExPluginsDir": "C:/Users/YourUserName/AppData/Roaming/r2modmanPlus-local/Valheim/profiles/YourProfile/BepInEx/plugins"
}
使用你在其中开发和测试模组的 r2modman 配置文件的 BepInEx 插件文件夹。如果你不想使用全局配置,你可以在运行打包之前手动将你的模组 DLL 复制到 Thunderstore 文件夹中。
安装后
瓦尔海姆打包器,在你的模组项目文件夹中打开终端。例如:
D:\DEV\Valheim\my-valheim-mod请先运行初始化命令:
英灵神殿打包工具初始化这将创建初始包文件和项目配置:
Thunderstore\manifest.json雷暴商店\README.mdThunderstore\更新日志.md瓦尔海姆打包器.json现在编辑生成的文件。让我们看看
瓦尔海姆打包器.json 深入探讨。让我们使用一个叫做
北欧热门歌曲.
想象一下你编译好的DLL叫做:
NordicHits.dll 在开发过程中,你的模组会像这样安装在 BepInEx 的 plugins 文件夹中:
BepInEx\plugins\jason-NordicHits\NordicHits.dll那样的话,你的
瓦尔海姆打包器.json 应该像这样:
{
“packageDir”: “Thunderstore”,
“outputDir”: “dist”,
"dllName": "NordicHits.dll",
插件文件夹名称:jason-NordicHits
“dllSource”: “”
}
重要:init 不会复制你的模组 DLL。
DLL 会在你运行 package 时稍后处理。
处理DLL有两种方式:
- 使用全局配置和项目配置,以便 Valheim Packager 自动复制 DLL。
- 或在运行包之前手动将 DLL 复制到 Thunderstore 文件夹中。
编辑文件后,运行:
瓦尔海姆打包工具验证*在此示例中,DLL 警告是预期内的。在初始化或验证过程中不会复制该 DLL。如果全局配置和 valheim-packager.json 设置正确,它会在执行打包命令时被获取。你也可以在打包前手动将 DLL 复制到 Thunderstore 文件夹中。
如果DLL尚未位于Thunderstore文件夹内,验证时可能会显示缺少DLL的警告。如果你使用的是全局配置,这可能是正常现象,因为DLL会在执行打包命令时被复制。
当验证结果看起来没问题时,运行:
英灵神殿打包器包这会在dist文件夹内生成最终发布文件。
示例输出:dist\YourMod-v1.0.0dist\你的模组-v1.0.0.zipzip 文件是可直接上传的完整包。
英灵神殿打包器 使用 manifest.json 中的模组名称和版本号来命名最终发布文件夹和压缩包。
全局配置是可选的,但
推荐。它让 Valheim Packager 知道你的本地 BepInEx 插件文件夹在哪里。这样,在创建最终发布文件夹和 zip 时,package 命令就能自动复制你的 mod DLL。
创建此文件:
C:\Users\YourUserName\AppData\Roaming\ValheimPackager\config.json示例内容:
{
"bepInExPluginsDir": "C:/Users/YourUserName/AppData/Roaming/r2modmanPlus-local/Valheim/profiles/YourProfile/BepInEx/plugins"
}
使用你开发和测试模组的 r2modman 配置中的 BepInEx plugins 文件夹。全局配置应只包含机器特定的路径。它不应包含你的模组名称或 DLL 名称。模组特定的值应放在
瓦尔海姆打包器.json 每个模组项目内。
每个模组项目都有其自己的
瓦尔海姆打包器.json 文件。该文件告知 Valheim Packager 包文件的位置、最终 zip 应输出到哪里、DLL 的名称,以及哪个 BepInEx 插件文件夹包含构建好的 DLL。
示例:
{
"packageDir": "Thunderstore",
“outputDir”: “dist”,
"dllName": "你的模组.dll",
"pluginFolderName": "author-你的模组",
“dllSource”: “”
}
重要字段如下:
包目录包含清单、自述文件、图标、更新日志和可选DLL文件的文件夹。
输出目录最终发布文件夹和压缩包所在的文件夹。
dll名称你编译的模组 DLL 的名称。
插件文件夹名称开发期间在 BepInEx 插件文件夹内使用的文件夹名称。
DLL源可选的DLL或DLL文件夹直接路径。如果全局配置和pluginFolderName设置正确,通常可以留空。
如果自动复制DLL让你觉得烦,可以跳过全局配置,直接在运行打包前手动把你的DLL复制到Thunderstore文件夹里。
英灵神殿打包器使用两个配置文件:
全局配置适用于你的电脑。
项目配置仅适用于单个特定模组项目。
初始化创建初始包文件和项目配置。
瓦尔海姆打包工具初始化你也可以提供值:
valheim-packager init --name YourMod --version 1.0.0 --url https://github.com/你的名字/你的模组
验证检查包文件。
英灵神殿打包工具验证检查必需文件、清单字段、依赖格式、图标尺寸、压缩包结构和 DLL 状态。
如果你使用自动复制DLL功能,出现DLL缺失警告可能是正常现象。该DLL会在打包过程中被复制。
包
包创建最终发布文件夹和可供上传的压缩包。
瓦尔海姆打包器 打包这会生成:
dist\YourMod-v1.0.0
dist\YourMod-v1.0.0.zip
你也可以手动传入 DLL 路径:
valheim-packager package --dll C:\Path\To\YourMod.dll或者传递一个包含该DLL的文件夹:
valheim-packager 打包 --dll C:\Path\To\BepInEx\plugins\author-YourModValheim打包工具目前专注于Thunderstore风格的Valheim模组包。
它不会生成你的模组DLL。请先在Visual Studio中正常生成你的模组。
不会将文件上传到 Nexus 或 Thunderstore。
它不会编辑你的模组源代码。
它并不保证你的模组在游戏中能正常运行,只检查发布包结构和常见的打包错误。
自动复制DLL取决于你的全局配置和项目配置是否正确。
如果自动复制 DLL 对你的设置没有用,你随时可以在运行包之前手动将 DLL 复制到 Thunderstore 文件夹中。
当前工作流主要针对Windows以及本地Valheim BepInEx/r2modman开发而设计。
感谢英灵神殿模组社区以及 BepInEx 和 Harmony 的创作者们。
来源:
GitHub