Client RPC won't compile with certain arguments

The following compiles

// MyClass.h
public:
	UFUNCTION(BlueprintCallable, Client, Reliable)
	void Client_UpdateKillFeed(bool bKillerTeam, bool bVictimTeam);

// MyClass.cpp
void MyClass::Client_UpdateKillFeed_Implementation(bool bKillerTeam, bool bVictimTeam)
{
    
}

The following does not

// MyClass.h
public:
	UFUNCTION(BlueprintCallable, Client, Reliable)
	void Client_UpdateKillFeed(FText Killer, FText Victim, bool bKillerTeam, bool bVictimTeam, class UDamageType* DamageType);

// MyClass.cpp
void UKillFeedWindow::Client_UpdateKillFeed_Implementation(FText Killer, FText Victim, bool bKillerTeam, bool bVictimTeam, UDamageType* DamageType)
{
    
}

It refuses to compile with any complex arguments. It’ll accept bool, int32, etc, but things like FText and UDamageType return an error. I have no idea why

Error:

MyClass.cpp(11) : error C2511: ‘void MyClass::Client_UpdateKillFeed_Implementation(FText,FText,bool,bool,UDamageType *)’: overloaded member function not found in ‘MyClass’

Some non-basic types of RPC arguments must be const. Normally the compiler shows it to you in the error, and it must be there, take a closer look at the error message.

Anyway, FText is one of those argument types. What you should do is:

void Client_UpdateKillFeed(const FText &Killer, const FText &Victim, bool bKillerTeam, bool bVictimTeam, class UDamageType* DamageType);