Referencing interface implementors in variable

Trying to wrap my head around interfaces:

I made an IActivateable BP interface with a single function, Activate.

I’ve got a Button blueprint that has a publicly editable variable called Targets of an array of IActivateable, and when the Buttonis triggered it foreaches over the array and calls Activateon each item.

I’ve got a LightFixture blueprint that implements IActivateable, responds to the Activateevent by toggling a pointlight component’s intensity.

I drag a Buttonand a LightFixtureinto my level. I select the Button and see Targets is empty. I click the + and get no options for possible selections. Shouldn’t my LightFixture instance appear? If I change the type of my Targets array to LightFixture it pops right up.

What am I misunderstanding here? I thought the point of interfaces was polymorphism? From looking at tutorials it looks like every use of BP interfaces involves a cast attempt on a generic object :confused:

So from discussion on IRC it seems like the details panel just don’t play ball with things that aren’t explicitly Actors.

My fix in this case is to implement my interface on an otherwise empty Actor subclass, and then subclass that instead of implementing the interface directly. Super weird feeling but at least it works.