Circular dependency confusion

This issue is fairly hard to explain, so let me know if I need to provide more information.

  1. We have an “instruction panel” bp class. This class has a child actor of “button” bp class.

  2. The “button” class eventually references the playercharacter via some crazy chain of dependencies (just found this in the reference viewer)

  3. The moment I add an “instruction panel” reference to playercharacter bp, any change to game instance breaks the “button” bp class after an engine restart.

  4. This is the error message we see upon opening the “button” blueprint (in visual studio output):
    “Warning Pasted node K2Node_Event_xxxx conflicted with K2Node_Event_xxxx and was replaced as a Custom Event!”
    Essentially, all of events inside of the button class are replaced. For example, Event Begin Play is replaced with an event called “Recieved_BeginPlay1”.

  5. We’ve tried remaking the button class, deleting intermediate, re-adding the original events, etc. We just realized that this is probably a circular dependency issue.

Also, once the “button” class is in this broken state, the engine crashes when we open the reference viewer on anything related to the blueprint.

We are currently getting away with other circular dependencies in our blueprints. Any ideas?

Epic made the circular dependency framework quite robust around 4.10, I even remember (albeit vaguely) a post mildly encouraging people to break it. You must have found a way to do it. Congratulations ;p

Rather than dealing with some crazy chain of dependencies, could you perhaps rely more on the Event Dispatchers?