赛博朋克 2077 专属功能说明


赛博朋克 2077 专属功能说明

适用:模组加加 Pro 客户端 · 当前游戏为《赛博朋克 2077》时
维护:新增 / 修改这些功能时,请同步更新本文档


共同说明

  • 入口:全部在「我的模组」页右上角 更多功能 下拉里,只有当前游戏是赛博朋克 2077(game_id = 53)时才出现这一组菜单项;其他游戏不受影响。
  • 风险分级:标「只读」的绝不改动任何文件;标「写文件」的只写自己那一个/一组文件,且都会在改动前提示。
  • 通用原则:需要读写游戏目录的功能,建议先关闭游戏(文件被占用时改不了、存档可能正被写入)。
功能 一句话 是否改动游戏文件
archive 冲突 找出"两个模组抢同一个资源" 只读
日志诊断 读日志自动标出错误/警告,并归纳已加载模组 只读
CET 快捷键 改 CET 呼出控制台的快捷键 只写 bindings.json
框架检查 查前置框架装没装 + 依赖预警 只读
加载顺序 调 archive 的加载顺序,写 modlist.txt 只写 modlist.txt
兼容检查 游戏/框架版本 vs 各框架的最低要求 只读
存档备份 动手前把存档整个备一份 只读复制存档
REDmod 部署 跑一次 redMod deploy,让 REDmod 模组生效 只写 REDmod 产物

1. archive 冲突

作用:逐个解析模组里的 .archive,把"内部含同一个资源(同一个哈希)"的模组找出来。两个模组各带一个文件名不同的 .archive 时,「冲突扫描」查不到,这里能查到——游戏里它们必然打架。

背景:CP2077 归档的 RDAR 索引里只有 64 位资源哈希、没有路径,所以这里比的是哈希。

两层判定:

  • 层①:同一个资源哈希出现在 ≥2 个模组 → 冲突。按"模组对"聚合(一对模组一行),展开才看具体归档清单与冲突哈希。
  • 层②:这条冲突资源是否也在原版归档里 → 用来区分:
    • 抢游戏自带文件(高危、最常见)——多个模组在覆盖同一个原版资源,最容易崩或失效,界面标红并给顶部汇总提示;
    • 两个模组各自定义了同一条新路径(少见)。

顺序与胜负:列表里靠前的模组胜(≈ 加载顺序:同名资源先加载者生效)。

用法:点「开始扫描」逐个解析当前列表里的模组;「快速模式」下每个模组只要发现一处冲突就不再继续比对(结果更精简,但模组仍会全部扫完)。

相关联动:冲突结果会落库(ArchiveConflict 表);在卡片区勾选「互斥检查」并恰好选中一个模组时,与之冲突的卡片会描紫边(与路径冲突的橙边区分)。

边界:

  • 明细只显示哈希,不显示可读路径(哈希不可逆,且业界没有可离线使用的全量"哈希→路径"字典);
  • 原版归档需至少成功解析一次才能做层②;读不到时会明确提示"无法判定",而不是当成"没有冲突";
  • 只扫当前列表(受分类 / 搜索 / 筛选影响)里的模组。

2. 日志诊断

作用:读游戏日志(redscript / RED4ext / 各插件 / CET),按内置签名库(从 ModWright 的 MIT 签名库一次性导出,52 条)自动标出错误与警告。只读。

两个视图(同一份结果,切换只重画、不重扫):

  1. 诊断结果

    • 分级汇总:错误 / 警告 / 提示 / 正常;
    • 命中明细:严重级别、来源日志、行号、说明、建议、原始行(悬停看全);
    • 归属分析:把日志里"谁改 / 读了哪个对象"聚合成"对象 → 各来源方",被多个来源方争抢的对象排最前面——回答"某功能失效到底是谁干的"。
  2. 已加载模组

    • 归纳日志里确实被加载的东西:RED4ext 插件(含版本与作者,最权威)、ArchiveXL(.xl 清单)、TweakXL(tweak 文件)、redscript、CET Lua 模组、资源缺失涉及的归档;
    • 能对上本管理器里的模组时,可直接定位到卡片。

每条命中可做的动作:

  • 打开日志文件:用系统默认程序打开这条命中所属的日志;
  • 定位模组:从命中里抽出的名称匹配到本管理器的模组时,一键跳到那张卡片。

其他:

  • 显示中文:用中文显示说明;关掉就是英文原文(中英两套随结果一起带回来,切换不用重扫);
  • 复制日志:把诊断结果连同给 AI 的提示词一起复制,方便贴给 AI 分析。

实现:宿主只提供两个通用通道(列某目录下的 .log / 读一个日志文本),扫描与匹配全部在前端本地完成。

边界:只读;"版本 / 已加载"这类信息依赖日志存在(游戏至少跑过一次)。


3. CET 快捷键

作用:修改 Cyber Engine Tweaks 呼出控制台的快捷键。

改的是哪个文件:<游戏>\bin\x64\plugins\cyber_engine_tweaks\bindings.json 里的 cet.overlay_key(注意是 bindings.json,不是 config.json)。

原理与注意:

  • 该值是 Windows 虚拟键码按大端打包(单键 = vk << 48);
  • 写入采用区间替换,只改那一个数字、不整份 JSON 往返——因为别的模组的绑定可能存着超过 2^53 的整数,走 JSON.parse/stringify 会丢精度、把别人的绑定改坏;
  • 必须游戏关闭时改:CET 只在启动时读一次配置;运行中在 CET 里点保存会覆盖这次修改;
  • 界面只显示友好的按键名称,不暴露 VK 十六进制等技术细节。

4. 框架检查

作用:逐个查关键框架的标志文件是否存在,并按依赖关系给预警。只读(纯前端 window.ppFs.exists)。

检查项(路径依据 ModWright 的 compat.js detectComponents):

框架 标志路径
RED4ext red4ext\RED4ext.dll
redscript engine\tools\scc.exe
ArchiveXL red4ext\plugins\ArchiveXL\ArchiveXL.dll
TweakXL red4ext\plugins\TweakXL\TweakXL.dll
Codeware red4ext\plugins\Codeware\Codeware.dll
RedHotTools red4ext\plugins\RedHotTools\RedHotTools.dll(可选)
CET bin\x64\plugins\cyber_engine_tweaks.asi
Input Loader r6\input
REDmod tools\redmod\bin\redMod.exe

依赖预警:

  • RED4ext 是 ArchiveXL / TweakXL / Codeware 的原生插件前置——缺它这几个全都不会加载,依赖它们的模组会静默失效;
  • Codeware 额外要求 CET ≥ 1.37。

RedHotTools 是可选:未安装时显示中性灰「可选」,不报红,也不计入"必需前置"的计数。

边界:这里不显示版本(读 DLL 的 PE 文件版本需要额外的宿主能力)——要看版本请到「日志诊断」的启动打印行,或用「兼容检查」。


5. 加载顺序

作用:管理 <游戏>\archive\pc\mod\*.archive 的加载顺序。

规则(移植 ModWright readCyberpunkLoadOrder):

  1. 归档默认按文件名 ASCII 排序;
  2. 若存在 archive\pc\mod\modlist.txt:列在里面的按列出顺序排在前,未列的按文件名排在后;
  3. REDmod 的 mods\* 固定排在所有归档之后(此处只读展示,部署见「REDmod 部署」)。

胜负:同名资源先加载者生效——列表第一位就是胜者(行上标「首位」)。

操作:

  • 拖动任意一行调整顺序(行上半=插到它前面,下半=插到它后面;拖到空白处=移到末尾),也可用行右侧 ↑ / ↓ 微调;
  • 按文件名排序:把界面顺序重置为 ASCII(仅改界面,标记"未保存");
  • 保存顺序:把当前顺序整个写入 modlist.txt;
  • 删除覆盖:删掉 modlist.txt,恢复"按文件名排序"的默认行为。

归属模组:每个归档名后面会显示「归属模组:X」(先按"存储目录里实际存在的归档名"精确匹配,匹配不到再按名字猜),点一下跳到「我的模组」里那张卡片——免得用户只看到一个 .archive 文件名、不知道是哪个模组。

实现与边界:纯前端,只写 modlist.txt 这一个文本文件,不改动任何 .archive;重启游戏后生效。


6. 兼容检查

作用:检查各框架要求的最低版本有没有被"实际装着的版本"满足(即游戏版本 vs 模组 / 框架要求)。只读。

门槛规则(照抄 ModWright compat.js 的 RULES):

组件 要求
ArchiveXL 游戏 ≥ 2.31、redscript ≥ 0.5.31、RED4ext ≥ 1.29
TweakXL 游戏 ≥ 2.3、redscript ≥ 0.5.27、RED4ext ≥ 1.28
Codeware 游戏 ≥ 2.31、redscript ≥ 0.5.31、CET ≥ 1.37、RED4ext ≥ 1.29
RedHotTools 游戏 ≥ 2.21、ArchiveXL ≥ 1.21、CET ≥ 1.35、redscript ≥ 0.5.25、RED4ext ≥ 1.27
RED4ext (咨询性提示)插件与游戏构建绑定,更新游戏后需等插件跟进

版本从哪来:只从日志取(前端没有读 DLL 的 PE 版本的能力):

  • 游戏版本 ← RED4ext 日志的 Product version:;
  • RED4ext ← RED4ext (v…) is initializing;
  • ArchiveXL / TweakXL / Codeware ← … has been loaded;
  • redscript ← 日志横幅 Running REDscript …;CET ← 日志首行版本号。

装没装仍用文件是否存在判断(与「框架检查」同口径)。

结论三态:兼容 / 有警告 / 不兼容。列表分两部分:组件版本表 + 兼容问题列表(阻塞 / 警告 / 提示)。

边界:游戏没跑过、日志不存在时读不到版本 → 全按「未确定」给温和警告,绝不会误判成"不兼容"。


7. 存档备份

作用:删模组前把《赛博朋克 2077》的存档整个复制一份。
为什么需要:删掉"添加了物品 / 装备"的模组,会让存档里对它们的引用失效——经典的坏档坑。动手前先留一份最省心。

存档目录:%USERPROFILE%\Saved Games\CD Projekt Red\Cyberpunk 2077(取自宿主 sysInfo 的 savedGames)。

备份位置:<运行目录>\data\Cache\SaveBackup\<gameid>\<yyyyMMdd-HHmmss>\。

操作:

  • 立即备份:整棵存档目录递归复制一份;
  • 打开备份目录:在资源管理器里打开备份根目录;
  • 每份备份可 打开(定位到该份)/ 删除。

保留策略:只保留最近 5 份,自动删最旧的。

安全守卫:备份前先检查游戏是否在运行——游戏运行中会直接拦下(存档可能正被写入)。

还原:手动——打开某份备份,把它里面的内容复制回存档目录即可(本版不做自动还原)。

实现与边界:只读复制,绝不改动原存档;纯前端(ppFs 的目录递归复制)。


8. REDmod 部署

作用:让 REDmod 模组真正生效。

为什么需要:REDmod 模组放在 <游戏>\mods\<名>\(每个目录都必须有 info.json),但游戏不会自动认——必须跑一次 tools\redmod\bin\redMod.exe deploy,它会生成 mods\mods.json(游戏启动时读这个清单)。不 deploy = REDmod 模组白装。

界面:

  • 工具检测:tools\redmod\bin\redMod.exe 在不在(不在=这台机没带 REDmod 工具,无法部署);
  • 模组列表:mods\* 里带 info.json 的目录;缺 info.json 的标橙(deploy 会跳过或报错);
  • 部署状态:mods\mods.json 在不在 →「已部署 / 尚未部署(橙)」;
  • 输出回显:上次部署的原始输出(可滚动查看)。

操作:部署 REDmod / 重新读取 / 打开 mods 目录。

原理:调用宿主通道 cp2077RedmodDeploy,跑 redMod.exe deploy,工作目录=游戏根,并显式带 -root="<游戏根>"(实测:不传 -root 时 redMod 会用错的默认值并打印 Invalid root path found),同步等结束、回传输出与退出码。

边界:

  • 只写 REDmod 自己的产物(mods\mods.json 等),不动别的东西;
  • 重启游戏后生效;
  • 若显示"没有 REDmod 模组",说明 mods\ 下确实没有带 info.json 的目录,不是 bug。


更新日志 2026年10月11日

模组加加(ModPlus)汉化版 N 网 —— 中文玩家的模组新大陆

评 论
请登录后再评论