所有发布的项目,包括但不限于:二进制文件、源文件、文档,均在 AGPL 许可证下提供,附加条款是发布的项目不得用于创建分叉或其他竞争产品。竞争产品可以在运行时编译和执行.NET(例如C#)代码以创建修改后的游戏资产。
一旦存储库被存档(即开发|维护停止),附加条款可能会被删除。
对于 5.00.1.0 以上的版本,需要安装 .NET 桌面运行时 8.x x64。
对于 3.82.1 以上的版本,需要安装 .NET Desktop Runtime 6.x x64。
对于 3.82.1 及以下版本,需要安装 .NET Desktop Runtime 5.x x64。
下载最新版本,或选择一个版本并下载相应的 NMSModBuilder.7z 资源。
没有安装程序,只需将 NMSModBuilder.7z 的内容解压缩到(新)文件夹中即可。
GitHub 可能有未上传到 Nexus 的预发布版本。当添加或更改大量代码时,版本通常会被标记为预发布。一旦预发布标签使用一段时间且未检测到任何问题,则可以将其删除。
更新时,请记住备份您可能已修改的任何捆绑的 Util、Query 或 Mod 脚本,然后再用较新版本中的脚本覆盖它们。
NMSMB 应该能够运行,而无需用户进行任何配置更改。
您可能需要将包含的 libmbin.dll 替换为您要加载的游戏版本所需的 libmbin.dll。
当 NMSMB 启动时,它会加载 NMSMB 文件夹中的 libMBIN.dll。它在大多数研究选项卡中使用它,以显示各种 mbin 的例如语言的内容。脚本在提取或创建 mbin 时也会使用它。因此,NMSMB 文件夹中的 libMBIN.dll 版本必须与您要修改的游戏版本所需的版本相匹配。 cmkNMSReleases.txt 文件列出了每个游戏版本所需的 libMBIN.dll 版本。
如果您想要修改多个游戏实例,每个实例都需要不同的 libMBIN.dll 版本,最简单的选择是为每个游戏实例创建一个 NMSMB 安装文件夹,每个实例都有适当的 libMBIN.dll 版本;否则,在修改给定的游戏实例之前,您必须手动确保 NMSMB 文件夹中存在正确的 libMBIN.dll 版本。
该应用程序可能会下载其他版本的 libmbin,例如 libmbin_3.9.0.1.dll。它们仅在反编译 mbin 时使用。启动应用程序、加载研究选项卡或编译|运行脚本时不使用它们。
给定的 NMSMB 版本只能向前滚动 libmbin.dll 版本。例如,NMSMB 版本 4.0.0.0 附带 libmbin 4.0.0.2,您只能尝试将附带的 libmbin 替换为较新版本(如 4.0.0.3),不能使用旧版本(如 4.0.0.1)。如果您的游戏版本需要较旧的 libmin,那么您需要使用支持它的较旧的 NMSMB 版本。查看 NMSMB change.log 以查看每个 NMSMB 版本中包含的 libmbin 版本,或者仅检查下载文件中的 libmbin。
no_github
阻止 NMSMB 连接到 GitHub。
默认情况下,NMSMB 将连接到 GitHub 以获取:
no_registry
防止 NMSMB 在关闭时将窗口状态存储在注册表中并在启动时从注册表中恢复它。
NMSMB 将窗口状态存储在HKCUSOFTWAREcmkushnirNMSMBWindows中。
如果删除NMSMB,则用户负责删除注册表信息,没有卸载程序。请注意,如果您使用多个 NMSMB 副本,它们都共享相同的注册表项。
p"path"
将单个游戏位置添加到工具栏。 GoG、Steam、选择按钮的左侧将添加一个按钮。
r#.#.#
强制发布p
游戏实例的游戏。仅当p
也指定时才使用。如果指定了v
则被忽略。
v#.#.#.#
强制p
游戏实例使用 MBINC 版本。仅当p
也指定时才使用。覆盖r
。
lg
、 ls
、 lx
或lp
尝试在启动时自动加载游戏实例(GoG、Steam、Xbox Game Pass 或p
位置)。
如果指定了
p
但未指定r
或v
,则将在 cmkNMSReleases.txt 中查找 NMS.exe 的构建日期以确定版本。
NMSMB 文件夹中的 .editorconfig 文件由脚本“格式”工具栏按钮使用来控制缩进和间距等内容。
NMSMB 文件夹中的 cmkNMSReleases.txt 文件将游戏版本绑定到 MBINCompiler | libMBIN 版本。它通常会在新游戏发布或 MBINCompiler 时更新。 libMBIN 版本发布 |安装。
启动时,NMSMB 会自动将本地文件中的条目与 GitHub 文件中的最新条目合并,除非指定了no_github命令行选项。这意味着只要 GitHub 文件保持最新,用户通常不需要编辑此文件。
对于每个平台(包括 GoG 与 Steam),给定游戏版本的 NMS.exe 构建日期可能有所不同。 NMS.exe 的构建日期可能比正式发布日期早几天。 cmkNMSReleases.txt 构建日期应与 Steam NMS.exe 构建日期相对应。
您只能为 NMSMB 文件夹中的 libMBIN.dll 版本支持的游戏版本创建模组(如 cmkNMSReleases.txt 中指定)。
插件 dll 是一个 .NET core dll,它仅引用 cmkNMSCommon.dll 和 cmkNMSModBuilder.exe,并且具有派生自 cmk.NMS.ModBuilder.Plugin 的类。当 NMSMB 启动时,它将加载所有 ./Plugins/*.dll 文件。对于每个 dll,它将创建它找到的第一个 cmk.NMS.ModBuilder.Plugin 派生类的实例,并调用其 Load() 方法。当 NMSMB 关闭时,它将调用所有插件实例的 Unload() 方法。
插件可用于以下用途:
请参阅:存储库中的插件/示例/。
使用任何所需的命令行选项运行 cmkNMSModBuilder.exe,例如:
X:GamesNMSToolsNMSModBuilder>cmkNMSModBuilder.exe p"G:GamesNo Man's Sky" lp
当 NMSMB 启动时,可能需要 1-3 秒才能显示该窗口。在此期间,NMSMB 正在加载和链接 NMSMB 文件夹中 libMBIN.dll 中的所有枚举、类和字段,搜索已安装的 GoG、Steam 和 Xbox Game Pass 游戏实例,加载任何 ./Plugins/*.dll 文件, ....
默认日志窗口和 NMSMB 状态切换按钮。
来自链接的 libMBIN.dll 的所有枚举、结构、字段。
顶级结构具有指向使用它们的 mbin 的链接。
可以使用通配符或正则表达式模式过滤显示的项目。
所选语言的所有 ID - 文本对的合并和排序列表。
所选语言用于在使用语言 ID 的所有选项卡中显示文本。
可以使用通配符或正则表达式模式过滤显示的项目。
列出相应METADATA/REALITY/TABLES/*.MBIN
中的项目。
对于每个项目显示图标、ID、文本、说明、要求。
可以使用通配符或正则表达式模式过滤显示的项目。
列出METADATA/REALITY/TABLES/NMS_REALITY_GCRECIPETABLE.MBIN
中的项目。
对于每个项目,显示图标、ID、文本、说明、要求。
可以使用通配符或正则表达式模式过滤显示的项目。
使用通配符或正则表达式模式搜索游戏或 mod pak 文件中的所有项目路径。
使用通配符或正则表达式模式搜索游戏或 mod pak 文件中的所有 *.dds 路径。
每个结果都会显示一个缩略图。
使用通配符或正则表达式模式搜索游戏或 mod pak 文件中可以表示为文本的项目。
可以选择缓存 mbin 文本以显着加快后续搜索速度。
仅在检测到冲突时显示。
NMSMB 观看所选游戏GAMEDATA/PCBANKS/MODS/
文件夹中的 *.pak 添加 |删除|变化。每当检测到更改时,它都会重新检查是否存在冲突,如果发现任何冲突,则显示该选项卡,否则隐藏该选项卡。
查看游戏或 mod pak 文件中的项目。可以将项目保存到磁盘。
适用于常见项目类型的专用查看器和 diff 查看器,例如 mbin、dds、spv、txt...。
创建、编辑、编译可由 Query 和 Mod 脚本使用的 C# 脚本。
创建、编辑、编译、执行可以从游戏和 mod pak 文件中查询数据的 C# 脚本。
创建、编辑、编译 C# 脚本,用于创建游戏的修改副本和已安装的 mod pak 文件。
执行 Mod 脚本对象,使用生成的修改项来构建新的 mod pak 文件。
仅当指定了有效的p
命令行路径时才显示。
检查注册表中的HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeGOG.comGames1446213994
。
注册表项包含安装路径和游戏版本。
搜索所有 Steam 游戏安装位置appmanifest_275850.acf
。
清单包含安装路径、基于 NMS.exe 构建日期的 cmkNMSReleases.txt 的游戏版本。
使用 Windows 包管理器查找包 ID HelloGames.NoMansSky
。
软件包包含安装路径和游戏版本。
选择有效的游戏路径将显示 NMS.exe 构建日期以及 cmkNMSReleases.txt 中的匹配游戏版本。用户可以覆盖游戏发布。
https://github.com/cmkushnir/NMSModBuilder
注意:用户贡献的脚本和文档可以在以下位置找到:
https://github.com/cmkushnir/NMSModBuilderContrib
显示初始屏幕和依赖项的链接。
NMSMB 文件夹中加载的 libMBIN.dll 链接的版本决定了可以修改哪些游戏版本。它不控制可以查看哪些 mbin 版本,NMSMB 将提示下载所需的相应 libMBIN.dll 以根据需要查看给定的 mbin。
构建日期存储在 NMS.exe 中,因此该文件需要可读。
默认情况下无法读取 Xbox Game Pass NMS.exe,日期来自基于游戏版本的 cmkNMSReleases.txt。
最小化 NMSMB 窗口并在新进程中启动选定的 NMS.exe。
单击此按钮将查询 GitHub 以获得最新版本。如果有新版本可用,系统将提示用户下载 NMSModBuilder.7z。
与 libMBIN.dll 一样,NMSMB 不会尝试向后兼容,因此只有与给定 NMSMB 版本大约同时发布的 libMBIN.dll 版本才可能支持修改,即早期和更高的 libMBIN.dll 版本可能会更改直接由 NMSMB 使用(NMSString*、序列化方法名称空间和签名、语言、物质、产品、技术、配方 mbin)。
NMSMB 可能会两次提示您下载文件:
https://github.com/cmkushnir/NMSModBuilderContrib
用户贡献,例如脚本、插件、文档……
https://github.com/monkeyman192/MBINCompiler
反编译并重新编译 *.mbin 项至 |来自内存中的 dom 和文本。
https://github.com/dotnet/roslyn
Microsoft .NET编译器,用于编译C#脚本。
https://github.com/icsharpcode/AvalonEdit
查看和编辑可转换为文本的项目。
https://github.com/nickbabcock/Pfim
将 *.dds 转换为位图以供查看。
https://github.com/KhronosGroup/SPIRV-Cross
将 *.spv 转换为 |来自 glsl 文本。
https://github.com/mellinoe/veldrid-spirv
将 *.spv 转换为 |来自 glsl 文本。
https://github.com/mmanela/diffplex
确定文本项之间的差异。
https://github.com/octokit/octokit.net
查询GitHub获取发布信息。
https://github.com/MiloszKrajewski/K4os.Compression.LZ4
解压缩|压缩 HGPAK pak 文件 (MacOS)。
https://github.com/ClosedXML/ClosedXML
导出到 Excel .xlsx 文件。