Wow thanks for that really fast reply! That makes sense I was trying out similar approaches before but syntax is not my strongest skill.
I replaced the .h and .cpp lines with your code. It looks like this now:
.h:
virtual void GetClosestOverlappingActor(TSubclassOf<AActor> ActorClassIN, AActor* RelativeActorIN, USphereComponent* CollisionComponentIN, AActor*& ClosestOverlappingActorOfTypeOUT, bool& IsAnyActorOverlappingOUT, TSubclassOf<AActor>& ActorClassOUT);
.cpp:
void ActorUtilitiesCode::GetClosestOverlappingActor(TSubclassOf<AActor> ActorClassIN, AActor* RelativeActorIN, USphereComponent* CollisionComponentIN, AActor*& ClosestOverlappingActorOfTypeOUT, bool& IsAnyActorOverlappingOUT, TSubclassOf<AActor>& ActorClassOUT)
{
};
Unfortunately I am now getting an error that says:
\ActorUtilitiesCode.h(11): error C2664: ‘void AActorUtilitiesCode::GetClosestOverlappingActor(TSubclassOf,AActor
*,USphereComponent *,AActor *&,bool &,TSubclassOf &)’ : cannot convert argument 6 from ‘UClass *’ to ‘TSubclassOf &’
Did I miss something?