
集成存储重制版
集成存储的扩展与优化重制。新增公会宝箱、喂食箱与冷却喂食箱,即时事件驱动的存储检测,更安全的UObject缓存,直接容器追踪并显著减少全域扫描。
查看大图集成存储 重制版
扩展的存储支持 • 事件驱动的追踪 • 减少世界扫描 • 更安全的 UObject 处理
简介
这是对 Sarfflow 的集成存储 的扩展与优化重制版。
在建造或制作时,可以使用公会所有基地中存储的材料,现在支持更广泛的存储类型,并拥有更高效的服务器端实现。
此版本增加了对 公会箱子、饲料箱和冷却饲料箱 的支持,同时显著改变了存储容器的发现和追踪方式。
保留了原始服务器权威设计:材料保留在实际容器中,并由真实的游戏/服务器消耗,而非来自虚假或重复的库存。
新增内容
- 公会箱子支持
- 饲料箱支持
- 冷却饲料箱支持
- 新增存储容器通常 立即 被检测到
- 拆除的容器会立即从追踪中移除
- 事件驱动的存储拓扑,而非主要依赖定期轮询
- 直接从存储模型解析物品容器
- 减少全局 UObject / ItemContainer 扫描
- 更安全的经过验证的 UObject 缓存
- 缓存常用反射函数
- 更高效的内部营地/容器 GUID 处理
- 实时物品数量保留 — 物品计数不会存储在过时缓存中
- 定期对账保留为自愈回退机制
- 改进对世界变化和对象重建的处理
- 改进对不支持存储类型的诊断
支持的存储
常规储物箱 ✓
公会箱子 ✓
饲料箱 ✓
冷却饲料箱 ✓
为什么此版本更高效?
原始实现更依赖于定期搜索帕鲁世界的对象和容器,以确定存在哪些存储及其归属位置。
此重制版将常规路径改为 事件驱动和索引化方式。
1. 事件驱动的存储追踪
当构建或拆除受支持的存储容器时,模组会挂接帕鲁世界自身的存储可用性事件。
无需等待下一次定期扫描:
存储构建完成
↓
帕鲁世界报告该事件
↓
容器被立即追踪
这意味着新存储几乎立即可供集成存储使用。
2. 正常请求期间不再重复完整 ItemContainer 搜索
服务器现在维护已发现的相关存储容器的紧凑列表。
不再是概念上的如下操作:
客户端请求材料
↓
搜索所有 ItemContainers
↓
检查哪些是相关的
↓
计算总计
常规路径更接近:
客户端请求材料
↓
检查已追踪的公会容器
↓
读取它们当前的内容
这在拥有许多基地、容器和生成对象的世界中应越来越有优势。
3. 直接容器解析
当发现存储模型时,其实际物品容器可以通过帕鲁世界自身的存储模型/模块关系解析。
因此,模组无需搜索世界中的每个 PalItemContainer 来找出哪个容器属于新发现的箱子。
4. 更安全的缓存替代重复搜索
常用 Unreal 对象通过全局 UObject 注册表重复定位可能代价高昂。
此版本安全地缓存常用访问对象,同时在使用前验证它们仍然存在。
如果对象已被销毁或重建,则丢弃缓存的引用并重新解析。
这提供了缓存的性能优势,而不会盲目信任过时的 UObject 指针。
5. 物品数量保持实时
优化缓存的是 [b]存储存在的位置[/b],而不是每种物品的数量。
例如,模组可能记住:
容器 A → 基地 A
容器 B → 基地 B
容器 C → 基地 C
但它不会永久缓存:
木材 = 5000
石头 = 12000
实际容器内容在需要时读取。
因此,向已知箱子中再存入 1,000 石头不需要等待另一次拓扑扫描。
6. 8 秒对账现在主要是安全网
定期对账 有意未被移除。
其作用现在主要是从异常情况中恢复,例如错过的事件、世界加载、流式传输或新创建的空营地。
简而言之:
事件
= 正常快速路径
定期对账
= 备份 / 自愈
这提供了事件驱动系统的响应性,同时保留了定期验证的可靠性。
安装
需要与帕鲁世界兼容的实验性 UE4SS 构建。
复制:
ModIntegratedStorageCpp
到你的活动 UE4SS Mods 目录。
对于当前 NativeMods / Workshop 风格的 UE4SS 安装,通常位于:
Palworld\Mods\NativeMods\UE4SS\Mods\
模组本身的目录结构应类似于:
ModIntegratedStorageCpp\
├── enabled.txt
├── config.txt
└── dlls\
└── main.dll
重要提示:
不要与其他版本的集成存储同时运行。
移除或禁用:
- Sarfflow 的原始集成存储 DLL
- 集成存储 - 非官方社区修复版
- 此重制版的任何旧版本
同一时间只能激活 一个 ModIntegratedStorageCpp。
专用服务器
对于专用多人游戏,需在以下位置安装 相同版本:
- 专用服务器
- 每个连接的客户端
服务器负责执行权威的跨营地存储整合和实际物品消耗。
远程客户端处理帕鲁世界建造/制作菜单所需的本地材料显示。
配置
默认配置:
verbose = true
reconcile_interval_ms = 8000
isi_refresh_ms = 1500
include_guild_chests = true
include_feed_boxes = true
verbose
首次测试时请保持启用:
verbose = true
一切正常后,可以使用:
verbose = false
以减少 UE4SS 日志输出。
reconcile_interval_ms
默认值:
reconcile_interval_ms = 8000
我建议保持 8000。
新增和移除容器现在通常通过事件处理,因此定期扫描主要用于恢复和自愈。通常没有必要激进地降低此值。
include_guild_chests
include_guild_chests = true
如果你特别希望排除公会箱子,请设置为 false。
include_feed_boxes
include_feed_boxes = true
如果你希望排除饲料箱 / 冷却饲料箱,请设置为 false。
故障排除
如果出现问题:
- 设置 verbose = true
- 重启游戏/服务器
- 复现问题
- 打开 UE4SS.log
- 搜索 [ISGATE]
报告问题时,请包含:
- 相关的 [ISGATE] 日志行
- 单机 / 主机 / 专用服务器
- 所有客户端是否安装了相同版本
- 确切不工作的存储类型
- 正在使用的其他物品、存储或建筑模组
如果未来的帕鲁世界更新引入了新的不支持存储模型,详细日志可能会显示:
[ISGATE] SRV skipped map-object class: ...
请在报告中包含该行。
鸣谢
主要功劳归于 Sarfflow。
Sarfflow 创造了集成存储以及此重制版所基于的核心架构,包括跨营地存储概念、服务器权威消耗、远程客户端材料显示系统以及客户端/服务器传输。
没有 Sarfflow 的工作,这个模组就不会存在。
Sarfflow 的源代码以 MIT 许可证发布,此衍生作品保留了原始版权/许可声明。
额外感谢 Bohamad98,集成存储 - 非官方社区修复版的作者。
他们在识别和处理公会箱子支持以及对象查找/性能问题方面的工作,对此重制版是重要的技术参考。
此版本基于 Sarfflow 的源代码,不会 重新分发 Bohamad98 的 DLL 或 Nexus 资源。
同时感谢 Okaetsu 和 UE4SS 贡献者 维护了与帕鲁世界兼容的 UE4SS 实现,使此类原生 C++ 模组成为可能。
这是一个非官方衍生/重制版本,与原版作者无关联或背书关系。
更新日志
3.3.1-Reworked
- 添加了公会箱子支持
- 添加了饲料箱支持
- 添加了冷却饲料箱支持
- 添加了事件驱动的存储添加/移除追踪
- 添加了直接物品容器解析
- 为新构建的存储添加了延迟初始化重试
- 减少了全局 ItemContainer/UObject 扫描
- 添加了经过验证的 UObject 缓存
- 缓存了常用反射函数
- 改进了内部 GUID/容器索引
- 保持物品数量实时而非缓存堆叠计数
- 将定期对账改为主要作为自愈回退机制
- 改进了世界转换状态清理
- 添加了不支持存储类的诊断
- 添加了公会箱子和饲料箱配置开关
- 保留了 Sarfflow 的服务器权威消耗和远程客户端显示架构
常见问题
问:这会使我的材料重复吗?
不会。材料保留在实际容器中。模组将适当的同公会存储暴露给帕鲁世界现有的建造/制作逻辑。
问:建造新箱子后需要等待 8 秒吗?
通常情况下不需要。存储的创建/移除现在由事件驱动。8 秒扫描主要是备份。
问:如果我向现有箱子放入更多物品,需要等待重新扫描吗?
不需要。容器位置被追踪,但其物品数量在需要时实时读取。
问:支持公会箱子吗?
支持。
问:支持饲料箱吗?
支持。
问:支持冷却饲料箱吗?
支持。
问:我能与原始集成存储一起安装吗?
不能。只能使用一个集成存储 DLL。
问:我能与社区修复版一起安装吗?
不能。此重制版已包含/重新实现了相关修复,并且两个版本都会尝试作为 ModIntegratedStorageCpp 运行。
如果原始模组对你有帮助,请也访问并支持 Sarfflow 的原始发布页面。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。