I created a custom actor component to put on my characters (both player and npcs). I put it on my player and on an npc of mine. Then, I set the properties in the blueprints.
The specific property I’m talking about is an array of a custom struct, where the struct contains 2 properties: (1) TSubclassOf MyType, and (2) a map from a custom enum to another custom struct.
On the player everything is working, but on the npc the data is missing; I’ve put a breakpoint in InitializeComponent(), and I can see the data is missing (it is there when I press compile on the editor, just not when starting the game).
The weird thing is - the array items are actually there; but they are empty; it’s as if the engine is having problem serializing and deserializing my custom properties.
As far as I know, objects that are placed in the world are duplicated, unlike my player which is spawned, and that is the only reason I can think why the npcs aren’t working and the player is.
But I have no idea where or how to debug this to find the problem!
obviously, there is USTRUCT, UCLASS and UPROPERTY on any struct class and property
After writing this I had the idea to try and spawn an npc in blueprints, in runtime, to check my theory about duplicating. I did, and I was right; spawning the same npc in blueprints works.