UENUM compilation issue

What you can do is

Remove additional specifier class from enum declaration also I’m not very using uint8 here. You can also use without it. :

UENUM(BlueprintType)
 enum EAIAlertnessLevel : uint8 // remove class at here
 {
     AlertnessLevelNone = 0    UMETA(DisplayName="None"),
     Curious                UMETA(DisplayName="Curious"),
     Alert                    UMETA(DisplayName="Alert"),
     Fight                UMETA(DisplayName="Fight")
 };

Next. You need to show its referance point to compiler, thus need to include. Additionally, while signing your function, you dont need TEnumAsByte or you can put depens on you, can do like several ways



Put your reference

include "ExternalEnums.h"
    
UFUNCTION(BlueprintNativeEvent) // Works fine when not exposed to blueprints
void IncreaseAIAlertness(EAIAlertnessLevel CurrentAlertness);

I suggest to include your libs in cpp. Thus in the header file, to increase your compilation speed, you can always pretell compiler as this is `class` will be used in cpp and dont use `include` in your header.

class EAIAlertnessLevel; // do after include tab before UCLASS()


UFUNCTION(BlueprintNativeEvent)
void IncreaseAIAlertness(EAIAlertnessLevel CurrentAlertness);
virtual void IncreaseAIAlertness_Implementation(EAIAlertnessLevel CurrentAlertness)