_Implementation and _Validate (4.9.2)

Are the _Implementation and _Validate definitions required in the header file when using server functions? I honestly can’t tell if there is a different using them or not using them, when it it comes to replicating.

The forums and other answers have a handful of answers for previous versions of the engine with some included information regarded GENERATED_BODY( ) and GENERATED_UCLASS_BODY( ) but I am still a bit confused on the whole thing.


I have found out that _Implementation and _Validate are required in the .h file, using using 4.9+ as GENERATED_UCLASS_BODY( ) is depreciated.

As an example, this would be a server function in a .h file:

UFUNCTION( Server, Reliable, WithValidation )
void ServerMyFunction( );
void ServerMyFunction_Implementation( );
bool ServerMyFunction_Validate( );

And this would be the .cpp:

void AMyClass::ServerMyFunction_Implementation( )
    // Code that would be run on the server after validation

bool ServerMyFunction_Validate( )
 return true;

And when using this server function, call:

ServerMyFunction( );


AMyClassReference->ServerMyFunction( );