DSPQualitySystem
DSP 品质系统:把增产剂点数变成 0-10 级品质经济。建筑按点数提升产物品质、高品矿机采出高品矿、仓库按品质分格并扩容、分流器可给每个输出口设「物品+最低品质」规则、分拣器带品质阈值、10 点建筑金色光环、物品图标显示品质角标;16 项中文开关,品质数据写入 .dsv 尾部,不产生额外存档文件。
By Star4wish
| Date uploaded | a week ago |
| Version | 0.17.0 |
| Download link | Star4wish-DSPQualitySystem-0.17.0.zip |
| Downloads | 36 |
| Dependency string | Star4wish-DSPQualitySystem-0.17.0 |
This mod requires the following mods to function
CommonAPI-CommonAPI
A modding library for Dyson Sphere Program. Currently is under development.
Preferred version: 1.6.7README
DSP 品质系统 · DSP Quality System
v0.17.1 | Dyson Sphere Program 0.10.35 | BepInEx 5 | 单人游戏 Mod
把原版「增产剂」重构成一套 0–10 级的品质点数经济:点数会被喷上去、被挖出来、被制造过程抬升,然后跟着产物、建筑和物流一路流动。 Rebuilds vanilla proliferator points into a 0–10 quality system: points are sprayed on, mined out and upgraded in production, then flow through products, buildings and logistics.
10 点 = 2.00 倍产出 / 10 points = 2.00× output(代价 3.5 倍电耗 / at the cost of 3.5× power)
中文
这是什么
原版有一根叫「增产点数(inc)」的隐藏数值:喷涂机给它加数,它让机器多产出,然后就没了。这个 Mod 把它拆成 0–10 十个可见的台阶:物品有品质、建筑有品质,品质能被看见、被筛选、被继承,也会改变整座工厂的节奏。
不新增任何物品与配方,兼容原版存档结构。
玩起来是什么样
- 喷涂起步:把主产线(比如铁块)过一台喷涂机,原料直接到 1 / 2 / 4 点(Mk.I / II / III,一次最高 4 点);
- 矿机滚雪球:带点数的采矿机 / 大型采矿机挖出来的原矿自带点数,10 点矿机平均每块矿多 1 点;
- 制造升品:熔炉、制造台这类建筑会按自身点数、按概率把产物升 1–2 点 —— 这是把东西推过 4 点、一路到 10 点的主渠道;
- 建造继承:用什么点数的材料造,就得到什么点数的建筑(Mod 会优先消耗你品质最高的那件);
- 筛出好料:四向分流器的输出口可按「物品 + 最低品质」分流,分拣器可设品质阈值只捡够格的货;
- 越滚越顺:高品建筑干活更快 → 产出更多高品产物 → 造出更高品建筑,是个正循环。
特点
- 十级台阶,收益看得见:0→10 点对应加成 0 / 2.5 / 5 / 7.5 / 10 / 15 / 20 / 30 / 40 / 60 / 100%,满级正好 2.00 倍(电耗 3.5 倍,和原版增产剂拉满同一个取舍)。
- 七类加成:制造与挖矿速度、物流塔充电、研究速度、防御塔射速、发电、发射井/弹射器速度、喷涂机 +1 点概率 —— 全部共用同一张曲线表。
- 点数会流动:产物继承(多路输入取最低那一路)、建筑落成继承材料、拆除返还回背包,一条线里的品质是"可搬运"的。
- 品质看得见:物品图标左上角有品质角标(灰蓝 → 蓝 → 紫 → 金),10 点建筑套一圈金色呼吸光环,一眼扫过就知道哪条线是满品。
- 能筛选:分流器输出口过滤 + 分拣器品质阈值,可以把"高品专线"和"普通专线"拆开,好料只喂给研究站和关键设备。
- 仓储分格:背包里的建筑按品质分格存放,同点数自动合并;储物仓按品质扩容(每点最多 +0.5 格,满品最多多 5 格)。
- 16 个开关全中文注释:加成、角标、光环都能单独关;默认设置即最佳体验。
- 低风险:所有补丁失败都回退原版;品质数据只写进存档尾部,不产生侧文件。
安装
- 装好 BepInEx 5.4.x;
- 用 r2modman / Thunderstore Mod Manager 一键安装,或手动把
DSPQualitySystem.dll放到BepInEx\plugins\DSPQualitySystem\; - 启动游戏即生效,日志里搜
[QSystem]确认加载。
依赖:BepInEx 5(必需)、CommonAPI(随包声明)。不需要 LDBTool / DSPModSave。
卸载与兼容
- 卸载只需删 DLL:存档仍可被原版正常读取(品质数据在
.dsv尾部,不产生额外文件); - 可以与其它同样写存档尾部的 Mod 共存(如 DSP-MolecularHub);
- 唯一代价:储物仓靠品质扩容出来的那几格里的物品只在 Mod 数据里,卸载后会丢,退坑前把好料取走即可;
- 单人 Mod,不能用于联机。
配置文件
BepInEx\config\dsp.qualitysystem.cfg(段名 [quality],16 个键,全中文注释)。改完需要重启游戏生效。
English
What it is
Vanilla has a hidden number called inc (proliferator points): spray coaters raise it, machines produce more, and that's it. This mod turns it into a visible 0–10 quality ladder: items have quality, buildings have quality, and that quality can be seen, filtered and inherited — it changes how your whole factory runs.
No new items, no new recipes, save-game structure untouched.
How you play it
- Spray to start: run your main line (say iron ingots) through a spray coater — items become 1 / 2 / 4 points (Mk.I / II / III; one pass caps at 4).
- Mining snowballs: miners and advanced mining machines with quality produce ore that already carries points — a 10-point miner averages +1 point per ore.
- Production upgrades: furnaces, assemblers and similar buildings roll to upgrade their output by 1–2 points based on their own quality — this is the main way to push items past 4 points and up to 10.
- Building inheritance: build with N-point materials, get an N-point building (the mod always spends your highest-quality copy first).
- Filter the good stuff: each splitter output port can route by "item + minimum quality", and sorters accept a quality threshold, so high-grade goods only go where they matter.
- Compounding loop: better buildings work faster → more high-quality products → even better buildings.
Features
- Ten visible steps: 0→10 points map to 0 / 2.5 / 5 / 7.5 / 10 / 15 / 20 / 30 / 40 / 60 / 100% bonus — exactly 2.00× at max, at 3.5× power draw, the same trade-off as fully-proliferated vanilla.
- Seven bonus types: crafting & mining speed, logistics-station charging, research speed, turret fire rate, power generation, launcher/ejector speed, and sprayer +1-point chance — all sharing one curve table.
- Points flow: product inheritance (lowest input path wins), building inheritance from materials, and points returned when dismantling — quality is something you can move around your factory.
- Quality you can see: a quality badge in the top-left corner of item icons (grey-blue → blue → purple → gold), and a golden pulsing halo around 10-point buildings.
- Quality you can filter: splitter output-port rules plus sorter thresholds let you split "high-quality only" lines from normal ones.
- Quality-aware storage: building items are stored in separate stacks by quality (same quality merges automatically), and storage containers gain extra slots by quality (up to +0.5 slot per point, max +5).
- 16 switches, fully documented in Chinese; defaults are the intended experience.
- Low risk: every patch falls back to vanilla on failure, and quality data lives only in the save file's trailer — no side files.
Install
- Install BepInEx 5.4.x.
- Install via r2modman / Thunderstore Mod Manager, or drop
DSPQualitySystem.dllintoBepInEx\plugins\DSPQualitySystem\. - Launch the game and look for
[QSystem]in the log.
Dependencies: BepInEx 5 (required), CommonAPI (declared with the package). LDBTool / DSPModSave are not needed.
Uninstall & compatibility
- Just delete the DLL: the save stays readable by vanilla (quality data sits in the
.dsvtrailer, no extra files). - Coexists with other mods that append to the save trailer (e.g. DSP-MolecularHub).
- Only caveat: items sitting in storage slots that were added by quality exist only in the mod data and are lost after uninstalling — empty those slots first.
- Single-player mod; not for multiplayer.
Config
BepInEx\config\dsp.qualitysystem.cfg (section [quality], 16 keys, Chinese comments). Restart the game after editing.
Version 0.17.1 · Mod ID dsp.qualitysystem · Built for Dyson Sphere Program 0.10.35 with BepInEx 5 (net472, single DLL).
CHANGELOG
Changelog
0.19.2
-
品质筛选设置随「复制/粘贴」与蓝图一起走:四向分流器的每口规则、分拣器的品质阈值,现在在 Shift 复制、Ctrl+C / Ctrl+V 与蓝图复制粘贴时都会各自保留(此前只有建筑本身的品质点数会跟随,筛选规则永远回到默认)。新增补丁
Patches\P6_FilterCopy.cs(11 个 Harmony 挂点):建筑设置走BuildingParameters.CopyFromFactoryObject/PasteToFactoryObject与PlanetFactory.CopyBuildingSetting/PasteBuildingSetting;蓝图走两段式通道——BuildTool_BlueprintPaste.CreatePrebuilds()prefix 先从BlueprintBuilding.parameters解出筛选块(日志bp-stage queued=N buildings=M),再在PlanetFactory.AddPrebuildDataWithComponentspostfix 按 protoId 绑到 prebuildId(bp-stage prebuild id=.. proto=.. kind=.. min=..),最后由AddEntityDataWithComponentspostfix 写到落地实体;筛选块本身由BuildingParameters.ToParamsArray/FromParamsArray/GenerateBlueprintData三处挂点写成parameters尾部的魔数块(magic0x51465042即QFPB、version 1、kind 1=四向分流器 / 2=分拣器、protoId、rule0..3、min),随.bp文件持久化。 -
修复分拣器从储物仓抓货会丢品质点数:真根因是储物仓分支把「实体 id」当成
storagePool的下标用了(原版要先entityPool[entityId].storageId映射再取storagePool[storageId]),命中空组件导致读到grids=0、按 0 点放行。同时删掉lastEmptyItem缓存门控(阈值或物品过滤一改立即生效,「只设品质阈值、不选物品」也能生效),并补NotifyStorageChange()让仓库界面立刻刷新(此前取走货后界面残留旧货、要重开才消失)。 -
关闭「储物舱随品质扩容」:
QualityConfig.StorageQualityGridsValue改为false,行为等同删除该功能(代码与旧存档兼容逻辑保留),修掉打开仓库界面时的System.IndexOutOfRangeException at UIStorageGrid._OnUpdate()崩溃;启动日志改为[QSystem][storage] NOT ARMED (storageQualityGrids=false; vanilla containers),旧存档尾部残留的 overflow 数据读档时静默忽略(只 WarnOnce),不再写回。 -
新增 DEV 诊断探针(仅
DSPQS_DEV=1输出,正常游戏静默):storage-pick、pick-return、inserter-hold、stack-insert2、cargo-insert、insert-into、bp-stage、blueprint block written (save)/blueprint block read等,用于定位取货点数与蓝图块读写。 -
离线测试 94 → 88 checks(撤回 v0.19.1「喷涂次数按品质分级」那组 6 条 checks)。
-
构建:
DSPQualitySystem.dll298,496 字节 / SHA256A0BE6EBF3EEF1BB587C7EB6BA0FD32FEEFFDD8F7C98DC58C2B5308298775A8C7/2026-10-31 21:46:49;启动自检[QSystem][filtercopy] armed=True reason=patched 11/11 (BuildingParameters copy/paste/apply + Copy/PasteBuildingSetting + blueprint params/save/load + prebuild stage)。 -
诊断输出默认关闭(v0.19.2 整理):所有
[Probe][…]与 DEV 调试探针(storage-probe/storage-pick/pick-return/inserter-hold/stack-insert*/insert-into/cargo-insert/bp-stage/blueprint block read|written)改为只在DSPQS_DEV=1时输出;普通游玩只剩启动armed行、一次性[Audit]自检、effective=每 200 次与[save]行。
0.19.1
- 修复读档后制造台首批产物点数偏低:制造台的「本批原料点数」(
inputLevel)以前只存在内存里,存档再读回就丢了 —— 读档后该值回落为-1,首批产物按「0 点原料」算(日志in=0)。现在写进行星节点"inputs":[{"e":entityId,"l":level}],读档时SetInputLevel恢复(修后in=6);旧档没有该节点直接跳过,存档 schema 仍是 1。 - 制造台每批原料点数由原版整除截断改为四舍五入(
QualityMath.BatchInputLevel):用户报的「10 点制造台喂 6 点原料却出 7 点产物」是 5 件共 29 点、int(29/5)=5再 +2 得 7;改成 half-up 后31/5=6,产物 8 点。取各输入槽最小值的规则不变。 - 增产剂可用次数按每件品质点数分级(原来恒为 1):0–2 点 → 1 次、3–4 → 2、5–6 → 4、7–8 → 5、9 → 7、10 → 10。
ItemProto.HpMax仍固定为 1(罐内单位 = 次数),由新的P6_SprayUses在插入的四个路径上「插前快照 + 插后补差」把每件净增补到表值;Mk.I/II/III 每次喷涂加的点数(ItemProto.Ability= 1/2/4)不变,此版只动「可用次数」。 - 修复取回喷涂剂会凭空复制:取回改由 prefix 接管,按每台喷涂机的账本
"sprayuses":[{"e","i","u"}]反推件数,取回件数夹到 ≤ 投入件数;旧档没有账本时按uses/10保守回退。清空喷涂机(ClearItems_Spraycoater)同时清账本。 - 分拣器品质阈值过滤覆盖范围补齐:0.18.0 只拦传送带取货,储物仓 / 机器产物口 / 弹射器 / 发射井里的低品质货仍会被抓走。现在传送带拦
CargoPath.TryPickItem的两个带 filter 重载,其余来源由PlanetFactory.PickFrom的Priority.Highprefix 覆盖(storage / assembler / ejector / silo),机器产物口只做「下一件点数不够就拦」、不消耗产物池点数;物流塔 / 研究站 / 电站明确跳过并在bySource=里可见。与P0_PickFrom互斥(来源=assembler 时原样放行给它)。 - 无新增 cfg 键(仍 16 个)、存档 schema 向后兼容(行星节点仅新增可选
inputs/sprayuses);离线测试 86 → 94 条。
0.19.0
- 三种增产剂的可用喷涂次数统一改为 1 次(原版 12 / 24 / 60):改写在
ItemProto.HpMax,插入 / 取出 / tooltip 三条原版路径自动一致;旧档罐内旧「次数」读档时按ceil(次数 ÷ 原版次数)折算成件数(日志如604 vanilla spray times (60/item) -> 11 items),不会读档后喷出巨量;存档哈希校验期间临时还原原版值,避免误报「数据异常」弹窗。 - 新增品质回收机(复用原版喷涂机 2313):回收通道是喷涂机的催化剂(增产剂)进料带(原版放 1141/1142/1143 的那一侧)——喷涂机通电时,进料带上单件点数 ≥1 的非增产剂物品(即任意带点数的货物)被整叠消耗销毁,点数记入该机账号,每 4 点 = 1 次喷涂次数灌进原版喷槽(1143,容量 600 次),超出容量的点数留在账号;未喷涂的 0 点货物整叠原样放行。默认阈值 1(
QualityRecyclerMath.DefaultMinPerItem,内部开关P7_Recycler.MinPerItemValue、非 cfg 键)——兑换本身亏损(4 点只换 1 次喷涂次数、1 次最多值 3 点),无需用阈值防套利;改成 3 即回到「只收 Mk.III 喷过的」。物品带侧照常喷涂、互不影响;喷槽满 600 次时暂停回收(耗尽后自动恢复)。账号写进存档尾部的"recyclers"节点({"e","p","c"})、跨读档保留;拆机后 1200 tick 清理。 - 无新增 cfg 键(仍 16 个)、存档 schema 向后兼容(行星节点仅新增可选
recyclers,旧档无此键照常读、早期"o"字段读档忽略);离线测试 82 → 86 条。
0.18.0
- 修复发电功率没变化:旧安装包里的 DLL 实际是 v0.11.10(其中没有任何发电补丁,v0.12.0 才加入),本版重新构建;风力/光伏/地热/火力/射线接收站在 10 点时真实达到 2.00× 功率。
- 新增供电范围加成:电力塔类建筑(感应塔 / 无线输电塔 / 配电站,按
PrefabDesc.isPowerNode判定)的连接距离与覆盖半径随同一条品质曲线放大(10 点 = 2.00×),构建落成与读档后都生效、按 prefab 原值幂等重算。 - 制造台升品概率改用速度/充电/发电那张每点曲线:1/4/7/10 点 = 2.5%/10%/30%/100%,7–9 点额外再判一次、10 点必 +2,掷骰结构不变(分馏塔仍单掷)。
- 矿机产出点数改为确定性:判定次数 = 点数 ÷ 2 且每次必定成功 —— 2 点固定 +1、4 点固定 +2、10 点固定 +5;大型采矿机同规则。
- 修复材料不足时的白色虚影补付后按 0 点落成:新增补付观察,建成时按实际被扣材料物品的品质点数落成(与材料当场充足一致)。
- 无新增 cfg 键(仍 16 个)、存档 schema 不变;离线测试 78 → 82 条。
0.17.1
- 修复四向分流器品质过滤仍会放过无品质物品:品质判据改为「每件点数 = 栈总 inc ÷ 栈件数」(原版
Cargo.inc是整栈总点数,旧版直接拿它比阈值,多件低品栈被误放行)。 - 修复分流器规则口泄漏:有规则即完全接管(不再因输入优先级/优先级预设/上方储物仓/
input0==0让路给原版);命中规则只进规则口、口满原地等待;未命中规则只去没有设规则的口,原版outFilter彻底不参与路由(v0.17.0 的 first-fit 兜底路径已删除)。 - 修复在物品选取器里点物品却不写规则(旧版只在开关已开时才写,导致只留下原版被写脏的
outFilter);现在点物品即按该物品写入规则。 - 修复分拣器品质阈值形同虚设:同样改为按每件点数比较;整栈取货与原版
filter语义不变,min=0时原版等价。 - 无新 cfg 键、存档 schema 仍为 1(
splittersV2/sorters不变);离线测试 72 → 78 条。
0.17.0
- 品质过滤编辑器迁入原版「物品选取」窗口:点分流器的过滤圆 / 分拣器的过滤按钮打开选取器后,底部出现品质设置行(分流器:
口A 品质分流 [开/关] 物品: xxx [-] ≥N [+];分拣器:品质阈值 [-] ≥N [+]),网格里点物品仍走原版流程。 - 修复分流器窗口里旧品质过滤面板「点不到」的问题:旧面板整份删除,改用真按钮控件。
- 修复大型采矿机放置后品质点数丢失(背包分支建造现在也能拿到实际消耗物品的点数)。
- 修复 Shift+左键「立即建造」仍造出 0 点建筑(瞬时消费窗口 + 落成时按物品匹配绑定点数)。
- 离线测试 66 → 72 条。
0.16.1
- 四向分流器改为逐输出口规则(物品 + 品质 ≥N),替代 0.13 的「品质优先」;分拣器新增品质阈值。
- 旧「品质优先」勾选框、标题后缀与 F3 热键退役。
- 过滤 UI 实际未接线的问题修复(补丁注册 + 面板布局)。
0.16.0
- 修复大型采矿机(采集站型建筑)不给矿加品质。
- 修复 Shift+左键立即建造丢品质点数。
- 修复增产模式的额外产物品质被取货抵消。
0.15.0
- cfg 精简为 16 个玩家开关,全部中文注释;其余平衡参数改为内置常量。
- 新增 cfg 自愈:旧版本残留键会被整份重写清掉,只留 16 键并保留玩家当前值。
- 删除「屏幕描边」与「蓝图携带品质」两个功能(后者经用户判定为错误方向)。
- 调试热键移出 cfg,改为环境变量
DSPQS_DEV=1开启。 - 开发文档重写为纯净版(功能/配置/实现/兼容性)。
0.14.0
- 新增物品品质角标(储物仓/背包/手持提示),支持数字/圆点/两者与显示阈值。
- 角标配色压暗,避免 10 点金色在泛光下发白。
0.13.2
- 四向分流器面板内新增「品质优先」勾选框,位置与遮挡问题修复。
- A 类五件套(研究站/防御塔/发电机/弹射器/发射井)逐项实机数值验证。
0.13.0
- 新增储物仓「品质质变格数」(按点数扩容,溢出物品存存档尾部)。
- 新增四向分流器「品质优先」(输入槽按品质重排)。
0.11.11
- 品质数据从侧文件改为内嵌
.dsv尾部,不再产生额外存档文件。