You are viewing a potentially older version of this package. View all versions.
from_dsp_bwiki-IcarusII-0.3.1 icon

IcarusII

游戏内 AI 助手:按 R 打开终端,可问机制、产线、存档状态,并在你确认后执行游戏内操作。需自备 DeepSeek 或任意 OpenAI 兼容 API Key。

Date uploaded 2 days ago
Version 0.3.1
Download link from_dsp_bwiki-IcarusII-0.3.1.zip
Downloads 23
Dependency string from_dsp_bwiki-IcarusII-0.3.1

This mod requires the following mods to function

xiaoye97-BepInEx-5.4.17 icon
xiaoye97-BepInEx

BepInEx5.4.17 mod plugin framework, Mod框架

Preferred version: 5.4.17

README

伊卡洛斯·贰 / Icarus II

游戏内 AI 助手。按 R 打开终端,问机制、产线排布、存档状态; AI 能读取你当前的存档给建议,并在你确认之后执行游戏内操作。


你需要三样东西

项 说明
游戏 Dyson Sphere Program —— 0.10.30.3100 已验证,其它版本未测
框架 BepInEx 5.4.17+(社区包自带;5.4.23.5 也验证通过)
API Key 你自己的 DeepSeek Key;或任意 OpenAI 兼容端点(Ollama / LM Studio / vLLM…)

BepInEx 版本

5.4.17 就行——就是 Thunderstore 社区包 xiaoye97-BepInEx 的版本,本 mod 已把它写成 依赖,mod 管理器会自动装。5.4.23.5 也实测通过,用哪个都可以。

网上流传"Unity 2022.3.62f3 必须用 5.4.23.5"——那是 BepInEx 5.4.23.5 changelog 里的一条 修复,但它只影响"连 Application.isBatchMode 都取不到"的构建;本游戏的 UnityEngine 里该 API 存在,所以 5.4.17 能正常加载(0.10.30.3100 已实测)。

手动装 BepInEx 的话:BepInEx 5.4.17 → BepInEx_x64_5.4.17.0.zip,解压到游戏根目录(和 DSPGAME.exe 同级)。


安装

推荐(mod 管理器)

  1. BepInEx 5.4.17 会作为依赖自动装好(手动安装的话,先解压一份 5.4.17 到游戏根目录);
  2. 在 Thunderstore / r2modman 里安装本 mod(会自动落到 BepInEx/plugins/IcarusII/);
  3. 启动游戏,按 R。

手动安装

把压缩包里的 plugins/IcarusII/ 整个文件夹复制到 <游戏目录>/BepInEx/plugins/,最终结构应为:

BepInEx/plugins/IcarusII/
├── IcarusII.dll
├── sidecar/icarus-ii-sidecar.exe
└── ui/icarusii-ui

首次使用

  1. 进游戏后按 R;
  2. 终端会提示"尚未配置 API Key",把 Key 粘贴进去并回车(输入不会回显,也不会写进聊天记录);
  3. 状态变成「就绪」后就能提问了。

Key 只保存在本机 sidecar 的数据目录里,不会上传到任何第三方服务。


能做什么

  • 问游戏机制、配方、产线排布、卡关了该先修什么;
  • 让 AI 读取你当前存档的状态(背包、电力、物流、研究…)再给建议;
  • 在你确认之后执行游戏内操作(例如批量摆放/拆除);
  • 生成 / 下载 / 复制蓝图后,对话末尾会出现蓝图卡片:显示产量、建筑数、占地与作者, 点「查看详情」打开蓝图浏览器,点「粘贴铺设」直接进入粘贴预览;重进存档也会随历史回放;
  • 右上角 ⚙ → 模型 页签:改提供商 / 模型名 / API Key / API 地址 (把地址指向本地 Ollama 就能完全离线跑);
  • 输入框工具条:插入游戏图标、复选框、文字颜色——和游戏原生输入框同一套弹窗。

隐私与安全

  • API Key 只存在本机,聊天内容只发送到你自己配置的那个端点;
  • sidecar 是本地子进程,只监听 127.0.0.1;
  • AI 执行任何游戏操作前都会先征求你的确认;
  • 卸载:删除 BepInEx/plugins/IcarusII/ 即可(数据目录 %APPDATA%/icarus-ii 可另行删除)。

常见问题

按 R 没反应 先看 BepInEx/LogOutput.log 里有没有 Icarus II 0.3.1 已加载。 没有 → BepInEx 没生效(版本不对 / 没装好);有 → 建造模式下 R 会主动让位给游戏(旋转建筑),退出建造模式再按。

杀毒软件报毒 / 提示"未知发布者" sidecar 是用 Node.js 打包的自包含 exe,且会拉起本地进程,容易被启发式引擎误报。 可用下面的 SHA256 校验文件,或把样本提交给微软误报申诉。介意的话可以先只装 .dll, 不复制 sidecar/(此时聊天不可用,但界面能看)。

Linux / Steam Deck / Proton Wine 默认优先加载内置 winhttp.dll,会盖掉 BepInEx 的代理 DLL。二选一:

# Steam 启动选项
WINEDLLOVERRIDES="winhttp=n,b" %command%

或向前缀注册表写入(与安装脚本做的事相同):

[Software\\Wine\\AppDefaults\\DSPGAME.exe\\DllOverrides]
"winhttp"="native,builtin"

设置窗口里没有「模型」页 说明 mod 没加载成功(页签是运行期注入的),先按第一条查日志。

接口报错 / 401 / 404 进 ⚙ → 模型,确认 provider、模型名、API 地址是否与你的 Key 匹配; 用本地模型时地址要带 /v1(例如 http://127.0.0.1:11434/v1)。

游戏更新后不能用了 DSP 每次大版本更新都可能改动内部类型。看日志里的报错,或等本 mod 适配新版本。


文件校验(0.3.1)

icarus-ii-sidecar.exe   SHA256 89cc514373c8d7fe61c32d036948f936819ffeded4fa7b23d74b47f5a71e8a49
IcarusII.dll            SHA256 009e1d63f8802dea0ee920d9a973fd1712a6e2494f5f5565034289d3d5611356

English (short)

In-game AI assistant for Dyson Sphere Program. Press R, ask about mechanics, factory layouts or your save; the AI can read your save and, only after your confirmation, perform in-game actions.

Requires BepInEx 5.4.17+ (5.4.23.5 also tested) and your own DeepSeek (or any OpenAI-compatible) API key. The key is stored locally only; all traffic goes to the endpoint you configure.


MIT licensed. Bundles Node.js (MIT) and pi (MIT). BepInEx is not redistributed — install it yourself.

CHANGELOG

更新日志

0.3.2

上下文压缩可见、可撤销;sidecar 升级到 pi 1.4。

新功能

  • 压缩记录:模型自动整理上下文时,聊天窗会出现一条 “[时间] 自动压缩上下文”记录,下面是压缩摘要;之前的对话在索引里变灰, 鼠标移上去不再显示删除按钮。
  • 撤销压缩:删除这条压缩记录会真正撤销压缩,展开旧对话并恢复删除按钮。 只允许撤销最近一次;如果上下文仍然超限,下一次提问可能再次压缩。
  • 上下文压缩完成后,状态栏会显示“整理上下文中…”,不再像卡死。

修复

  • 压缩后重进存档,聊天记录不再凭空消失(改为回放完整会话分支)。
  • sidecar 升级到 pi 1.4.0:改进会话恢复、工具调用、压缩摘要与错误重试; 运行 sidecar 的 Node 门槛提高到 22.19。

0.3.1

思考/工具过程收进一个可折叠的「终端」分组,并补上玩家消息脚注与重新推理。

新功能

  • loading 分组头:思考/调用工具时显示「终端运行中…」+ 游戏自带加载图(旋转); 这一轮结束后变成「已完成」并收起整组,点标题行随时展开/收起(运行中也可以点)
  • 每段思考独立成块,按「思考 → 工具 → 再思考」的顺序排列;正文开始时这一轮所有 思考块/工具块自动收起,只留摘要
  • 思考与工具记录随会话保存:重进存档按原顺序还原(收起态),能展开看当时的推理原文、 工具参数与结果,不再只剩正文
  • 玩家消息也有脚注:游戏时间 + 复制
  • 回答脚注新增刷新:对最后一轮重新推理(先删掉旧回合再重新提问,旧回答不会留在上下文里)
  • 窗口标题使用 prefab 的「工业机甲终端」样式(字体、颜色、字号、材质完全按设计稿)

修复

  • 模型思考时,推理内容不再全部挤进第一个思考块
  • 蓝图卡片渲染的瞬间,滚动条会及时贴到底部

0.3.0

从「能查、能看」到「能出蓝图」,并修好第三方供应商的接入。

新功能

  • 蓝图生成:blueprint_generate 用知识库里的真实配方 + dsp-calc 布局,直接生成完整产线蓝图 (多阶段、多行、超高产量自动拆多张、按当前已解锁档位默认、蓝图尺寸校验)
  • 蓝图卡片:生成 / 下载 / 复制后在聊天窗显示卡片,点卡片可直接粘贴预览;重进存档可回放
  • 截图:默认给可见建筑编号框 + 图例,view=topdown 可临时切俯视机位
  • 助手回复显示游戏内时间,点击可复制

修复

  • 多供应商接入:模型目录与 Key 检测现在共用同一套地址清洗与鉴权 (Anthropic x-api-key、Gemini x-goog-api-key、Azure api-key), 支持 .../v1/chat/completions 这类完整端点、缺 /v1 自动补全、超时回退, 不再出现「检测通过但取不到模型」
  • 模型页:错误提示可换行;检测成功后自动补全聊天实际可用的 API 地址
  • 模型页:移除容易误删其它供应商的「恢复本页设置」按钮
  • 蓝图:首尾误连、坐标轴与元数据、尺寸超限、档位默认值等一批修复

0.2.0

从「能聊」到「能查、能看、能算、能规划」。

新工具

  • 视觉:game_capture_view 截图进模型上下文,聊天窗显示缩略图
  • 建筑:game_get_entity / game_get_entities(配方、输入输出槽、供电、物流塔槽位、 传送带线路与货物、分拣器手上物品;其余建筑走通用组件快照)
  • 进度:game_get_progress
  • 量化:kb_plan 按目标产量算机器数 / 电力 / 传送带
  • 产线:game_analyze_area(装机产能、耗电、物流设施、电网)、game_render_layout 字符布局图
  • 跨行星:game_get_planets(按宇宙探索等级披露矿脉)、game_get_logistics(全银河物流塔供需)
  • 蓝图:blueprint_search / blueprint_info / blueprint_save(在线检索、格式体检、直接存到游戏蓝图目录)、 game_copy_blueprint(把现有建筑存成蓝图)
  • 知识:kb_search / kb_get / kb_recipe_tree、中英 wiki_search / wiki_page
  • 脚本:run_script(QuickJS-WASM 只读沙箱,dsp.call 复用同一工具注册表)

界面

  • 工具卡支持图片缩略图;kb_* / run_script 也会显示工具卡(tool_activity)
  • 聊天索引的删除按钮现在会同步改写会话文件,重进存档不再出现

修复

  • 产线统计为空时回退装机产能,不再误报“没有产线”
  • run_script 中 dsp.call 被 try/catch 吞掉时明确报错,而不是返回假数据

0.1.0

首个公开版本。

功能

  • 游戏内聊天终端:R 开关,流式回复,可回车发送 / Ctrl+Enter 换行
  • 读取当前存档状态作为上下文,按存档绑定对话历史
  • 在玩家确认之后执行游戏内操作
  • 设置窗口注入「模型」页签:提供商 / 模型 / API Key / API 地址
  • 输入工具条:游戏图标、复选框、文字颜色(复用游戏原生弹窗)
  • 界面走游戏原生 prefab(AssetBundle),可回退到代码构建

构建

  • 编译目标锁定 BepInEx 5.4.17(Thunderstore 社区包同款),避免 5.4.17 环境下 BepInEx 打印 "plugin targets a wrong version";5.4.23.5 运行时同样验证通过

修复

  • 右上角 ⚙ 按钮点击无效:它其实是原生窗口的「功能菜单」按钮, 真正收点击的是子节点 menubtn 的 UIButton。改为接到该 UIButton 上, 并摘掉遗留的 UIGenericMenuButton(它会把空菜单当成设置、并每帧覆盖提示文案)
  • 按钮悬停提示被聊天窗遮挡、只显示半截:把游戏原生提示层(按钮/物品/弹出菜单) 抬到聊天窗画布之上
  • 「模型」页签关闭再打开后标题被本地化改回模板页(克隆体上的 Localizer 所致)
  • 设置窗口销毁时 revertButtons 可能越界(缺模板时也补齐数组长度)