Exposed Struct pin changing to Fallback struct on project load

So I have two Actors, BP_Weapon and BP_Armor that inherit from BP_EquippableItem which has a variable called ItemInfo which is a struct containing all the info of the item. It’s marked Expose on Spawn and Instance Editable. I Spawn the actor and pass the item info in to store on the actor, it also includes the item’s mesh and material so that my inventory is completely data-driven.

It all works. When you equip an item in the inventory screen, it spawns the actor and attaches it to his back socket. However when I save the project and reload it. The Spawn Actor From Class nodes list the item info pin as “Fallback Struct” and the functionality is broken. I have to refresh the node for it to fix it and then it works again. But I have to do this everytime I load the project. Is there something I did wrong? The item struct is called S_ItemMaster and I’ve made changes to it as I went, but it’s hooked into A LOT of things and this is the only spot where it breaks on project load. Here’s a picture of the occurence.

Ugh, ugly.

Is there something I did wrong?

No. Structs behave so much better than they used to but there are still issues. What you describe may happen when you reference an exposed struct and then modify what’s included in the struct. Struct nesting can also be a pain the neck :expressionless:

There is one thing you can try but it’s not guaranteed to work.

  • shut the editor and make a copy of the project
  • open the project copy
  • fix the struct (as you do) - refresh, compile, save all
  • open the struct and make some changes, add a variable
  • save the struct
  • do not save anything else, do not compile
  • quit the project, do not save, reject all prompts, cancel and whatnot
  • open again and see if it works better

If it does, apply it your original project (after making a copy).