我们经常遇到这样的问题:仓库格子太小,以前我们在面对这样的问题在事后,解决方法通常是调整仓库的格子数量,但我认为这样的问题应当有更好的解决方式,于是本模组诞生了
本模组提高了仓库的等级上限,并且可自定义配置等级个数和每等级所需的条件和效果
这是什么?
一个纯配置驱动的藏身处扩展框架:给任意设施追加新等级(升级耗时 / 条件 / 效果 / 界面描述全部可配置),由服务器与客户端的原生升级流程接管。不改任何游戏文件、不需要重编译服务器,配一个 config.json 就能把仓库从原版 4 级(10×68)一路扩到 7 级(10×120)甚至更高。
配套提供Web 可视化配置中心(挂在 SPT 服务器自身端口上):实时查看服务器内存中的生效状态,用下拉选择 + 表单的方式编辑配置,校验通过才写入,改完重启服务器生效。
功能一览
| 功能 | 说明 |
|---|---|
| 配置驱动等级扩展 | 任意设施(areaType)追加任意数量的新等级,时间/条件/效果/描述全部可配置 |
| 四种升级条件 | Item(物品+数量)/ Area(设施+等级)/ Skill(技能+等级)/ TraderLoyalty(商人+忠诚度),可任意组合、任意数量 |
| 仓库加行效果 | StashRows:固定 10 列宽、按行扩容,支持”直接加 N 行”与”目标总行数”(isTarget,自动补差额)两种模式,与其他加行模组共享同一原生机制 |
| 仓库换模板效果 | StashSize:换成更大的仓库模板(备选,默认不用,避免与其他模组冲突) |
| 升级描述本地化 | 每级 description 通过 SPT 官方 transformer 机制注入全部语言包 —— 升级界面显示你写的中文,不再是英文 key 原文 |
| 仅改描述条目 | 只含 level + description 的条目只替换界面文字,不碰任何等级数据(可改掉原版 4 级”最大尺寸仓库”文案) |
| 配置全量校验 | 物品 ID / 设施类型 / 商人 ID / 等级连续性 / 效果类型全量校验,出错即阻止注入并逐条报出精确到字段的中文错误,绝不污染存档 |
| ID 速查表 | 首次启动自动生成 reference.json(商人/技能/货币/仓库模板/设施类型全表,商人带中文译名) |
| Web 配置中心 | https://127.0.0.1:6969/hideoutframework:① 当前生效状态(内存实时读取,全部 28 设施)② 可视化编辑(下拉选择式)③ JSON 高级编辑 |
| StashRows 补丁 | Harmony prefix 接管原版不支持的 StashRows 效果(升级完成时生效,含控制台日志) |
| 客户端等级注入补丁 | 修复”升级按钮不出现”根因:客户端原版丢弃新等级,插件把缺失等级补入本地模板 |
| 客户端越界保护 | 升级到场景没有的等级模型时保护下标不越界,视觉沿用最高级原版外观,不崩溃 |
| 诊断开关 | dumpAreasResponse(默认关闭):开启后把 /client/hideout/areas 实际响应写入 config 目录供排查 |
默认预设内容(开箱即用:仓库 5/6/7 级)
仓库(areaType=3)原版最高 4 级 = 10×68(宽 10 列 × 高 68 行,升到 4 级耗时 96 小时)。
以下 5/6/7 级全部用 StashRows”加行”(固定 10 列宽,不换模板):
| 等级 | 耗时 | 扩容 | 金钱 | 材料与工具(全部验证存在) | 技能 |
|---|---|---|---|---|---|
| 5 级 | 96h | 10×68 → 10×87(+19 行) | 300 万卢布 | 钉子×15、螺钉×15、螺栓×15、螺母×15、电线×20、手摇钻×3、螺丝刀×3、管道胶带×8 | 藏身处管理 15 |
| 6 级 | 120h | 10×87 → 10×102(+15 行) | 500 万卢布 | 金属零件×20、钉子×20、螺钉×20、电钻×4、扳手×4、钳子×4、绝缘胶带×10、发泡密封胶×8、军用电缆×10 | 藏身处管理 20 |
| 7 级 | 144h | 10×102 → 10×120(+18 行) | 800 万卢布 | 金属切割剪刀×5、圆嘴钳×5、剪线钳×5、管道扳手×3、棘轮扳手×3、多功能工具钳×3、撬棍×5、电线×30、军用电缆×15、螺栓×30、螺母×30 | 藏身处管理 25 |
设计思路:
-
耗时曲线:96 / 120 / 144 小时 —— 与原版 4 级(96h)持平并递增,符合”4 级之后”的定位
-
材料逻辑:全部是”盖仓库”的真实物料 —— 五金(钉/螺钉/螺栓/螺母)固定结构、线材(电线/军用电缆)布线、施工工具(钻/扳手/钳/剪刀/撬棍)、胶带/密封胶收口、金属零件补强,不用无意义的高价值物品
-
技能门槛温和:藏身处管理 15 / 20 / 25(原版没有任何技能条件,这里只给一点成长感,不卡关)
-
不设新设施/商人门槛:原版 4 级要求的(发电机 3/工作台 3/供暖 3/情报中心 2/和平使者 4/拉格曼 4)升到 4 级仓库时必然已满足,不再重复设卡
配置内附发电机/工作台/情报中心/比特币矿场四份”空模板”注释样板(字段齐全、数值留空),复制改数字即可用,当前不生效。
机制说明
1. 服务器注入(改内存,不改文件)
-
启动时(数据库加载完成后)读取
config.json→ 校验 → 把新等级合并进服务器内存中的藏身处数据(database/hideout/areas) -
客户端请求
/client/hideout/areas时返回合并后的数据 —— 原生升级流程(条件检查 / 计时 / 完成后效果)全部由 SPT 原版接管
2. 客户端插件(为什么必须装)
-
客户端进藏身处时,用游戏资源里的”本地模板”(每设施只有原版等级),再把服务器 stages 覆盖到本地已有等级上;服务器有而本地没有的新等级会被原版直接跳过 → 本地模板 MaxLevel 永远不变 → 判定”无未来升级” → 升级按钮不出现
-
插件
ExtraStageInjectorPatch在覆盖前先把缺失等级补进本地模板 → 按钮出现 -
插件
SafeAreaVisualPatch保护场景等级模型越界(升级到 5/6/7 后_areaLevels[CurrentLevel]不会越界崩溃,视觉沿用最高级原版模型) -
不触碰任何 AI / 行为 / 战斗逻辑,与 SAIN、AILimit 等无交集
3. 仓库扩容(StashRows)
-
原版服务器升级流程不处理 StashRows(那是任务奖励机制),模组的 Harmony 补丁在升级完成时接管:累加 StashRows bonus 到玩家档案(与任务奖励同源,客户端原生支持)
-
两种模式:
value=19直接加 19 行;value=102, isTarget=true表示”升级后总行数 102″,自动计算差额补上 -
行数可无限叠加:10×68 → +19 → 10×87 → +15 → 10×102 → +18 → 10×120
4. 描述本地化(transformer 机制)
-
客户端升级界面描述 = 查
hideout_area_{type}_stage_{level}_description语言 key;原版语言包没有 5/6/7 级 → 显示 key 原文(技术文) -
SPT 语言包是懒加载的(每次访问都从磁盘重新反序列化),直接改字典会丢失 —— 模组用 SPT 官方
AddTransformer机制注册回调,每次反序列化后自动写入描述与hideout_StashRows(加成面板名字)
5. Web 配置中心
-
挂在 SPT 服务器自身端口(6969),无需独立服务
-
当前生效状态:内存实时读取全部 28 个设施,含原版各级与本模组新增级(高亮),描述优先中文语言包 -
可视化编辑:设施卡片(类型下拉/覆盖勾选)→ 等级卡片(等级/耗时/描述)→ 条件列表(类型下拉,字段随类型变化:物品常用列表下拉+自定义 ID、技能 67 项下拉、商人 12 家下拉、设施下拉)+ 效果列表(StashRows 行数/目标模式、StashSize 模板下拉),全部可增删 -
JSON 高级:直接编辑含注释的 config.json -
保存:复用启动校验器,通过才写入(失败列具体错误,不覆盖现有配置),自动备份
config.json.bak,重启服务器生效
日志
服务器启动日志(控制台 + user\logs\spt\spt日期.log),正常时全绿:
【藏身处框架】StashRows(仓库固定 10 列加行)效果补丁已启用 【藏身处框架】配置加载成功:1 个设施,3 个自定义等级 【藏身处框架】areas 响应诊断已关闭(…) 【藏身处框架】自检:仓库(type=3) stages 键 = [0,1,2,3,4,5,6,7] 【藏身处框架】本地化注入完成:4 个 key × 全部语言(共 68 条) 【藏身处框架】注入报告: 仓库:5 级(耗时 96 小时,10 个条件,1 个效果) 仓库:6 级(耗时 120 小时,10 个条件,1 个效果) 仓库:7 级(耗时 144 小时,13 个条件,1 个效果) 【藏身处框架】注入完成:共 3 个自定义等级,服务器与客户端原生升级流程已接管 >>> 【藏身处框架】Web 配置界面: https://127.0.0.1:6969/hideoutframework(青色,醒目)
每次仓库升级完成(控制台):
【藏身处框架】仓库升级完成:StashRows +19 行 【藏身处框架】仓库升级完成:StashRows 目标模式,目标总行数 102,本次补 15 行
配置错误时(不会注入):逐条列出 config.json → areas[0].levels[1].requirements[0]:物品 xxx 不存在于 items.json 等精确报错。
文件内容与结构
压缩包(即装即用布局):
HideoutFramework-v1.0.0.zip └─ HideoutFramework\ ← 最高级文件夹(模组名) ├─ BepInEx\ ← 整个文件夹拖进【游戏根目录】(与 EscapeFromTarkov.exe 同级) │ └─ plugins\HideoutFrameworkClient\ │ ├─ HideoutFrameworkClient.dll 客户端插件(必需) │ └─ HideoutFrameworkClient.pdb └─ SPT\ ← 整个文件夹拖进【服务器根目录】(SPT.Server.exe 同级) └─ user\mods\HideoutFramework\ ├─ HideoutFramework.dll 服务器模组本体 ├─ HideoutFramework.deps.json ├─ HideoutFramework.pdb └─ config\ ├─ config.json 配置(JSONC 中文注释,开箱即用可编辑) └─ reference.json ID 速查表(首次启动自动生成)
安装 = 解压后把 BepInEx 拖进游戏根目录、把 SPT 拖进服务器根目录(目录自动合并到正确位置),重启服务器即可。卸载 = 删除 BepInEx\plugins\HideoutFrameworkClient 与 SPT\user\mods\HideoutFramework 两个文件夹,已升级的档位保留(StashRows 是原版 bonus,无残留依赖,删模组仓库不缩水)。
安装
前置:
无
步骤:
-
解压
HideoutFramework-v1.0.0.zip,得到最高级文件夹HideoutFramework\ -
把其中的
BepInEx文件夹整体拖进【游戏根目录】(与 EscapeFromTarkov.exe 同级,目录自动合并) -
把其中的
SPT文件夹整体拖进【服务器根目录】(SPT.Server.exe 同级,目录自动合并) -
重启服务器 → 日志出现注入报告即成功;控制台出现青色 Web 地址
-
浏览器打开
https://127.0.0.1:6969/hideoutframework(自签名证书提示时点”继续访问”)可查看/编辑配置 -
按需编辑
SPT\user\mods\HideoutFramework\config\config.json(改完重启服务器生效)
卸载:删除 BepInEx\plugins\HideoutFrameworkClient(客户端)与 SPT\user\mods\HideoutFramework(服务器)两个文件夹即可,已升级的档位保留(StashRows 是原版 bonus,无残留依赖,删模组仓库不缩水)。
常见问题
Q:为什么一定要装客户端插件?
SPT 客户端机制限制:客户端只把服务器数据”覆盖”到本地已有等级,服务器发来的新等级会被丢弃(日志报 There is no stage level X ... on client),没有插件就永远看不到升级按钮。服务器模组发数据,客户端插件让客户端”收下”数据,两者缺一不可。
Q:其他设施能加等级吗?
能,任何设施都行(复制仓库块改 areaType)。注意:客户端场景里没有新等级的 3D 模型,升级后视觉沿用该设施最高级的原版外观,功能(耗时/条件/效果)完全正常;仓库无外观差异,不受影响。
Q:仓库能无限扩容吗?
行数理论上随意叠加,但客户端网格渲染会随行数变慢,建议控制在 10×180 以内(10×120 默认档无压力)。
Q:改配置后游戏里没变?
配置改动必须重启服务器;客户端需重进藏身处(或重进游戏)刷新。
Q:会与其他模组冲突吗?
只读写藏身处 areas 数据 + 两个显示层补丁 + 一个 Harmony 补丁方法;StashRows 与原版任务奖励机制同源,可与其他加行模组共存。若同时装多个”也改 areas”的藏身处模组,注入顺序靠后的生效,建议同类只留一个。与其他改价模组(如 PriceControl)互不干扰(一个管价格、一个管等级)。
Q:升级界面顶部还有英文/技术文?
那是描述 key 没生效。检查启动日志”本地化注入完成”行是否存在且计数 > 0;本模组 v1.0.0 已改用 SPT 官方 transformer 机制,重启服务器后必然生效。描述内容在 config 对应等级的 description 字段。
Q:”最大尺寸仓库”是什么?
BSG 原版对仓库 4 级的描述文案(当前等级区块显示),不是状态提示。想换掉用”仅改描述”条目:{ "level": 4, "description": "……" }。
版本记录
-
v1.0.0(2026-08):第一期正式版。配置驱动等级扩展框架(任意设施/等级/时间/条件/效果/描述);StashRows 加行扩容(普通+目标模式);描述与 StashRows 名字经 SPT 官方 transformer 机制注入全部语言;Web 可视化配置中心(状态/可视化编辑/JSON 高级,校验后保存);reference.json ID 速查表;配置全量校验;客户端等级注入补丁(修复升级按钮不出现)+ 场景越界保护;修复 SPT 版本兼容检查(客户端引用 spt-reflection、服务器 SptVersion=
~4.0.0);仓库 5/6/7 级采用”仓库建造”逻辑建材条件、技能 15/20/25、耗时 96/120/144;
未完成 / 已知限制 / 路线图
当前没完成 / 受限的部分:
-
其他设施没有开箱等级:我默认只给仓库配了 5/6/7 级;而其他设施只有配置文件里的注释模板,如果想要扩展其他设施的更高等级,需要玩家自己复制启用
-
没有新等级的场景模型:升级到自定义等级后场景视觉沿用该设施最高级原版外观(仓库无影响);”给新等级做 3D 模型”(Bundle 模组方案)未做 —— 需要 Unity 制作模型 + 客户端插件实例化,作者暂不熟悉该方向,属已知边界
-
条件类型只有四种:Item / Area / Skill / TraderLoyalty;不支持玩家等级、任务完成、Kappa 等更多条件(客户端原生 Requirement 种类有限,强行加有兼容风险)
-
描述只支持单语言:所有语言显示同一段描述文本(配置写什么就是什么);双语/多语言描述未做
-
改配置需重启服务器:Web 保存后要重启才生效
-
Web 可视化保存后注释丢失:可视化编辑器保存会生成标准 JSON(无注释);JSON 高级模式保存保留原文注释
-
仓库超大行数可能有性能边界:建议 10×180 以内,超大会影响客户端网格流畅度
示例
隐藏内容需要付费才可以看见















我喜欢你
我喜欢你