Vortex 是 Nexus Mods 的现任模组管理员。它旨在让新用户尽可能简单地修改游戏,同时仍然为更有经验的修改场景老手提供足够的控制权。
我们使用 Vortex 的方法旨在执行复杂的任务,例如排序加载顺序或管理 mod 文件,并尽可能自动化该过程,目标是让您以最小的努力实现稳定的 mod 游戏。我们希望帮助您花更少的时间进行改装,花更多的时间玩游戏。
多游戏支持- Vortex 拥有对 250 多种不同游戏的模组支持,并且数量还在不断增加,是目前功能最丰富的模组管理器。其中包括《天际》、《辐射 3》、《辐射 4》、《辐射:新维加斯》、《赛博朋克 2077》、《博德之门 3》、《Starfield》、《星露谷物语》、《领主》、《巫师 3》、《埃尔登指环》、《模拟人生 4》、《怪物猎人:世界》、《湮没》、《Palworld》等游戏、《剑与魔法》、《英灵神殿》、《霍格沃茨遗产》、《七日杀戮》。
与 Nexus Mods 紧密集成- Vortex 旨在与 Nexus Mods 无缝交互,让您可以轻松地从我们的网站查找、安装和播放 Mod,了解新文件并获取最新新闻。
模组制作变得简单- 内置的自动排序系统可管理您的加载顺序,并通过强大且易于使用的插件管理功能帮助您解决模组冲突。
Mod 配置文件- 轻松设置、切换和管理独立的 Mod 配置文件,使您能够准确地使用特定游戏所需的 Mod 组合。
现代、易于使用的用户界面- Vortex 具有完全可定制的界面,可让您快速轻松地访问工具并管理您的游戏、插件、下载和保存游戏。
扩展和插件- Vortex 根据 GPL-3 许可证发布,使我们的社区能够编写扩展和框架,然后可以与 Vortex 交互,不断添加其功能。
首先,可以从 Nexus Mods 或 GitHub 下载 Vortex。下载安装程序后,只需运行它并按照说明进行操作即可。
有关 Vortex 和指南的更多信息可以在 Vortex Wiki 中找到。
要开始在 Vortex 上进行开发,请使用这种基本自动化的方法下载并安装所有依赖项,从 GitHub 克隆 Vortex 存储库,然后构建它,以便可以从源代码运行。大多数依赖项都是使用 Scoop 安装的。
单击“开始”按钮并输入powershell
启动 powershell。
运行Invoke-WebRequest "https://raw.githubusercontent.com/Nexus-Mods/Vortex/master/bootstrap.ps1" -OutFile bootstrap.ps1
以获取引导脚本
默认情况下,此脚本将在C:buildvortex
中构建 Vortex 。如果您希望它位于其他位置,请在运行之前编辑脚本以更改构建目录。
您很可能需要允许运行脚本。可以使用Set-ExecutionPolicy Unrestricted
进行设置,但需要具有管理员访问权限的 powershell。
运行脚本( .bootstrap.ps1
)
以下部分旨在澄清和解释一些开发决策。
用于开发构建和发布构建的工具链有很大不同。
在开发版本中,直接使用打字稿编译器(tsc)将每个.ts
文件单独音译为.js
,电子直接运行这些文件,依赖项从node_modules
加载。
在发布版本中,我们使用 webpack 和 ts-loader 将所有.ts
文件和依赖项烘焙到两个 javascript 文件中(一个用于主/浏览器进程,一个用于渲染器)。 electron-builder
用于捆绑代码和资产、生成 nsis 安装程序、将其构建为 exe 安装程序并对其进行签名(以及我们提供的所有可执行文件和 dll)。有多个电子构建器配置文件用于多个变体,只有“oneclick”和“advanced”用于发布构建,其他可能处于不同的年久失修状态(尽管 ci 也应该工作)
因此,开发构建更容易使用,构建速度更快,但运行时间更慢。
此外,我们使用双包结构,这意味着/package.json
文件用于所有开发和发布的构建环境(例如,该文件始终控制正在使用/捆绑的电子版本),而/app/package.json
决定仅适用于发布版本的设置(名称、版本、依赖项)。我们使用自定义脚本( checkPackages.js
)来确保发布的依赖项是构建env
依赖项的子集,并且它们使用相同的版本,以避免由于依赖项不同而在测试期间未发生的问题。
另一方面,捆绑扩展在开发和发布之间的构建方式相同:它们始终使用 webpack 构建,并且每个扩展都有自己的构建设置 - 除了已经是单个 js 文件的简单游戏扩展之外,它们只是被复制。
该代码库仍然使用yarn 1(经典)。任何使用yarn 2或3的尝试都会以无意义的错误结束(缺少明确列出的依赖项,连续安装导致缺少包),并且没有合理的方法来调查原因。相比之下,npm 和 pnpm 相当慢。我们并没有真正使用任何特定于纱线的功能(工作空间?),因此切换应该不会太困难,但目前纱线“经典”有效。
在撰写本文时,Electron 不支持 ES 模块,因此所有内容都被转换为 commonjs。这导致一些仅支持 esm 的更新库无法使用(例如新版本的 d3)。这也意味着异步导入( const foo = await import('bar')
)实际上在运行时是同步的。但这并不重要,因为无论如何,所有内容都被烘焙到发布版本的单个文件中,并且实际上不需要代码分割。
请在 GitHub 上报告问题并至少包含以下信息:
您正在使用的 Vortex 的确切版本
你的操作系统
Bug 发生时您正在做什么
bug 到底是什么(崩溃?错误消息?意外行为?)
如果您收到任何错误消息,请提供完整且准确的错误消息。不要转述,不要遗漏对您来说看起来神秘或不重要的信息
日志文件(见下文)
理想情况下还有应用程序状态(见下文)
客户端生成的所有数据(包括设置和日志)都存储在:
构建类型 | 地点 | 共同路径 |
---|---|---|
发布 | %AppData%Vortex | C:Users |
开发者 | %AppData%vortex_devel | C:Users |
如果您需要报告错误,除了屏幕上显示的错误消息之外,该目录中的以下路径可能有用:
vortex.log
(日志以一定大小旋转,这是最新的)
除 global_account 之外的state
(包含密钥和密码等敏感信息)
(如果错误与特定游戏有关)
TODO:具有依赖项和版本的手动步骤
从 Nexus Mods 下载 Vortex
GitHub 用于源代码、问题和拉取请求。
Vortex Forum 或 Discord 用于与社区和团队进行支持和讨论。
Vortex Wiki 提供知识库、文章和故障排除
项目结构,概述代码库的组织方式。
Vortex 的大部分代码都是开源的。我们致力于透明的开发流程,并高度赞赏任何贡献。无论您是帮助我们修复错误、提出新功能、改进我们的文档还是传播信息 - 我们都希望您成为 Vortex 社区的一员。
错误报告:如果您在使用放大时看到错误消息或遇到问题,请创建错误报告。
功能请求:如果您有一个想法或缺少一项功能,但可以使开发更容易、更强大,请提交功能请求。
审核延期:如果您正在创建游戏延期并需要我们审核,请提交延期审核请求。
该项目根据 GPL-3.0 许可证获得许可。