Skip to content

HD2 Mod Quick Deploy 0.17.0 (developer build)

Pre-release
Pre-release

Choose a tag to compare

@pat-pat-patrick pat-pat-patrick released this 04 Nov 05:42

HD2 Mod Quick Deploy 0.17.0 (developer build)

Helldivers 2 的 mod 管理器:用硬链接增量部署,一次部署通常只需 0.13–0.29 秒,不复制任何 mod 数据;按资源逐个处理冲突,并管理 Lua mod 的加载器。

这是开发版:此版不包含 Nexus 下载功能。程序自带的更新检查也会提示之后的开发版。

0.17.0 更新内容

  • 按压缩包认出 Nexus Mods 来源:手动下载、改过名或他人转发的压缩包,即使没有 Nexus Mods 的来源记录,也能检查更新。加入时记下压缩包的 MD5;检查更新时向 Nexus Mods 的公开接口查询,找到后记为对应的 MOD 和文件,版本也随之确定。无需登录。
    • 以前加入的 MOD,只要原压缩包仍在加入时的位置,检查更新时会补记。
    • 同一内容出现在多个不同的 MOD 中,或属于其他游戏时,不会关联。
    • 已有其他来源(GitHub 或其他网站)的 MOD 不查询。
  • 更新时列出各版本的改动:有新版本时,MOD 详情的“更新”一栏列出从当前版本到最新版之间每个版本的更新说明(作者在 Nexus Mods 上填写的),最新的在前,最多显示 5 个版本。命令行 hd2qd check-updates 全部列出。只包括同一文件系列的版本,不含可选文件。
  • 打开管理器时自动检查 MOD 更新:每天最多一次,在后台进行,不影响使用;不会自动下载或替换 MOD,查到更新时底部状态行会说明,列表中照常显示黄色标记。上次检查的结果会保留,再次打开时标记仍在。可在设置 →“MOD 更新”中关闭;命令行为 hd2qd check-updates --at-start on|off。
  • 开发版也能按编号查找和匹配来源信息:这两项使用 Nexus Mods 的公开接口,无需登录,现在开发版也有。开发版中原来的“下载”页面改为“Nexus”页面,可按编号查看 mod、前往其页面,并列出库里来自 Nexus Mods 的 MOD;命令行为 hd2qd nexus-info。所有版本的“匹配来源信息”都不再需要登录。
  • MDL3 dev.33 及以后:用户文件夹的路径无法用系统代码页写出时(例如中文用户名),MDL3 的文件改放到 %ProgramData% 下,与 MDL3 自带的安装程序一致;问题报告和加载器日志也从那里读取。
  • 修复:命令行 hd2qd update 在 MOD 首次从 HD2 Arsenal 的记录得到来源时,可能把库保存成只剩这一个 MOD。

0.16.0 没有单独发布,其内容如下。

0.16.0 更新内容

  • 冲突视图:左侧的“冲突”打开专门的冲突视图,每件游戏物品(如一件护甲、一顶头盔)一张卡片,标题就是该物品,标题下说明有几个 MOD 修改了它的多少个资源。
    • 列出已启用的 MOD 和所选选项造成的冲突,也列出未启用的 MOD 和未选中的选项造成的冲突:每个 MOD 的每个选项都算在内,换了选项后卡片仍会保留,标题变灰并写明原因(所选选项不冲突、只有 1 个已启用等)。包括已停用的 MOD;每个 MOD 带开关,可在这里启用或停用。其他视图只在 MOD 启用时标记冲突。
    • 各 MOD 的其余内容都会生效;它们共同修改的资源只使用其中一个已启用 MOD 的版本,标为“优先”。
    • 冲突来自选项时,MOD 名称下显示“选项:…”,点击可换一个选项,每个选项同一行标出会与几个已启用的 MOD 冲突,或“无冲突”;选项很多时菜单可滚动。
    • 只有不到两个 MOD 启用的组以灰色标题显示。视图上方的“显示未启用的 MOD 或选项造成的冲突”取消勾选后,只显示已启用的 MOD 和所选选项造成的冲突;卡片里仍列出所有相关的 MOD。
    • MOD 按名称排列,点击后位置不变;只重新绘制有变化的卡片,不会闪烁。
    • 点击任一 MOD(包括已停用的)会在右侧显示它的详情;已启用的 MOD 上有“设为优先”按钮(鼠标指向或选中时显示),点击即改用它的版本,不会关闭其他 MOD,标记立即更新,不会再跳回。部署前,游戏中现在使用的版本仍标“优先”,新选的 MOD 加虚线框并标“部署后优先”。
  • 按游戏物品命名资源:有 HD2SDK 的游戏包名称表时(“资源名称”插件 1.1.0 会一并下载),冲突中的资源显示它属于哪件游戏物品,如“护甲:SR-24 Street Scout”;几件物品共用的资源会全部列出。MOD 详情中新增“替换”一行,列出该 MOD 替换了哪些游戏物品。
  • 问题报告可直接上传:设置 › 关于与诊断中的“问题报告…”打开一个窗口:选择问题类型(启动游戏时崩溃、任务中崩溃、MOD 没有生效等),可简要描述,展开可查看将上传的每个文件。点“上传”后得到一个报告编号(如 QD-7F3K2M),发给 MOD 作者即可;也可以“保存到桌面”自行发送。报告保留 30 天,详见窗口中的“隐私说明”。
    • 每个日志只取末尾一段,整份报告有总量上限;某个日志异常增大(超过 100 MB)时,报告摘要中会单独指出。
  • 没有描述文件的老 MOD 可选子文件夹:patch 文件分散在多个子文件夹里、又没有 manifest.json 的 MOD,子文件夹会自动成为选项。几个文件夹以不同内容替换同一批资源时,视为几选一的变体(默认第一个);否则每个文件夹是一个可单独开关的选项,默认全开,部署结果与以前相同。判断依据是文件里的资源,而不是文件夹名称。
  • 插件更新:已添加的官方插件有新版本时,插件卡片上显示新版本和“更新”按钮,插件按钮上出现红点;命令行 hd2qd plugin-update 一次更新全部。
  • 选项提前标出冲突:MOD 的选项卡片上标出选中后会与哪些已启用的 MOD 冲突。
  • Nexus Mods 更新检查无需登录:使用 Nexus Mods 的公开接口,不需要 API 密钥,开发版也可以检查来源为 Nexus Mods 的 MOD 是否有新版本。
  • 撤销未部署的改动:自上次部署以来改过 MOD 的启用状态、顺序或选项时,左侧“恢复原版”下方出现“撤销未部署的改动”,点击后(确认一次)全部恢复到上次部署时的样子;之后新添加的 MOD 会停用,已删除的无法恢复。命令行为 hd2qd undo-changes。从这个版本起记录:用它部署一次,或在没有未部署的改动时打开管理器,之后的改动即可撤销。
  • 列表上方不再重复视图名称:左侧 MOD 库面板已经标出当前视图,“分组 / 顺序”切换移到最左;启用配置文件时仍显示配置文件名称。
  • 左侧去掉“待部署”:尚未部署的变更数仍显示在部署按钮上。
  • 标题栏插件按钮只给官方插件:按钮使用插件自己的图标;只有官方列表中带按钮、且文件与官方发布的版本一致(SHA-256)的插件才会显示。
  • 改动后刷新更快:每次开关或移动 MOD 后重新读取状态,以前同一套 Lua 加载器检查要按每种加载器选择重复计算,现在每次读取只算一遍。在一个 103 个 MOD 的库中,每次读取从约 2.4 秒降到约 0.7 秒,打开窗口时从约 2.8 秒降到约 1.0 秒;结果与之前完全相同。
  • 修复:插件窗口背景全黑:资源检查、模型修复等插件的窗口现在和主窗口一样是半透明背景。
  • 修复:使用 LZMA 压缩的压缩文件无法添加(如 Nexus Mods 上的 HD2 Clear Sight 0.0.5,提示“不支持的压缩方式”)。
  • 修复:分组视图中点击后整列重新绘制:之前每次点击都会重画所有列,列表闪回顶部再滚回原位;现在只更新选中状态,右侧按需打开或关闭列。
  • 底部状态行不再响应点击:管理器日志在设置 › 关于与诊断中查看。

下载

  • HD2.Mod.Quick.Deploy.exe:窗口程序,放在任意文件夹中直接运行。
  • hd2qd.exe:命令行版本,可选。
  • HD2.Mod.Quick.Deploy.0.17.0-dev.zip:以上两个文件及许可证。

无需安装,只需要 Windows 10(1903 或更新)和 Windows 11 自带的 .NET Framework 4.8。

使用前须知

  • 只用一个管理器部署:其他管理器的部署会覆盖本程序的部署。
  • 不要直接修改已部署的 patch 文件:它就是 MOD 库中的原文件。

完整说明:README。

A mod manager for Helldivers 2 that deploys incrementally with hard links: a typical deploy takes 0.13–0.29 s and copies no mod data. It settles conflicts resource by resource and looks after the Lua mod loaders.

This is a developer build: it does not include Nexus Mods downloads. Its own update check also offers later developer builds.

New in 0.17.0

  • Nexus Mods source found from the archive: an archive downloaded by hand, renamed or passed on, with no record of where it came from, can now be checked for updates. Adding it records the archive's MD5; an update check asks Nexus Mods' public interface for it and, when it is found, records the mod and file it is, and with them its version. No sign-in.
    • A mod added earlier gets it at its next update check, as long as its archive is still where it was added from.
    • Contents found in several different mods, or in another game, are not linked.
    • Mods with another source (GitHub or another site) are not looked up.
  • Updates list what each version changed: when a newer version is out, the mod's Updates section lists the changes of each version from the installed one to the newest, as the author wrote them on Nexus Mods, newest first, up to five versions. hd2qd check-updates lists them all. Only the versions of the same file line count, not optional files.
  • Mods checked for updates when the manager opens: at most once a day, in the background, with the window usable throughout; nothing is downloaded or replaced by itself. Updates found are said in the bottom line and marked yellow in the list as usual. The last results are kept, so the marks are there when the window opens again. Turn it off under Settings → Mod updates, or hd2qd check-updates --at-start on|off.
  • Look-up by number and Match the source in the developer build: both use Nexus Mods' public interface with no sign-in, so the developer build has them now. Its Download page becomes a Nexus page: a mod looked up by its number, the way to its page, and the library's mods from Nexus Mods; hd2qd nexus-info on the command line. Match the source needs no sign-in in any build.
  • MDL3 dev.33 and later: when the user folder's path cannot be written in the system code page (a Chinese user name, for one), MDL3's files go under %ProgramData%, as MDL3's own installer puts them; problem reports and the loader logs read them there.
  • Fix: hd2qd update could save the library with that one mod only, when the mod first learnt its source from HD2 Arsenal's records.

0.16.0 was not released on its own; it brought the following.

New in 0.16.0

  • Conflicts view: Conflicts on the left opens a view of its own, one card for each game item (an armor, a helmet), headed by the item, with how many mods change how many of its resources under it.
    • It lists the conflicts from the mods enabled and the options chosen, and those from the mods and options not enabled: every option of every mod counts, so a card stays after an option change, its heading grey with why (the options chosen do not conflict, only one is on, ...). Mods turned off are listed too, each with its switch to turn it on or off there. The other views mark a conflict only while the mods are on.
    • The rest of each mod takes effect; the resources they all change come from one enabled mod only, marked Preferred.
    • When an option brings the conflict, the mod's row says "Option: …"; a click offers its other options, each with how many enabled mods it would conflict with on the same line, or "no conflict"; a long menu scrolls.
    • A set with fewer than two mods on has a grey heading. Untick Show conflicts from mods or options not enabled above the view to see only the conflicts from the mods enabled and the options chosen; a card still lists every mod in it.
    • The mods are listed by name and keep their places after a click; only a card whose content changed is drawn again, so nothing flickers.
    • A click on any mod, those turned off too, shows it in the details; an enabled mod has a Prefer this button (on the line pointed at, or chosen) that uses its version and turns no other mod off, and the marks change at once and stay. Until the deploy, the version the game uses now keeps Preferred, and the one chosen is framed in dashes and marked Preferred after deploy.
  • Resources named by game item: with HD2SDK's archive names (the Resource names plugin 1.1.0 downloads them too), a resource in a conflict says which game item it belongs to, such as "Armor: SR-24 Street Scout"; a resource several items share lists them all. A mod's details have a new Replaces line: the game items it replaces.
  • Upload a problem report: Problem report… under Settings › About and diagnostics opens a window: choose the kind of problem (crash at start, crash in a mission, mod not working, ...), add a few words if you like, and unfold the list to see every file that goes. Upload gives a report number (such as QD-7F3K2M) to send to the mods' author; Save to desktop keeps it for you to send. Reports are kept 30 days; see Privacy in the window.
    • Only the end of each log is taken, and the report has a size budget; a log that has grown past 100 MB is named in the report's summary.
  • Old mods with no manifest get their folders as options: a mod with no manifest.json whose patch files are in several folders gets each folder as an option. Folders that replace the same resources with other contents are variants, one to choose (the first by default); any other folder is an option of its own, on by default, so the deploy is the same as before. This is read from the resources in the files, never from the folders' names.
  • Plugin updates: an added official plugin with a newer release shows its new version and an Update button on its card, and a dot on the plugins button; hd2qd plugin-update updates them all.
  • Options say their conflicts beforehand: a mod's option cards name the enabled mods each would conflict with.
  • Nexus Mods update checks without signing in: they use Nexus Mods' public interface and need no API key, so the developer build also checks mods that came from Nexus Mods for new versions.
  • Undo changes not deployed: after a change to which mods are on, their order or their options since the last deploy, Undo changes not deployed appears under Restore vanilla; one click (and a confirmation) puts everything back as the last deploy left it. A mod added since is turned off; a removed one cannot come back. On the command line: hd2qd undo-changes. It starts from this version: after one deploy with it, or once it has been opened with nothing left to deploy.
  • No repeated view name above the list: the library panel on the left already says which view is shown, so the Groups / Order switch moves to the left edge; with profiles on, the profile's name is still shown.
  • To deploy is gone from the left side: the number of changes not yet deployed is still shown on the Deploy button.
  • Title-bar plugin buttons are for official plugins only: the button draws the plugin's own icon, and appears only for a plugin the official list gives a button whose file matches an official release (SHA-256).
  • Faster after a change: each switch or move reads the state again, and the Lua loader checks were worked out anew for every choice of loader; now once a read. In a library of 103 mods a read went from about 2.4 s to about 0.7 s, and opening the window from about 2.8 s to about 1.0 s, with the same results.
  • Fix: plugin windows were pitch black: the windows of Asset check, Model repair and other plugins have the main window's translucent background.
  • Fix: zips packed with LZMA could not be added (such as HD2 Clear Sight 0.0.5 on Nexus Mods: "unsupported compression method").
  • Fix: a click in the group view drew every column again: each list flashed back to its top and then scrolled back; now only what is chosen changes, and columns open or close on the right as needed.
  • The status line at the bottom no longer reacts to a click: the manager's log is under Settings › About and diagnostics.

Download

  • HD2.Mod.Quick.Deploy.exe: the window. Put it in any folder and run it.
  • hd2qd.exe: the command line, optional.
  • HD2.Mod.Quick.Deploy.0.17.0-dev.zip: both, with the license.

Nothing to install: both need only the .NET Framework 4.8 included with Windows 10 (1903 or later) and 11.

Before you start

  • Use one manager for deploying: another manager's deploy undoes this one's.
  • Do not edit a deployed patch file in place: it is the library's own file.

Full documentation: README.