LNK 2005 error "alredy defined in cpp.obj" C++ RPC

I’m trying to make a RPC with this function:

Inventory.h

UFUNCTION(Server, Reliable, WithValidation)
	void PickupItem(APickup* itemOnGround);
	void PickupItem_Implementation(APickup* itemOnGround);
	bool PibkupItem_Validate(APickup* itemOnGround);

and they have this code:

Inventory.cpp

void UInventory::PickupItem(APickup * itemOnGround)
{

}

void UInventory::PickupItem_Implementation(APickup * itemOnGround)
{
	AddItemToInventory(itemOnGround->itemInfo);
	itemOnGround->Destroy();
}

bool UInventory::PickupItem_Validate(APickup * itemOnGround)
{
	return true;
}

but i keep getting these errors:

107404-halp+plox.png

My Build.cs:

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore"});
        PrivateDependencyModuleNames.AddRange(new string[] { "Networking" });

And I also have the “Networking.h” include in Inventory.h

I also found this post [here][2] but I didn’t really understand it :stuck_out_tongue:

Thanks in advance!

Remove ` void UInventory::PickupItem(APickup * itemOnGround)
{

}` in CPP

You do not need to provide this. Just validate and implementation are required.
Take note though, you still call this function when needed.

Thank you so much, it worked!

Oh, one question, if I want to call the function on the server I should call PickupItem(APickup * itemOnGround) right?

Yes, the _Implementation and _Validate are called automatically. There is more to it than that, but for your question you just call PickupItem(APickup * itemOnGround).