Summary
I’ve tracked down a subtle issue in UE 5.4 (still reproducible in 5.7 preview) where unbinding from a multicast delegate in Blueprints silently fails if the delegate signature involves float parameters.
Please select what you are reporting on:
Creative
What Type of Bug are you experiencing?
Assets
Steps to Reproduce
- Declare a multicast delegate in C++:
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FTestFloatDelegate, float, FloatParam);
UPROPERTY(BlueprintAssignable)
FTestFloatDelegate OnTestFloatDelegate;
- In a Blueprint:
Create two Bind Event to OnTestFloatDelegate nodes.
Each uses its own Create Event node to bind the same BP custom event (float input).
Press a key to bind both (or bind on BeginPlay).
- Hit a breakpoint to look at delegate invocation list in a debugger
Expected Result
See only one element in delegate’s InvocationList.
Observed Result
See two elements in delegate’s InvocationList CREATEDELEGATE_PROXYFUNCTION_0 and CREATEDELEGATE_PROXYFUNCTION_1.
Platform(s)
Windows
Upload an image

Additional Notes
Why it happens
In UE 5.4+, BP float is actually double-precision.
Binding a BP event with float params generates conversion wrappers (proxy functions).
Each Create Event node gets its own proxy (CREATEDELEGATE_PROXYFUNCTION_N).
Delegate unbinding compares function identity, so unbinding with a different CreateEvent node targets a different proxy and fails.
Impact
Delegate Unbind is unreliable if you use multiple CreateEvent nodes with the same BP function.
Easy to leak or double-bind delegates in real projects without realizing.
Workarounds
Always reuse the same CreateEvent node for bind/unbind.
Use event/function that is created by the CreateEvent node (by using [Create a matching function/event] button in the CreateEvent node).
Or, bind/unbind in C++ where you can keep a stable delegate handle.
Or, switch delegate params to double when exposing to BP (not ideal, but avoids float→double proxy).
Can anyone from Epic confirm if this is intended behavior, or if it’s a regression? Any recommended best practice for Blueprint-accessible delegates with float params in UE 5.4+?