As long as you move the parameters that do not have default values before the ones that do it should compile fine.
I don’t think the reflection system allows to expose to blueprints a function that has a delegate passed as a parameter though (it compiles fine without UFUNCTION)
You usually just use a blueprint assignable delegate like this
delegate
property
Setting any type of default value is ignored for the parameters.