帕鲁生成编辑器与随机化器

帕鲁生成编辑器与随机化器

功能丰富、简单易用的图形界面工具,用于编辑宠物生成点以及高度灵活的随机化器。

实用工具

随机化工具将允许你完全随机化游戏内所有区域的帕鲁生成,让任何游戏允许的生物在任意位置生成。

生成编辑器与随机生成器是一个独立应用程序,用于生成 PAK 文件。

作为 PAK 模组,它会与任何其他修改帕鲁刷新表的 PAK 模组冲突。

Steam 创意工坊 - 预制模组

更新日志 - GitHub 发布页面

感谢 Palworld 模组社区 Discord 提供反馈并帮助我开始这个项目。 我的开发线程

不要使用游戏内置的随机化选项。它会覆盖本模组。

如何使用

  • 确保幻兽帕鲁已更新到最新版本。
  • 下载 ,解压并从任意文件夹运行该应用程序。
  • 可能会弹出一个窗口,你需要浏览并选择《幻兽帕鲁》的安装文件夹。
  • 在应用程序中选择你想要的随机化设置,然后按 '随机化' 按钮。
  • 随机化完成后,你可以选择'保存 PalSchema...'或'保存 PAK...'

保存 帕鲁图鉴

  • 将 ZIP 文件解压到 PalSchema\mods 以安装。
  • 截至撰写本文时,蛋生成修改会导致与 PalSchema 发生崩溃。
  • 删除子文件夹即可卸载。

保存 PAK

  • 将 PAK 文件保存到 Palworld\Pal\Content\Paks(文件名必须以 '_P' 结尾)。
  • 删除 PAK 文件以卸载它。

更多信息。

  • 点击'打开生成编辑器'查看随机化结果,并可手动修改生成点。
  • 更多信息请参见下方。

随机化设置

随机化

点击展开

更改随机化会影响的生成类型。未勾选的框将设为原版生成。

笼中营地、塔楼首领、副本首领等未在此列表中的内容不受影响。

  • 地上世界伙伴:影响所有地牢外的生成,不包括 BOSS。
  • 地下城伙伴:影响地下城内所有怪物刷新,但不包括首领。
  • 地牢首领:影响地牢内的首领怪物。
  • 世界首领:影响地牢外的首领,不包括塔楼首领或团队副本首领。
  • 掠食者:影响掠食者,即在 Feybreak 扩展包中引入的特殊帕鲁首领。
  • 捕食者生成频率:设定捕食者 Boss 的生成频率(原版为 30%)。将根据需要添加“<None>”生成项以调整该频率。
  • 笼子:在敌方营地发现的被锁住的帕鲁笼子。
  • 主世界蛋:在地图周围随机生成的蛋。
  • 任务区域:针对任务生成的出生区域。对该功能进行随机化可能会导致任务无法完成或引发其他错误。
  • 拟态怪:地牢中的几个刷新点只是米莫格(类似宝箱的帕鲁)。此选项用于随机化这些内容。
  • 随机种子:随机生成器用于启动生成过程的“种子”。锁定此项可确保结果一致。

你可以使用这些设置中的不同选项来制作多个 PAK 模组,从而为不同的区域类型设置不同的参数。例如,野外伙伴 vs 野外首领。

只要各模组选择的区域不重叠,就不会出现模组冲突。只需将每个 PAK 模组以不同的文件名应用即可。(别忘了 "_P"。)

区域组类型

点击展开

决定随机化器如何组织每个区域的生成表。

  • 全物种遍布各处:所有可能出现的生物都将有机会在各个区域出现。随机生物群组将被添加,直到所有物种都出现在每个刷新表中。
  • 每个区域的自定义群组数量:设定每个区域中可能出现的怪物群组的确切数量。会用选定的随机群组数量填充每个刷新表。
  • 匹配原版群组数量(每区域):每个区域将拥有与原版相同数量的群组,但会被随机替换。
  • 全局物种替换:原始生成列表中的每个角色将与一个随机选择匹配,并在每个生成表中进行一对一替换。该机制仅依赖于每组中的第一个帕鲁,并将其与一个随机组配对。
  • 无随机化:不对队伍进行随机化,所选选项将作为修改原版生成列表的过滤器。
  • 以概率添加到原版:随机化结果会附加到原版刷怪列表中。非原版组生成的几率即为指定的百分比。
  • 合并原版:随机结果将与原版生成群组合并,使每个群组包含的原版生成物概率与原版大致相同。这会导致原版生成物周围随机出现伙伴。警告!这种方式会轻易为群组增加大量额外伙伴,并为每个首领生成点添加额外首领。
  • 在添加/合并前过滤原版内容:启用后,在添加或合并到生成列表之前,原版生成列表将像“无随机化”一样被过滤。

如果你使用较低的“自定义群系数量”、“匹配原版”或“物种互换”设置,可能无法保证所有可能的生物生成点至少在一个位置出现。

这是因为可能的生成群组数量少于可能的情况。

所有物种遍布各处将确保所有可能性得以实现。

生成组设置

点击展开

决定随机化生成何种类型的生成组。

  • 原版基础:生成与原版生成表相似的群组。将尽可能匹配现有的原版群组。
  • 随机:创建完全随机的队伍,将各种随机帕鲁组合在一起。
  • 随机化分组规模:将分组中的帕鲁数量设置为在所选最小值和最大值之间的随机值。
  • 多个世界首领生成:通常,世界首领只会有一个队伍,因此地图上的图标始终与实际首领一致。启用此选项后,同一世界地点将出现多个随机生成的首领。
  • BOSS 群体全是 BOSS:通常情况下,BOSS 群体只会包含一只 BOSS 帕鲁,可能还会伴有几只普通帕鲁。若勾选此项,BOSS 群体将由多个 BOSS 组成。
  • 限制为原版:使区域仅包含原版中该区域出现的伙伴。可用于让区域包含仅由原版角色组成的随机群体。
  • 稀有帕鲁的最低等级:将稀有度达到一定等级或以上的帕鲁的最低等级设置为所选数值。
  • 稀有(9+)帕鲁仅限 Boss 出现:稀有度达到 9 或以上的帕鲁将只会作为 Boss 生成,且仅出现在 Boss 位置。(某些设置下可能导致它们完全无法生成。请启用“所有物种遍布”配合地下城 Boss 功能,或使用“地面 Boss 多重生成组”设置,以确保在此设定下所有帕鲁都能出现。)
  • 稀有(8+)帕鲁总是单独出现:稀有度为 8 或以上的帕鲁将始终单独组成一个群体,覆盖已选择的群体设置。
  • 允许帕鲁/人类混合队伍:刷怪队伍将有可能同时包含帕鲁和人类。禁用此功能可让人类和帕鲁保持独立队伍。
  • 飞行帕鲁理智:高飞型帕鲁只会与其他高飞型帕鲁组队。否则,地面上的帕鲁可能与空中的帕鲁组队,造成尴尬的情况。
  • 非敌对人类理智:防止非敌对人类(如商人或警察)与敌对伙伴/人类或 Boss 被归为一组。这将避免在反击敌对角色时被迫进入通缉状态。
  • Bosses Everywhere:Bosses will spawn on the overworld at the specified percentage rate in non-boss areas. This appends a boss spawn list to each non-boss area using all settings exactly like a boss area. This means bosses could spawn anywhere, not just at the designated boss locations.
  • 遍地首领(地下城):地下城中处处可见首领。普通的“遍地首领”设置仅影响主世界。
  • 首领蛋:允许世界中的蛋以指定概率生成首领。其运作方式与“遍地首领”类似。
  • 限制捕食者:使捕食者首领的生成列表只包含捕食者。同时,即使某些捕食者未被启用为可能的生成物种,也会使它们作为捕食者列表的可能生成出现。
  • 允许笼中人:关闭此选项可防止人类出现在笼子中。
  • 最大笼子稀有度:将阻止稀有度高于所选数字的帕鲁在笼子中出现。

帕鲁稀有度列表

概率

点击展开

帕鲁生成几率由加权概率决定,并取决于相应生成组的权重。某个组的权重越高,其生成几率就越大。

  • 随机重量范围:所有帕鲁都会被赋予两个选定数字之间的随机重量。这会让游戏完全混乱,生成毫无平衡性可言。一只强大的传说帕鲁可能与一只弱小的起始区域帕鲁一样容易生成。
  • 稀有度权重:根据帕鲁内部稀有度数值设定各组生成权重。这将使传说级帕鲁比弱小帕鲁更罕见地出现。
  • 均衡全局稀有度:将会重新排列所有区域的生成组全局列表,使它们之间的稀有度构成保持一致。

稀有权重进阶:

点击展开
  • 1-10, 20:这些是分别为每个稀有度值设置的权重。将权重设为 0 会移除该稀有度的所有帕鲁作为可能的生成物。
  • 人类稀有度:设置人类的稀有度,游戏中默认为 1。
  • 人类 BOSS:设置人类 BOSS 的稀有度,通常为 1。
  • 将权重转换为百分比:将指定权重的组群设为以该权重作为百分比概率生成。例如,权重为 1 的组群将有 1% 的生成概率。所有权重相近的组群将被合并并缩放至 1% 的生成概率,该过程会重复应用于 1%、5%、10% 和 25% 的权重值,而更高权重的组群则缩放至剩余 59% 的空间。以下权重值将对应指定百分比:1%:1-4。5%:5-9,10%:10-15,25%:16-30,59%:31 及以上
  • 群体重量模式:决定如何为多个帕鲁群体设置重量。
点击展开
  • 重量总和/平均值/最小值/最大值:对队伍中伙伴的重量进行简单运算。
  • 稀有度平均值:获取平均稀有度,然后选择与该稀有度对应的权重。四舍五入将简单取整到最接近的稀有度值。分数混合将对分数稀有度进行权重混合,混合 10-20 模式会在 1-10 之间四舍五入,并在 10-20 之间进行混合。
  • 人类重量:设定普通非攻击性人类的重量倍数。
  • 人类攻击权重:影响好斗人类重量的倍数。
  • 夜间重量倍率:乘以夜间生成的重量。如果数值较高,可确保昼行帕鲁仅在白天生成,夜行帕鲁在夜晚生成。若希望白天帕鲁也有机会在夜晚生成,可将此数值降低至 1-10 之间的小数值。
  • 整数溢出修复:如果某个区域内的所有权重总和超过有符号 32 位整数的最大值,将导致游戏中生成概率出现错误。在正常设置下发生这种情况的可能性非常低,但为了以防万一,我还是包含了一个修复程序。
概率溢出修复

按比例缩放将直接把所有权重缩放至允许的总和范围内。仅夜间模式会优先缩放夜间权重,而动态模式则尝试在不改变概率的情况下缩放白天权重,若无法实现则回退至其他两种方法。

帕鲁稀有度列表

可能的帕鲁出生点

点击展开

决定哪些类型的帕鲁或人类可能生成。未勾选的项目不会出现在任何生成表中。

  • 伙伴:普通伙伴。不包括常规的首领伙伴。
  • 人类(敌对):敌对人类,例如辛迪加、自由巴勒联盟、永恒火焰殉道者兄弟会等。
  • 警察:受到挑衅时会变得具有攻击性的警察。
  • 守卫:出现在城市入口的守卫、保镖等。只有在被挑衅时才会攻击。
  • 物品商人:在地图各处通常可见的出售各种物品的可互动商人。
  • 帕鲁商人:各种可互动的商人,出售帕鲁。
  • 布朗医生:一位能为你的帕鲁进行手术的特殊医生。
  • 普通首领:普通首领帕鲁(阿尔法)将作为可能的首领刷新点加入。
  • 高塔 Boss:高塔中出现的 Boss,例如 Axel & Orserk、Lily & Lyleen、Zoe & Grizzbolt 等,将被添加为可能出现的 Boss。非 Alpha 版本也将作为普通帕鲁生成点添加(截至撰写时,仅包括 Zoe & Grizzbolt)。
  • 突袭首领:通常用于突袭的帕鲁的突袭版本将被添加为可能的首领生成点。
  • 捕食者:在 Feybreak 中加入的捕食者 Boss 现在可作为 Boss 生成。
  • 人类 BOSS:在 Feybreak 更新中加入的特殊人类 BOSS,现在作为可能的 BOSS 生成。
  • 泰拉瑞亚怪物:在“泰拉瑞亚之潮”中新增的怪物。例如:洞穴蝙蝠、史莱姆、附魔剑、恶魔眼等。
  • 泰拉瑞亚 Boss:潮汐泰拉瑞亚中新增的 Boss 怪物。这只是克苏鲁之眼(阿尔法版)。
  • 塔楼人类:来自塔楼的 BOSS 级人类,但为单人且无帕鲁(例如:佐伊、维克托、马库斯、萨亚等)。截至撰写时,仅佐伊完整实装。其他人缺少名称,比约恩的骨架绑定未完成,但其他功能正常。

附加设置

点击展开

等级调整:对所有生成生物的等级进行乘法运算。Boss 或非 Boss 设置将基于每只帕鲁个体单独应用。在包含 Boss 和普通帕鲁的群体中,Boss 设置仅影响实际作为 Boss 的帕鲁。

等级上限:生成的生物等级将被限制在此等级。除非你清楚自己在做什么,否则不要将这一数值设得高于游戏的等级上限。

缩放模式

点击展开

决定等级缩放设置的生效方式。基准等级取自对应区域所有原版等级的加权平均值。

  • 全范围:缩放每个刷新点的最小和最大等级。效果大致相当于游戏内的设置。
  • 最大等级:仅缩放最高等级。
  • 最低等级:仅缩放最低等级。
  • 平均等级:根据每个刷怪点的平均等级进行调整,同时保持等级范围不变。
  • 最大化范围:调整平均值并使等级范围在保持该平均值的情况下达到最大可能。非常混乱。
  • 扩展最小值/最大值:调整平均值并扩大范围,同时保持最大值或最小值不变。哪个值保持不变取决于调整是增大还是减小平均值。例如,你可以将平均等级加倍,同时保持最低等级不变。
  • 随机:将所有刷怪的最小和最大等级设置为所选数值,带来完全不可预测的混乱。

带/首领等级缩放:与首领一同生成的额外帕鲁,其等级将按此比例设定为首领等级的对应值。

启用原版 BOSS 等级:上述缩放值通常不会应用于原版生成表中已有的原版分组。启用此选项将强制影响原版 BOSS 分组中的帕鲁。此功能同样适用于无随机化模式。如果你正在调整 BOSS 等级缩放值以对所有 BOSS 分组施加自定义效果,建议启用此选项。

个体数量倍率:以比游戏内选项更灵活的方式,乘以刷新个体的总数量。

基础数量:设定一个基础数量,用于随机组的数量缩放。

计数与首帕最小值/最大值:缩放后,将数值限制在所选范围内。首帕数值仅适用于组中的第一个帕。

夜行帕鲁仅夜间出现:选中此选项后,游戏数据中标记为"夜行性"的帕鲁将仅出现在夜晚,其他帕鲁则仅在白天出现。除基础世界刷新外,不建议在其他情况下设置此选项。

蛋刷新时间:在大地图上收集蛋后,新蛋出现所需的时间。原版游戏中为 3 小时。

自动恢复设置:将在打开和关闭应用程序之间自动保存选项。

生成日志文本文件:在可执行文件旁生成一个日志文本文件,记录上次随机化的结果。如果应用程序从无法访问的位置运行,例如直接从压缩包文件中运行,则此功能无效。该功能已弃用,因为您现在可以直接从生成编辑器中查看结果。

保存模板/应用模板:允许将所有选定的随机化设置保存为 JSON 文件并加载。

我建议在生成后打开帕鲁生成编辑器,以确认是否获得了你想要的结果。你可以取消初始弹窗,改从编辑器中直接保存 PAK 文件。

所有随机生成内容的 CSV/JSON 文件日志会自动保存到 **%LocalAppData%\Palworld-Randomizer\Log**。

一些设置会引用稀有度编号,这是每只帕鲁的内部属性,范围在 1 到 20 之间。以下是帕鲁稀有度的快速参考:

帕鲁稀有度列表

帕鲁生成编辑器

生成编辑器截图

点击'打开生成编辑器'查看随机生成的结果或手动编辑生成表。

  • 从左侧列表中选择一个刷新表。与原始版本数值不同的区域将用星号(*)标记。

  • 每个区域的刷新表由一系列刷新组组成,每个刷新组包含一个或多个角色。

  • 选择 ➕新建群组 或 ➖删除群组,即可在列表末尾添加或删除一个生成群组。

  • 🎲: 生成组出现的权重。生成表使用加权平均来确定生成概率。数值越高,该组生成的可能性越大。

  • 🌙: 该刷怪组仅在夜晚出现,意味着只会在夜间生成。

  • (红色恶魔状符号): 该帕鲁是一只头目(即 BOSS),意味着它比普通帕鲁体型更大、力量更强,且永远不会成为闪光帕鲁。所有普通帕鲁在游戏数据中均对应一个头目(BOSS)版本。

生成组编辑截图

将鼠标悬停在一个生成组上,会出现各种按钮,用于添加/移除帕鲁或更改顺序。

点击任意黑色方块以更改数值。点击名称将激活带有自动补全功能的下拉菜单。

右键菜单截图

右键点击刷怪组或帕鲁将弹出一个包含更多选项的上下文菜单,其中包括剪切/复制/粘贴功能。

这是您可以切换 Boss 值和 🌙 仅夜间设置的地方。

在群体上方的区域右键点击伙伴的头部,可调出整个群体的右键菜单。(右键点击上方带有 🎲负重/🌙夜间专属的区域。)

文件菜单截图

使用窗口左上角的“文件”菜单将当前更改保存为 PAK 模组。

同时支持加载先前保存的 PAK 文件。

此外,如果您希望在外部编辑器中编辑数据,还可以使用 CSV 格式进行保存和加载。

💡新功能:现在你可以为PalSchema加载和保存文件。

要安装它,请将 ZIP 文件解压到 PalSchema\mods 文件夹中。

你可以加载包含 PalSchema JSON 文件的 ZIP 文件,或者加载单个 JSON 文件。

备份 CSV 文件在手动编辑后会自动保存到 **%LocalAppData%\Palworld-Randomizer\Backups**。

笼子编辑

⚠️ 请谨慎使用。有报告称笼子编辑/随机化会导致崩溃。在找到崩溃原因之前,我建议不要使用此功能。

生成编辑器也可用于编辑笼子中出现的帕鲁生成点。它们位于生成列表底部,并以"Cage."为前缀。

更改“仅夜间”、“帕鲁计数”或在一组中添加多个帕鲁将不会对笼子生成产生影响。此外,权重值是否有任何影响尚未经过测试。

警告:在笼子中添加 Boss 刷新会导致敌人营地永久消失的 Bug。

游戏会记录当前哪些帕鲁在笼子里,因此这个模组不会影响已存在的笼内帕鲁,除非你救出它们并等待它们重新刷新。

主世界蛋编辑

在地面地图上找到的蛋的生成列表可以通过生成编辑器编辑。它们的名称以"palegg."开头。

就像笼子一样,更改“仅夜间”、帕鲁数量或将多个帕鲁添加到一组中不会产生效果。此外,修改帕鲁等级也不会有作用。

警告:将主世界蛋设置为人类将导致永久消失的 bug。

这不会影响地图上现有的蛋,你仍需收集它们并等待其重新生成。

主设置窗口中的“蛋重生时间”设置将应用于从生成编辑器保存的 PAK 文件。(仅适用于有其他变化的生成列表。)

开发者信息

这个应用程序完全由我使用 Visual Studio 用 C# 编写。

它是免费且开源的:GitHub 仓库

它使用UAssetAPICUE4Parse来读取和修改虚幻引擎资产数据。然而,UAssetAPI 并未完全支持这些文件,我不得不逆向解析刷怪表的格式并添加自定义代码。

PAK 文件由UnrealPak管理,应用程序使用的所有文件都存储在 **%LocalAppData%\Palworld-Randomizer** 中。

我使用了FModel来提取所有游戏资源,并用UE4SS生成了 usmap 文件。

这是我第一次用 C# 和 WPF 制作大型项目,结果它比我想象的要庞大得多。😅

我最初打算做一个完整的随机化模组,随机化物品生成、商店等内容。如果可能的话,我不确定要怎么实现。用现有的有限模组工具来制作这个非常困难。也许可以做成一个 Lua 模组?

开发过程中,我收到了很多反馈,说非常需要一个生成编辑器,所以我最终朝这个方向努力了。