So I have an issue in which interface functions will, upon compilation [frequently, but not always], suddenly drop the connections of pins representing reference variables to these interfaces in objects that implement those interfaces. For example.
InterfaceA, contains Function1 that has an input pin for a reference var of InterfaceA, output pin of boolean.
ComponentA, implements InterfaceA, contains a true implementation of the function and uses the InterfaceA ref var.
ActorA, implements InterfaceA, has ComponentA attached. Implements Function1 simply by plugging in ComponentA’s implementation of Function1.
When I attempted a scaled down version of the situation in a fresh project, I could not replicate the problem; however, in my personal project, (Blueprint only) this issue will resurface frequently while working with any of the involved elements (the interface, its functions, the component, or the Actor that contains the component).
Pictures depicting my current structure can be found in the comments at this link:
In my example, BP_SkillUsingPawn (pawn) and BP_SkillUser (actor component) both implement BPI_SkillUser and BP_SkillUser’s functions are plugged into BP_SkillUsingPawn’s implementations of BPI_SkillUser. Every reference to a BPI_SkillUser as a pin within a BP_SkillUsingPawn or BP_SkillUser function it will cause the pins to disconnect. In this case, I am showing the SpawnSkillActor function which is one of the functions associated with the BPI_SkillUser interface. Perhaps it has something to do with the fact that the Blueprint Interface contains functions that require reference variables to itself?
Every time I compile, I will have to double check whether the pins have become unhooked (happens about 70% of the time). It was/is terribly irritating because since the inputs are reference variables, the objects implementing the interfaces will successfully compile even when nothing is plugged in. Took me over a week to realize the full extent of the issue and track down every single unhooked pin since there is no clear indication of where they are at the time of breaking off. Here are some example pictures… (crashed by the way, when I attempted to save after the compilation in the second image, but that’s more a reference to the above link compared to this one I suppose)