
PalGuildLevelSync
该模组将公会基地中的每一只帕鲁都维持在公会**最高在线玩家的等级**。等级变化是永久性的,但《幻兽帕鲁》内置的平衡机制将防止低等级公会成员使用过于强大的高等级帕鲁。捕捉一只帕鲁后,它会自动提升到你的等级。无需再手动培养新捕捉的帕鲁才能使用……
查看大图PalGuildLevelSync v1.0.0
设计、调试和测试者:
joffie87
编码和文档(仅初版):
Claude-code
我在游戏过程中注意到,我希望角色进度更慢,但我讨厌调整经验倍率也会影响帕鲁升级速度,而我觉得给帕鲁升级本身就挺繁琐的。我的解决方案是基本上取消帕鲁升级系统。
这个模组会让公会基地中的每只帕鲁同步为该公会的最高在线玩家等级。等级变更是永久性的,但帕鲁自带的等级缩放机制可以防止低等级公会成员使用过于强大的高等级帕鲁。
捕捉到帕鲁后,它会自动提升到你的等级。再也不需要手动给新抓到的帕鲁升级才能使用——尽情游玩你真正喜欢的帕鲁吧。
仅服务端。 原版客户端无需安装任何内容。

基本原则是:谁拥有服务器权限,谁安装模组。(联机主机运行的是普通游戏客户端,因此需安装在该电脑的客户端端 UE4SS Mods 文件夹中——而非专用服务器安装目录。)
适用范围:这是一个专用服务器模组
专为Windows 专用服务器构建并测试。这就是目标平台,明确说明,因为有些模组不太好判断。
已在以下环境测试:
- Windows 专用服务器,多名玩家,通过互联网连接
- 客户端:GeForce Now 和 Steam Deck——两者均为完全原版
也适用于单人游戏(已确认)——使用相同模组,无需配置更改;你自己的基地/队伍中的帕鲁会同步到你的等级。
尚未测试: 联机/非专用(监听服务器)、其他玩家的服务器设置。既然能同时在单人游戏和专用服务器中运行,联机模式大概率也适用——只是还没在那里测试过。
要求
- 帕鲁世界 1.0+
- UE4SS 3.0.1+,安装在服务器或主机/单人游戏电脑上
- Windows 服务器(UE4SS/Lua 无法在 Linux 版 Palworld 二进制文件上运行,UE4SS Linux 版未测试)
安装
将 ue4ss 文件夹复制到服务器的 Pal/Binaries/Win64/ 目录中,最终得到:
<PalServer>/Pal/Binaries/Win64/ue4ss/Mods/PalGuildLevelSync/
enabled.txt
Scripts/main.lua
然后完全关闭并重新启动服务器。
如果你使用服务器管理 GUI,“停止服务器”通常不够——游戏进程可能仍驻留内存并保留旧状态。退出管理程序本身,然后重新启动。你应该会在 ue4ss/UE4SS.log 中看到一个新的“Console created”行。
验证是否正常运行
在 Pal/Binaries/Win64/ue4ss/UE4SS.log 中,你应该看到:
[PalGuildLevelSync] v1.0.0 loaded - syncing every 30s
[PalGuildLevelSync] Synced 13 guild Pal(s) up to guild max level.
第二行只在有帕鲁需要提升等级时才会出现,所以所有帕鲁同步完成后没有输出是正常且预期的。
配置
编辑 Scripts/main.lua 文件顶部的 cfg 代码块:

工作原理
- 一个公会对应一个GroupId。玩家及其帕鲁共享同一个 GroupId,因此模组会查找每个 GroupId 的最高玩家等级,然后将该组中低于该等级的帕鲁全部提升。
- 野生帕鲁拥有自己的 GroupId,与任何玩家的公会都不匹配,因此永远不会被修改。玩家角色会被明确跳过。
- 写入目标是 IndividualParameter.SaveParameter.Level,这是存档数据——所以是持久化的。
已知限制——请阅读
- 仅影响已加载的帕鲁。 在帕鲁终端/仓库中的帕鲁属于存档数据,而非已生成的实体,因此直到它们出现在世界中(队伍或已加载的基地)才会被处理。它们会在后续的同步循环中被处理。
- 属性实时更新——无需重载。 测试中,同步后的帕鲁最大生命值、攻击力和防御力会自动根据新等级重新计算,无需从箱子取出再放回或重启服务器(查看帕鲁时,从帕鲁模型上弹出现世界面的提示可能显示错误的等级,例如,你看着时显示 1 级,但 UI 中显示 26 级)。
- 快速升级的帕鲁会受到重伤。现在这是一个特性。 我们决定这代表了被迫在成长之前长大的情感代价,我们尊重这种挣扎,因此选择不修复它。:) 机制上:一次大等级的瞬间提升会使最大生命值增长速度超过当前生命值,导致帕鲁处于新最大值的较低比例,游戏会标记重伤——这和你经常看到同步后的帕鲁生命值远低于最大值的原因一样(上限一直在提高)。它们会正常恢复(温泉、食物、休息);没有任何东西被破坏。
- 只提升,不降低。 等级高于公会最高等级的帕鲁会被忽略。
- 经验值不会调整,仅调整等级。
- 仅限 Windows(这是 UE4SS 的限制,不是本模组的;可能在 UE4SS Linux 版上运行,完全未测试)。
兼容性/稳定性说明
本模组有意避免使用 LoopAsync,该函数会在重复回调时破坏 UE4SS 的内部操作列表(RE-UE4SS #1180)。这种损坏会在共享引擎帧钩子上抛出 [Lua::Registry::get_function_ref] Ref was not function 错误,UE4SS 随后会移除该钩子——这会静默地杀死所有基于定时器的 Lua 模组的异步泵,而不仅仅是出问题的模组。大约需要 40 分钟到 2 小时才会出现,并且只有完全重启才能恢复。
取而代之的是,它使用稳定的命名回调链式调用一次性 ExecuteWithDelay 调用。如果你在编写 UE4SS 模组,这个做法值得借鉴。
AI 使用声明
本模组是在 AI(Claude)辅助下编写的。提前说明,以免让你感到意外。
具体来说:
- 代码是在 AI 帮助下起草和重构的。 我负责指导、做出设计决策,并审查最终内容。
- 没有猜测 Palworld API 的使用方式。 本模组调用的每一个接口都通过真实服务器验证过——枚举实际对象、读取游戏自身的符号、探测实际存在的接口。AI 提供了几种看似可行的方法,但我通过开始摆弄 UE4SS 开发者控制台来了解更多信息后,发现这些方法都被舍弃了:AddLevel 在此版本中不存在、GetLevel() 不在该组件上、GetOwnerPlayerUId 根本不存在。这些要么是 AI 的幻觉,要么是不准确的假设,被测试排除了。
- 我进行了所有测试。 这个模组已经在我正在和朋友一起游玩的 Windows 专用服务器上运行了。
- AI 不止一次犯错。 修正来自日志和实时测试,而不是和聊天机器人争辩。上面关于 LoopAsync 的发现是在一个真实服务器上通过排除法得出的,之前的一个错误理论被证伪。
如果 AI 辅助的模组不是你的菜,这完全合理——我宁愿你现在知道,而不是以后才发现。我一直想做模组、做自己的软件和游戏,但阅读障碍一直让编码成为一项挑战。
许可协议
你可以随意使用。欢迎注明出处,但不强制要求。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。