PalLootScaling——战利品逐步递增,而非骤然跳升

玩家接近满级时,战利品掉落率会逐渐提高:默认从75级开始递增,到80级达到2倍。服务器端运行,客户端无需安装;需要 UE4SS,Linux 专用服务器还需使用指定的 GLIBC 2.28 UE4SS 构建。支持配置参考玩家、掉落倍率及是否影响采集。

0浏览
0下载点击
0点赞
0收藏

关于这个 Mod

PalLootScaling——战利品逐步递增,而非骤然跳升

游戏后期,击杀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,以及可选的采集掉落。

Linux 服务器 Mod 作者须知

本 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 -->