Find and load assets implementing an interface

Hi, I’m trying to create a system where gameplay modifiers implementing a certain interface can be found and loaded at runtime.

My initial approach was to create a primary data asset for finding such modifiers and use derived blueprints which implement given interface. While the assets are found via the asset manager, calling the interface methods on them have no effect.
My first guess was there was some problem with using blueprint interfaces, so I switched the interface to c++ with the same effect.

My second approach was to remove the interface entirely and add methods to the primary data asset from which my blueprints are derived. The effect was the same - blueprint overridden methods were not called. Seems like you can’t call anything on a data asset.

Third approach consisted of ditching blueprints and create the modifier classes in c++. Now I can’t get the asset manager to find them (I suspect that’s because you have to specify a directory to look for and c++ are not in the normal content folder hierarchy).

So now I’m at a point where I don’t know how to proceed without some awful hacks. Does anyone know how to solve this problem?