As the title says, whenever I call my event function inside of PostEditChangeProperty (or another function called by it) the event doesn’t get triggered in blueprint.
I’ve debugged through my code and see that when changing a property the code executes the call, LOGs just fine but the blueprint event doesn’t fire. Same behaviour happens when using BlueprintNativeEvent.
Firing the event from OnConstruction works just fine though.
I tried created an Actor class with a BlueprintImplementableEvent called on PostEditChangeProperty. The function was called when a blueprint of my class was added to the viewport / compiled as expected. If possible, could you provide additional setup details or a small sample project that reproduces the issue you’re seeing?
This is an old issue, but it seems to still be a issue that I just ran into. I had the same code as Cafeoh and also didn’t see the BP event execute when changing properites.
I think what Cafeoh did (and what I did) was to change the properties for an instantiated(spawned) object in the editor. When I later changed properties on the base BP class, the event executed. Multiple times, actually, even when just changing the properties once. However, that is not what I want.
I saw a suggestion to use this:
if (!IsTemplate())
{
OnPropertyChangedEvent();
}
But it doesn’t work either. The weird part is that it seems like the base BP class is turned into a temporary instantiated object, and then deleted again.
Not sure why they did this, no events will fire while “in editor” e.g. during PostEditChangeProperty (but not OnConstruction for some reason). You can override by adding this before you call the event: