Replicating dynamic material instance

So I want to change the color tint of an actor’s material (actor is spawned at runtime) and wrote the following functions:

void ASomPickup::ChangeColor(FColor NewColor)
{
	//Set FColor-Variable "ColorTint"
	ColorTint = NewColor;

	//Set Scalar Parameter in the material instance
	if (Pickup_Material != NULL)
		Pickup_Material->SetVectorParameterValue(FName(TEXT("Tint")), ColorTint);
}


void ASomPickup::GetLifetimeReplicatedProps(TArray< FLifetimeProperty > & OutLifetimeProps) const
{
	Super::GetLifetimeReplicatedProps(OutLifetimeProps);

	// Replicate to everyone
	DOREPLIFETIME(ASomPickup, ColorTint);
	DOREPLIFETIME(ASomPickup, Pickup_Material);
}

The server seems to do everything perfectly. But on the client, only the “ColorTint”-Variable of the spawned Actor changes. The material stays the same.

Later on I wrote the “ChangeColor(ColorTint);” -Function into the “PostInitializeComponents” and dragged the Actor into the Level (so it won’t be spawned during runtime).
This time it worked like it should, on server and client. But only with this method (if the item pre-exists in the level) and not with the “spawning during runtime”-approach … Does anyone have a tip for me?

This answer helped me:

Actually NOT replicating the material itself and setting up the ColorTint-Variable as a RepNotify did the trick.