Override static function in BP workaround?

Hi,

When creating systems for BP designers, I often give them the opportunity to add their own logic using UObjects.

Let’s say I want the designer to give me a dynamic value to use for AMyActor, but don’t want him to override a “AMyActor” function (for various reasons).

What I typically do in Cpp is I create a UObject “UMyObject” with a function “GetMyValue()” that the designer can override in BP.
The designer will create a “UMyObject” subclass, override “GetMyValue()” and feed the class into AMyActor.

So, whenever I want access to this value, I will have to instantiate “UMyObject” from the specified subclass, maybe store it for later use, and call “GetMyValue()”.

I know it isn’t possible to override a static function in BP, but are there ways to do this without instantiating the UObject?
Or are there more elegant / efficient ways to achieve the same result?

Thank you! :slight_smile: