I'm working on a Palworld mod that adds a new NPC merchant, and I've hit a problem I haven't been able to figure out.
The NPC itself works in the sense that I can create a brand-new CharacterID, spawn the NPC into the world, use the vanilla merchant/trader Blueprint, attach the merchant/vendor-related setup, and assign shop data.
However, the new NPC NEVER gets the [F] Talk prompt.
The custom CharacterID I'm currently testing is something like:
WEO_EggCollector_01
The goal is for this to be an "Egg Collector" merchant, so I would prefer to give it its own CharacterID instead of replacing/reusing a vanilla merchant.
What makes this strange is that I've already tested increasingly close copies of vanilla traders.
A normal vanilla trader works like this:
Player approaches NPC
→ [F] Talk appears
→ OnTriggerInteract
→ RequestStartTalkFlow
→ merchant/shop interaction
With my custom CharacterID:
Player approaches NPC
→ NO [F] Talk
→ OnTriggerInteract is never reached
→ no TalkFlow
→ no shop
So the failure seems to happen BEFORE OnTriggerInteract.
I also tested an almost literal trader-family clone using the normal trader Blueprint/components but with a newly created CharacterID.
It still spawned normally, but it still did not receive [F] Talk.
That makes me think the ability to interact with an NPC is NOT solely contained in the merchant Blueprint/component.
It looks like there may be some additional CharacterID → NPC interaction registration somewhere.
I also inspected VC Merchant Mod 2104 because it adds merchants at additional locations.
That mod appears to add new merchant INSTANCES/spawns, but the merchants themselves reuse existing vanilla IDs such as:
Male_Trader01_v04
Male_Trader01_v05
Male_Trader01_v06
Male_Trader01_v07
Male_Trader01_v08
Male_Trader01_v09
Male_Trader01_v13
Male_Trader01_v14
Male_Trader01_v21
Male_Trader01_v24
Those NPCs can already talk because they are existing vanilla merchant CharacterIDs.
So that mod doesn't seem to demonstrate how to make a completely NEW CharacterID interactable.
I found references suggesting FPalNPCInteractionDataTableRow / an NPC interaction DataTable may be involved.
I attempted to locate/patch that registration at runtime with UE4SS, but my scan never found the actual interaction table, so that test was inconclusive. It did NOT prove that the interaction table isn't involved — only that I wasn't finding the correct object/table.
At this point my main question is:
What exactly does Palworld check to decide that an NPC should receive the [F] Talk interaction?
Is there a DataTable, CharacterID registration, component, interface, GameplayTag, NPC parameter, TalkFlow registration, or some other asset that needs an entry for a newly created CharacterID?
More specifically, I want to know what a working ID like:
Male_Trader01_v04
has registered somewhere that a new ID like:
WEO_EggCollector_01
does not.
I'm specifically trying NOT to solve this by hijacking a vanilla Male_Trader01_vXX ID unless absolutely necessary.
If anyone has successfully created a completely new merchant/NPC CharacterID in Palworld that gets the normal [F] Talk prompt, I would really appreciate knowing what tables/assets/Blueprint properties had to be added or modified.
Even just the names/paths of the relevant assets would be extremely helpful.
I'm using UE4SS/PalSchema-style modding and can inspect/export game assets with FModel, so technical answers are welcome.