
执行自定义NPC助手
这个lua脚本是一个实用工具,允许自定义NPC展示自定义的伙伴技能。[模组制作者资源,除非你知道你在做什么]
查看大图[size=3]EXEC Custom NPC Helper[/size]
[size=3]作者:ExecutiveE33[/size]
[size=3]版本 1.0[/size]
[size=3]最后更新:2026/9/15[/size]
[center][b]喜欢我的作品吗?可以考虑捐赠以帮助我继续开发。[/b][/center]
[center][b][url=https://ko-fi.com/executivee33][/url][url=https://ko-fi.com/executivee33][img]https://staticdelivery.nexusmods.com/mods/6063/images/4546/4546-1786753886-1485426.png[/img][/url][/b][/center]
[b][size=6]更新日志[/size][/b]
1.0 - 2026/9/15 - 首次发布
[b][size=6]描述[/size][/b]
这个 Lua 脚本模组将允许自定义 NPC 通过使用 Palworld 内置函数来显示其伙伴技能名称(修复“None”bug)。它旨在与 PalSchema 自定义 NPC 模组一起使用,单独使用不起任何作用。
问题:自定义 NPC 的伙伴技能名称显示为“None”。
根本原因:UPalUIUtility.GetPartnerSkillName(CharacterID) 会
通过角色的 DataTable 行来查找其声明的伙伴技能。NPC 本身
并不原生拥有 PalPartnerSkillComponent(只有帕鲁拥有),因此据信
该函数存在内联返回“None”,完全绕过了通过
OverridePartnerSkillNameTextID 设置的任何覆盖值。
修复:直接 hook GetPartnerSkillName(在一处修复所有调用
它的 UI 界面——包括野外 HUD 和队伍/帕鲁终端详情面板)。
对于我们明确知道属于自己自定义 NPC 的 CharacterID,通过
UPalMasterDataTablesUtility.GetLocalizedText 使用已确认的
“SkillName”类别(16 / DT_SkillNameText)以及该 NPC 的
OverridePartnerSkillNameTextID 字段中已设置的 TextId 来解析
真实名称。不在该列表中的任何内容都完全不受影响——原版 NPC 保留
它们真实的“None”。
[b][size=6]安装说明[/size][/b]
这是一个 Lua 脚本模组,旨在与 PalSchema 自定义 NPC 模组一起使用。
它使用 PalSchema 0.6.7 以及相关的 UE4SS 实验性分支开发。
首先,安装 PalSchema 和 UE4SS(启用 Lua/实验性脚本支持),
使用以下说明:
https://okaetsu.github.io/PalSchema/docs/installation
接下来,解压后的模组文件夹(EXEC_CustomNPC_Helper)应放入
.../Pal/Binaries/Win64/ue4ss/Mods/
[size=6][b]使用方法[/b][/size]
1) 使用我的指南(https://www.nexusmods.com/palworld/mods/2826)或 Palworld Modding Discord 上提供的更完整的指南(链接见 https://pwmodding.wiki/)创建一个自定义 NPC。
2) 为该 NPC 设置 PalSchema json 文件。这应在“PalSchema/mods/MyMod/raw/”文件夹中完成。
[img]https://staticdelivery.nexusmods.com/mods/6063/images/5668/5668-1789526572-750443015.png[/img]
注意红框。必须为伙伴技能名称执行此操作。(奇怪的是,描述覆盖可以正常工作)
然后在位于 PalSchema/mods/MyMod/translations/global/" 的本地化 json 中,确保为你正在创建的伙伴技能分配了一个名称。
[img]https://staticdelivery.nexusmods.com/mods/6063/images/5668/5668-1789526577-256349233.png[/img]
对 NPC 满意后,我们可以转到本模组的 main.lua。
用你选择的编辑器打开本模组的 main.lua 文档。
(我更喜欢 Visual Studio Code,但你也可以使用普通的记事本)。
找到约第 32 行附近的“CustomPartnerSkillNameOverrides”列表。
[img]https://staticdelivery.nexusmods.com/mods/6063/images/5668/5668-1789526921-1172134051.png[/img]
你必须添加上述你的自定义 NPC CharacterID 以及你创建的 OverridePartnerSkillNameTextID。
就这么简单。如果你的 NPC 和伙伴技能已在 PalSchema 文件中正确设置,那么一切应该都能在游戏中正常工作。
[img]https://staticdelivery.nexusmods.com/mods/6063/images/5668/5668-1789527246-313263281.png[/img]
[b][size=6]要求[/size][/b]
- UE4SS 实验性分支
- 如果打算实际使用本模组的功能,则大概需要 PalSchema。
[b][size=6]致谢[/size][/b]
[color=#D4D4D8][Discord][/color]
[color=#D4D4D8]sg_epk.jtk93.x29.jp[/color]
[color=#D4D4D8] - 感谢你分享关于自定义 NPC 伙伴技能的知识。[/color]
[color=#D4D4D8][b][size=6]免责声明:[/size][/b]
未经授权,本模组不得发布在 Steam 上,除非使用名为 ExecutiveE33 的 Steam 账号发布。[/color]
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。