AActor::ReceiveHit in 4.8...

AActor::ReceiveHit in 4.8 is not virtual any longer. Is that a bug or by design? How can I override ReceiveHit ?

Not sure here is the commit that removed the virtual

Ah here it is

virtual void NotifyHit(class UPrimitiveComponent* MyComp, AActor* Other, class UPrimitiveComponent* OtherComp, bool bSelfMoved, FVector HitLocation, FVector HitNormal, FVector NormalImpulse, const FHitResult& Hit);

Yeah they’ve all changed to ‘Notify’ now, same for Overlaps too.

BlueprintImplementableEvents cannot be virtual, there is a handful of issues if they are declared virtual and BlueprintNativeEvents are what should be used for cases where you want both C++ and Blueprints to be able to override the behavior.

In this particular case there was already a different C++ function that is virtual that you should use to override which is NotifyHit and then ReceiveHit is where a blueprint would insert its reactions.

Apologies for the inconvenience, it was definitely a big change that will require adjusting and no way of providing backwards compatibility, but it was a necessary one.

What about ReceiveRadialDamage?I can’t find NotifyRadialDamage.

You can override AActor::TakeDamage and filter on DamageEvent.IsOfType(FRadialDamageEvent::ClassID).