Last time I checked, you couldn’t have Server / Client functions as part of an interface.
That might have changed though. If so, try this:
Header
class MYGAME_API II_Interaction
{
GENERATED_BODY() // Use GENERATED_BODY()
//Interface Functions
UFUNCTION(Server, Reliable, WithValidation)
void StartInteraction();
virtual void StartInteraction_Implementation() {}
virtual bool StartInteraction_Validate() { return true; }
UFUNCTION(Server, Reliable, WithValidation)
void StopInteraction();
virtual void StopInteraction_Implementation() {}
virtual bool StopInteraction_Validate() { return true; }
};
Then try overriding _Implementation and _Validate in your otherclass.
If this doesn’t work, my suggestion would be to add Interaction functionality via an ActorComponent instead.