UFUNCTIONs are special class citizens, yeah. There’s extra stuff generated for them, and sometimes (if it’s for example a “Reliable” ufunction) you don’t even see the actual declarations. For blueprint-bindable delegates (which require function bound to be an UFunction) we have “dynamic” delegates, which are somehow magically different. I’ve never dug deep into that stuff to be honest, I’m just a consumer