UKismetSystemLibrary::SetInterfacePropertyByName
#include "Kismet/KismetSystemLibrary.h"
Access: public
Specifiers: staticUFUNCTIONBlueprintCallable
Description
Sets a named const FScriptInterface& property on Object to Value via reflection. Internal helper the Blueprint compiler generates for dynamic property-set nodes; not intended to be called directly.
Caveats & Gotchas
- • Marked BlueprintInternalUseOnly, so it never appears in the Blueprint node picker — the compiler emits a call to it automatically when a Blueprint node writes to this property type by name; you can't drag it onto a graph directly.
- • Unconditionally dereferences Value.GetObject()->GetClass() to check interface compatibility, with no null check — passing an unset/null FScriptInterface crashes instead of clearing the property.
Signature
static ENGINE_API void SetInterfacePropertyByName(UObject* Object, FName PropertyName, const FScriptInterface& Value) Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| Object | UObject* | Object instance whose property will be modified. | — |
| PropertyName | FName | Name of the target property, resolved via FindFProperty against Object's class. | — |
| Value | const FScriptInterface& | Interface reference to assign. | — |
Return Type
void Example
Set an interface property by name from C++ C++
FScriptInterface Interface;
Interface.SetObject(TargetObject);
Interface.SetInterface(Cast<IMyInterface>(TargetObject));
UKismetSystemLibrary::SetInterfacePropertyByName(TargetActor, FName("DamageHandler"), Interface); Tags
Version History
Introduced in: 4.0
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?