Sure:
//////////////////////////////////////////////////////////////////////////
// Suppression
// Current suppression value
UPROPERTY(BlueprintReadOnly,Transient, ReplicatedUsing = OnRep_Suppression, Category = Health)
float Suppression = 0;
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category = Health)
float SuppressionScale = 0.1f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Health)
float SuppressionRecoveryRate = 0.1f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Health)
float MaxSuppression = 10.0f;
/** Suppress this character a little */
UFUNCTION(BlueprintCallable, Category = Health)
void Suppress(FHitResult hit, FVector start, FVector end);
// suppression value changed.. so lets update something
UFUNCTION(BlueprintNativeEvent)
void OnRep_Suppression();
UFUNCTION(reliable, server, WithValidation)
void ServerSuppress(FHitResult hit, FVector start, FVector end);