KawaiiPhysics 1.18(UE 5.1)
仅供模组制作者使用:这是用于制作《幻兽帕鲁》模组的 Unreal Engine 插件,不是可直接安装到游戏中的模组。面向《幻兽帕鲁》0.6.0,为 UE 5.1 提供 KawaiiPhysics 1.18 预编译版本。
玩家接近满级时,战利品掉落率会逐渐提高:默认从75级开始递增,到80级达到2倍。服务器端运行,客户端无需安装;需要 UE4SS,Linux 专用服务器还需使用指定的 GLIBC 2.28 UE4SS 构建。支持配置参考玩家、掉落倍率及是否影响采集。
游戏后期,击杀80级帕鲁和击杀20级帕鲁的掉落率相同。本 Mod 会参考玩家等级,在玩家接近满级时逐渐提高掉落率。
这种递增是有意设计的:如果到了80级才突然让战利品翻倍,那么79级时玩家什么也感受不到,80级时又会一下子得到全部增益。逐步递增会把增益分摊到最后五个等级。
服务器端运行,客户端无需安装。
本 Mod 使用纯 Lua,由专用服务器上的 UE4SS 加载。PC、Xbox 和 PlayStation 玩家都能获得相同效果,无需修改客户端文件。
已在原生 Linux 专用服务器上进行生产环境测试,使用的是GLIBC 2.28 UE4SS 构建。该页面提供 Linux 环境运行所需组件,因此这里将其列为前置条件。Windows 专用服务器可使用官方 UE4SS。
测试环境:Palworld v1.0.2.101103、UE4SS 3.0.1、原生 Linux(BisectHosting)。
每30秒,Mod 会读取参考玩家的等级,并将对应的掉落率写入 PalOptionSubsystem.OptionWorldSettings.EnemyDropItemRate。
默认设置如下:
玩家等级 倍率
74级及以下 1.0倍
75级 1.0倍
76级 1.2倍
77级 1.4倍
78级 1.6倍
79级 1.8倍
80级及以上 2.0倍
为什么参考玩家等级,而不是被击败的帕鲁等级? 本 Mod 不会钩取击杀事件,只调整一个全局设置。之所以可行,是因为 PalLevelScaling 会将野生帕鲁等级设为附近玩家的等级,因此掉落加成可以跟随实际遭遇的帕鲁变化,而且无需为每次击杀额外处理。
如果没有运行 PalLevelScaling,加成会应用于所有帕鲁,包括起始区域的低等级帕鲁。
服务器停止运行时,将文件放入以下目录:
ue4ss/Mods/PalLootScaling/
|- enabled.txt <- 空文件,但必须存在
|- Scripts/
|- main.lua
|- config.lua
启动后,在 UE4SS.log 中确认出现以下内容:
Loaded; enabled=true, ramp=75-80, maxMultiplier=2.00, ...
Tick scheduled every 30s via ExecuteInGameThreadWithDelay
第二行尤其重要。 如果没有出现,说明 Mod 已加载,但不会执行;请参阅下文的调度说明。
所有设置都在 Scripts/config.lua 中:
modEnabled true 启用或关闭 Mod
bonusStartLevel 75 递增起始等级(此等级仍为1.0倍)
bonusFullLevel 80 达到完整倍率的等级
lootMultiplier 2.0 递增顶端的倍率
referencePlayer "lowest" 决定等级的玩家,见下文
scaleEnemyDrops true 影响击败帕鲁的掉落
scaleCollectionDrops false 影响资源采集
maximumRate 10.0 安全上限,写入值不会超过此数
checkIntervalSeconds 30 重新计算的间隔秒数
logChanges true 记录每次倍率变化
logDiagnostics true 记录参考等级和递增情况
referencePlayer——掉落率是全局设置,因此需要指定由哪位玩家的等级决定:
"lowest":使用在线玩家中的最低等级。整个队伍都达到相应等级后才会获得加成。此为默认值。"highest":使用在线玩家中的最高等级。一位高等级玩家即可提高全队的掉落加成。默认采用 "lowest",以便与 PalLevelScaling 保持一致;该 Mod 也依据在线玩家中等级最低者调整生成帕鲁的等级。两者设置一致时,掉落加成会对应实际生成的帕鲁。若希望由资深玩家决定进度,可将两个 Mod 都切换为 "highest"。
bonusStartLevel 设为 60。lootMultiplier 设为 3.0(仍受 maximumRate 限制)。bonusStartLevel 设为 79,bonusFullLevel 设为 80。scaleCollectionDrops 设为 true。Baseline PalOptionSubsystem.OptionWorldSettings.EnemyDropItemRate=1.00
EnemyDropItemRate 1.00 -> 2.00
Bonus 2.00x; referenceLevel=80 (highest of 1 player(s)), ramp=75-80
第一行记录服务器原始值,该值会在首次运行时保存。如果日志中没有这些内容,说明 Mod 没有生效,即使日志显示了“Loaded”也是如此。
倍率是全局设置,不按玩家区分。 这是世界设置。若要让一名玩家获得2.0倍、另一名玩家获得1.0倍,就必须钩取每一次击杀,代价会高得多。
原始值由重启恢复,而不是由 Mod 恢复。 如果在倍率已提高时禁用 Mod,倍率会保持不变,直到服务器重启。
不影响首领掉落或宝箱奖励。 本 Mod 只影响 EnemyDropItemRate,以及可选的采集掉落。
本 Mod 曾因调度机制问题而完全不运行,因此值得特别说明。 并非所有 UE4SS 调度机制都会在 Linux 构建中触发:
RegisterHook 可用
ExecuteInGameThread 可用
ExecuteInGameThreadWithDelay 可用,且按时执行
ExecuteWithDelay 永不触发
LoopAsync 永不触发
旧版本优先尝试 LoopAsync。它会加载,并在日志中写入“Loaded; enabled=true...”,但一次循环也不会运行,每次启动都如此。Palworld 自然掉落率的波动范围很大,因此游戏过程中很难察觉这一问题。
当前版本会优先尝试 ExecuteInGameThreadWithDelay,并在日志中说明使用了哪种机制。如果机制再次变化,日志会显示出来,而不会静默失效。
详细说明和解决方法见 UE4SS Linux 构建页面。
作者:prado1506。
完整源代码、技术说明和问题追踪页面:
github.com/prado1506/palworld-PalLootScaling
本 Mod 属于一组在原生 Linux 专用服务器上验证过的服务器端 Palworld Mod。它们依赖的加载器见此页面。
许可证与转载限制: 提供的资料未说明许可证或转载限制。
前往 N 网打开所选文件。安装与下载要求以原作者及平台说明为准。
<!-- aoe-mods-source:nexusmods:palworld:5398 -->