FObjectDetails::AddCallInEditorMethods excludes RF_ArchetypeObject UObjects, stopping CallInEditor functions from working within Blueprints (see repro steps).
I removed this condition and everything worked as expected… but is this safe?
This change was made by Epic in CL 35103373 with the description “[DetailCustomizations] CallInEditor fix” for UE-220242.
Hey Ben, thanks for reporting this and looking into the history. I’ve created UE-358679 to track it and looped in the dev who worked on UE-220242.
“I removed this condition and everything worked as expected… but is this safe?”
I’ll ask the dev which objects with the RF_ArchetypeObjects were intended to be filtered out. Since we’re closing offices over our holiday break starting later today, I’ll follow up in January.
Hey Ben, I’ve been informed that CallInEditor functions were not intended to be visible in the blueprint editor. I just confirmed that, for example, in UE 5.3 they weren’t visible.
Our first inclination is to hide those functions in BP editor, because they weren’t intended to be visible there. I’m discussing an opt-in cvar (which you folks could enable, for example). But be prepared that the fix for UE-358679 might be the inverse of what you’re requesting, and that you will have to keep local modifications.
To answer: “I removed this condition and everything worked as expected… but is this safe?”
This is uncharted territory for us, so it’s not intended to work. But as long as you’re operating on the archetype subobject, and knowledgeable about how to manipulate those objects, then you should be fine in my opinion. Users may be tempted to make changes though that aren’t propagated to child blueprints. Just like modifying properties on a parent blueprint’s actor or components via code doesn’t automatically propagate to child blueprints, user code in CallInEditor functions may do things where they expect things to magically work as if you’re changing values on the blueprint. So that’s the main warning I’d issue to your devs.