[Crash on Load]: ActorComponent mirroring Interface functions.

I think I may have solved it, but I have no idea exactly how.
I have the following interfaces…

BPI_Skill

BPI_SkillUser

I then have the following Actors implementing BPI_Skill

BP_SkillForm_Bullet

BP_SkillForm_Explosion

BP_SkillForm_Dash

BP_SkillForm_Meditation

BP_SkillForm_Wall

Many other systems use BPI_Skill and BPI_SkillUser variables in their Blueprints. The BPI_SkillUser also has several Structs that contain arrays of BPI_Skill assets.

The problem SEEMS to have been that BPI_Skill needed to be compiled and have a Struct pin plugged into a break (no idea how it stopped being hooked up in the first place since all of the other Struct pins were still plugged in. Not like they ALL unhooked…). This caused me to have to recompile and make minor adjustments (rehooking pins, etc.) in every SkillForm actor as well as every Blueprint Function Library function that dealt with skills.

I closed the editor, restarted it, and everything worked fine. I could open up the assets that were giving me issues before I had reverted. After ensuring that every possible asset had been recompiled and saved, I then re-attempted the creation of a player pawn that implemented BPI_SkillUser with a BP_SkillUser component. I created it one at a time, first with the interface, and then added the component. Each time, the editor opened up without a hitch and I was able to open and edit my player pawn Blueprint.

This has been a re-occurring problem whereby changes in one place cause random other locations to need a re-compile and/or re-hooking of pins (and sometimes the recompiling will require re-hooking of pins too). Then when I attempt to open an asset, the entire engine will crash because something used or referenced by that asset isn’t compiled. It’s a serious problem because I am not easily notified of when things aren’t compiling somewhere. Consequently, I’ll be unable to determine why the engine suddenly crashes. I had to completely close down a previous project for the exact same reason (using GitHub this time around saved me, but…ouch).