PalGuard - 自动化救援 - 基地工人自动重新分配

PalGuard - 自动化救援 - 基地工人自动重新分配

厌倦了不停管理那些被困住的帕鲁吗?帕鲁卫士能帮你巡视基地,让你无需亲力亲为。

游戏玩法

帕鲁守卫 — 基地工作者的自动救援与自动分配

既然伙伴们能自己看家,何必亲自守着?一款轻量级哨兵,会自动解救卡住的工人,并让闲置的工人重新投入工作。


🇬🇧 功能介绍

PalGuard 安静地注视着你营地中工作的帕鲁,并修复了原版从未处理的两件事:

  • 自动救援 —— 当工人因任务被物理卡住(例如卡在栏杆、平台、天花板缝隙或地形中)而无法继续前进时,会被传送回自己基地内的安全位置,在那里可以重新寻路。
  • 自动重新分配 — 一名无所事事的工人会被重新分配工作订单。
  • F8 诊断 — 将所有工作线程的状态(卡住/空闲/已分配)输出到UE4SS控制台。

它每5秒一次温和地扫描,每个帕鲁有独立的冷却时间,避免反复骚扰同一个帕鲁,同时扫描预算限制确保即使在大型基地也能保持流畅。设置好就可以不管它了。

卡住检测的工作原理(智能部分)

被卡住的帕鲁通常不会完全静止——它会来回移动,播放工作动画,或者飞行帕鲁会对着天花板不停拍动。因此,与其问“自上次扫描后它移动了吗?”,PalGuard会设置一个锚点,并检查帕鲁是否被困在锚点周围一个较小的水平半径内。如果它在同一位置扭动太久,就表示被卡住了——然后会被解救到基地内的一个有效位置。如果它真的走到别处,锚点也会跟随,不会发生任何操作。这能捕捉到简单的“它移动了吗”检查无法发现的栏杆、墙壁和天花板情况。

专为大型基地打造

在大型基地(70+工人)中,每次扫描都对所有帕鲁做出反应,会导致卡顿和崩溃——尤其是在快速旅行时,游戏会将整个基地流式加载进内存或移除。PalGuard 每次扫描会处理一批滚动更新的工人,并循环处理其余工人,同时在检测到基地流式加载时完全暂停修正操作。在巨型基地中,卡住的帕鲁可能需要多花几秒才能被解救——这是为了换取坚如磐石的稳定性而刻意做出的权衡。这两种行为均可在 config.txt 中调整。

关于仅限基地的瞄准镜

警卫帕尔仅作用于在你的营地工作的帕尔——不包括你携带在外探险的帕尔。它只是一个基地维护工具,仅此而已。它绝不会触及游戏规则、属性或你的队伍。

默认按键绑定

  • F8 — 将诊断转储打印到 UE4SS 控制台。

所有设置均可在 config.txt 中进行配置。

安装 — Steam

  1. 安装 UE4SS (3.0.1 及以上版本): https://github.com/UE4SS-RE/RE-UE4SS/releases
  2. 解压到 Palworld\Pal\Binaries\Win64\ue4ss\Mods\,最终得到 ...\Mods\PalGuard\Scripts\main.lua
  3. 启动游戏。完成。(或者让 Vortex 来处理——ZIP 文件已准备好供 Vortex 使用。)

安装 — Xbox Game Pass / 微软商店

  1. 安装UE4SS的Game Pass版本(以"gamepass"结尾的发行版):https://github.com/UE4SS-RE/RE-UE4SS/releases
  2. 相同结构,但位于WinGDK文件夹而非Win64...\WinGDK\ue4ss\Mods\PalGuard\Scripts\main.lua
  3. 启动游戏。模组ZIP文件本身是相同的——只有UE4SS文件夹不同。

配置(config.txt

  • ScanIntervalMs — 扫描频率(默认值5000)。
  • StuckThresholdMs — 帕鲁被限制多久才可救援(默认 15000)。
  • StuckRadiusCm — 锚点半径;在此范围内即被视为无法移动(默认150)。
  • IdleThresholdMs — 一个帕鲁在重新分配前必须保持空闲的时间(默认20000毫秒)。
  • PerPalCooldownMs — 同一帕鲁两次行动之间的最小延迟时间(默认值30000)。
  • MaxPalsPerScan — 每次扫描处理的最大工人数量,其余将后续循环处理(默认25,0=无限制)。如果遇到卡顿,可以在大型基地中降低此值。
  • 救援模式营地 将卡住的帕鲁传送回基地内有效位置(推荐),原地 使用旧版原地抬起行为。
  • HorizontalStuckOnly — 水平方向测量卡死状态,以便捕捉卡在天花板上的飞行帕鲁(默认启用)。
  • VerboseLogging — 默认关闭;故障排查时开启。

兼容性

  • 单人游戏 — 已在多个基地(每个最多约70名工人)中测试通过。
  • ⚠️ 多人合作 — 理论上可行,但未正式测试。每位玩家需自行在客户端安装。
  • ⚠️ 专用服务器 — 作用于营地工人的客户端;非服务器权威。依赖前请先测试。
  • ⚠️ 手柄玩家——UE4SS RegisterKeyBind 仅适用于键盘,因此F8诊断键需要键盘。自动救援/自动分配功能会自行运行,无需任何输入。对于诊断键,Steam输入映射是临时解决方案。
  • Xbox Game Pass / Microsoft Store — 可与安装在 WinGDK 文件夹中的 UE4SS 配合使用。
  • 与PalSchema模组兼容。
  • ✅ **兼容大多数其他UE4SS Lua模组。**与EasyTrustyPal(提高工人信任度)搭配使用效果很好,可构建完整的“快乐基地”设置。

加载顺序:作为一款 UE4SS Lua 模组,PalGuard 不会修改 pak 文件或数据表,因此顺序几乎不重要。若需参考原则,请让它修改基础机制或工人数量的模组(扩展基地范围、更多工人等)之后加载,以便它能识别基地的最终状态。若遇到物品检测异常,请确保在你的 UE4SS-settings.ini 中设置了 bUseUObjectArrayCache = false

故障排除

  1. config.txt 中将 VerboseLogging = true 设置为 VerboseLogging = true
  2. 在游戏中按F8可转储工人状态。
  3. 打开...\ue4ss\UE4SS.log并查找[PalGuard]行。
  4. 在“帖子/Bug”选项卡中发布该部分内容,最好附上你最大基地的工人数量以及你是否正在快速旅行。

💛 加入社区

PalGuard 是由一位独立制作《幻兽帕鲁》模组与内容的法国创作者开发的——欢迎来玩!

⭐ 喜欢 PalGuard 吗?

如果它能让你避免一次因“卡关”而怒火中烧的时刻,请点个 认可 👍 —— 这真的能帮助模组被更多训练家看到。只需一次点击,却意义重大。🙏


🇫🇷 描述

为什么你还要亲自监视基地呢?你的帕鲁们完全可以自己搞定一切。一个小守卫就能自动解放被卡住的工人,并让闲散人员回到工作岗位。

它的作用

PalGuard 会悄悄监视在你营地工作的帕鲁,并修正原版游戏从未处理过的两件事:

  • 自动救援 — 一个拥有任务但身体卡住(例如卡在护栏、平台上、天花板或场景中)无法前进的工人会被传送到己方阵营的安全区域,从而重新进行路径规划。
  • 自动重新分配 — 一个没有任务的工人会通过工作指令被重新指派工作。
  • 诊断 F8 — 在UE4SS控制台中显示所有工人的状态(阻塞/空闲/已分配)。

它以一个平静的扫描循环运行(默认每5秒一次),每个帕鲁有冷却时间以避免重复扫描同一个,每次扫描有预算限制,即使在庞大的基地上也能保持流畅。安装后即可忘记它的存在。

卡住检测如何运作(智能功能)

一个被卡住的帕鲁通常并不会完全静止不动:它会在执行工作动画时前后移动,或者飞行帕鲁会持续扇动翅膀撞击天花板。因此,与其询问"自上次扫描以来它移动了吗?",PalGuard会设置一个锚点,并观察该帕鲁是否被限制在水平方向上的一个小半径范围内。如果它长时间在原地动弹不得,则视为被卡住——随后会被救援至基地内一个有效的坐标位置。如果它确实移动到了别处,锚点会跟随,不采取任何行动。这可以捕捉到那些简单的"是否移动"检查会遗漏的围栏、墙壁和天花板卡住情况。

专为大型基地设计

对于大型基地(70+工人),每次扫描就对每个帕鲁做出响应,这必然会导致卡顿和崩溃——尤其在快速旅行时,游戏会在内存中加载/卸载整个基地。PalGuard每次扫描处理一批轮换的工人并继续处理其余部分,同时会在基地加载完成前暂停修正。在巨型基地中,被卡住的帕鲁可能需要多花几秒才能获救——这是为了稳定可靠而做出的取舍。两种行为均可在config.txt中调整。

关于“仅限基础”范围

PalGuard 只作用于 在你的营地工作 的帕鲁 —— 而非你部署在战场上一起行动的帕鲁。它只是一个基础维护工具,仅此而已。绝不会修改游戏规则、属性数据或你的队伍。

默认触控

  • F8 — 在UE4SS控制台中显示诊断信息。

所有设置都可在 config.txt 中进行配置。

安装 — Steam

  1. 安装UE4SS(3.0.1及以上版本):https://github.com/UE4SS-RE/RE-UE4SS/releases
  2. 解压到 Palworld\Pal\Binaries\Win64\ue4ss\Mods\ 后获得 ...\Mods\PalGuard\Scripts\main.lua
  3. 启动游戏即可。(或让Vortex来处理——ZIP文件与Vortex兼容。)

安装 — Xbox Game Pass / Microsoft Store

  1. 安装 UE4SS 的 Game Pass 版本(以 "gamepass" 结尾的发布版):https://github.com/UE4SS-RE/RE-UE4SS/releases
  2. 相同的结构,但文件夹为WinGDK而非Win64...\WinGDK\ue4ss\Mods\PalGuard\Scripts\main.lua
  3. 启动游戏。模组的ZIP文件与之前相同——只有UE4SS文件夹发生了变化。

配置(config.txt

  • ScanIntervalMs — 扫描频率(默认5000)。
  • StuckThresholdMs — 救援前的卡死持续时间(默认15000)。
  • StuckRadiusCm — 锚定半径;保持在范围内 = 受限(默认150)。
  • IdleThresholdMs — 空闲时间阈值(默认20000毫秒)。
  • PerPalCooldownMs — 对同一帕鲁两次操作之间的最短冷却时间(默认 30000)。
  • MaxPalsPerScan — 每次扫描处理的最大工人数,其余工人之后轮换(默认25,0=无限制)。如果基地过大出现卡顿,可调低此值。
  • 救援模式camp会将卡住的帕鲁传送到其基地的有效位置(推荐),spot则使用旧版的原地行为。
  • HorizontalStuckOnly — 水平检测卡住,用于捕捉卡在天花板上的飞行帕鲁(默认值:true)。
  • VerboseLogging — 默认关闭;如需排查故障,请启用。

兼容性

  • 单人 — 已在多个基地(每个最多约70名工人)上进行测试。
  • ⚠️ 合作多人模式 — 应该能用,但未正式测试。每位玩家在客户端安装即可。
  • ⚠️ 专用服务器 — 作用于客户端工作线程;非服务器权威写入。依赖前需测试。
  • ⚠️ 手柄/游戏控制器玩家 — UE4SS的RegisterKeyBind仅支持键盘,因此诊断键F8需要键盘。自动救援/自动重新分配功能自行循环,无需输入。Steam输入重映射是诊断键的解决方法。
  • Xbox Game Pass / Microsoft Store — 与安装在 WinGDK 文件夹中的 UE4SS 配合使用。
  • 兼容PalSchema模组。
  • 兼容大部分其他UE4SS Lua模组。EasyTrustyPal(提升工作者信任度)配合良好,可打造完整的"快乐"基地。

加载顺序:作为UE4SS Lua模组,PalGuard不修改pak文件或DataTables,因此顺序几乎无关紧要。如果需要一个简单规则,请将其置于修改基础机制或工人数量(如扩展基础范围、增加工人等)的模组之后加载,以确保它能够读取到你基地的最终状态。如果遇到奇怪的对象检测问题,请检查UE4SS-settings.ini文件中是否包含bUseUObjectArrayCache = false

故障排除

  1. VerboseLogging = true 添加到 config.txt 文件中。
  2. 在游戏中按 F8 键查看工作单位状态。
  3. 打开 ...\ue4ss\UE4SS.log 并查找包含 [PalGuard] 的行。
  4. 将此部分发布到“帖子/错误”标签中,最好附上你最大基地的工人数量,以及你是否处于快速旅行状态。

💛 加入社区

PalGuard 是由一位法国单人《幻兽帕鲁》模组作者兼内容创作者制作的——来和我们一起玩吧!

⭐ 你喜欢帕尔守卫吗?

如果它帮你避免了一场因为[Pal]卡住而引发的崩溃,请在支持👍一下——这真的能让更多训练师看到这个模组。一点点击,就让人非常开心。🙏


制作人员名单

  • 模组作者:YellowChick / DresseurNomade
  • 衷心感谢LighToNight在测试期间提供的极其详细的实况报告(日志、截图、复现步骤)——围栏、天花板、大型基地和救援循环的修复都直接来自这些测试。这便是优质反馈的模样。🙌
  • 感谢UE4SS团队提供的Lua脚本框架。

🟡 YellowChickDresseurNomade的其他模组

许可证

自由使用、修改和再发布,但需注明出处。


许可与理念

这个模组开放供参考!

这段代码特意保持可读性——欢迎查看内部代码,学习运作机制,并基于你的发现创建自己的模组。这就是这个社区发展的方式。

你可以: 阅读它、从中学习、获得灵感、提出改进建议。 请不要: 将其作为自己的作品重新上传,或声称其属于你。

我们感谢你的支持,但这不是必须的——如果你愿意提及或提供链接,我们会很高兴。

YellowChick - Le Dresseur Nomade 用心制作。有问题或想法?加入Discord吧!

这个模组欢迎大家借鉴!代码有意保留了可读性——你可以查阅、学习,制作自己的模组。只是请勿将其以你自己的名义重新发布。