[CRASH]: Playing Anim Montage on Client

I am currently trying to play an animation montage through a reliable net multicast function triggered though an input binding when the player has a weapon equipped.

When playing as a listen server, with 0 clients, this succeeds and the montage plays. When a client is connected, and tries to play the montage, the editor freezes. I can’t get a crash report.

Commenting the PlayAnimMontage line lets the call go through, but then I get no animation.
Below is the implementation of the Reliable NetMulticast function. Please let me know if it would be helpful to post the rest of the function definitions.

void ASpellSword2Character::Multicast_PlayMeleeAnim_Implementation(ASpellSword2Character* Character, int32 AnimIndex)
{
	printLog("CALLING MULTICAST IMPLEMENTATION");
	UAnimMontage* AttackMontage = Character->EquippedWeapon->WeaponAnimMontage[AnimIndex];
	if (AttackMontage)
	{
		Character->PlayAnimMontage(AttackMontage); //<-- Commenting this line lets the multicast succeed.
	}
	printLog("FINISHED PLAYING MONTAGE");
}

Edit:
Here’s what I did to replicate this on a clean project. (And correct me if my implementation is wack)

Character.h

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Montage)
	UAnimMontage* MyMontage;

	UFUNCTION(BlueprintCallable, Category = Montage)
	void PlayMyMontage();

	UFUNCTION(NetMulticast, Reliable, WithValidation, Category = Montage)
		void Multicast_PlayMyMontage();
	virtual void Multicast_PlayMyMontage_Implementation();
	virtual bool Multicast_PlayMyMontage_Validate();

Character.cpp

void AMulticastTestCharacter::PlayMyMontage()
{
	if (Role < ROLE_Authority)
	{
		Multicast_PlayMyMontage();
	}
	else
	{
		if (MyMontage)
		{
			PlayAnimMontage(MyMontage);
		}
	}
}

void AMulticastTestCharacter::Multicast_PlayMyMontage_Implementation()
{
	PlayMyMontage();
}
bool AMulticastTestCharacter::Multicast_PlayMyMontage_Validate()
{
	return true;
}

Character has a FullBodySlot added to the Animation Blueprint. (Pictured Below)

http://puu.sh/j8duk/cf3fdcc12f.png

And is using the stock ThirdPersonRun animation in a montage as the MyMontage Asset

The function is fired through pressing the 1 key in the event graph. (Pictured Below)

http://puu.sh/j8dsk/fc0c41b851.png

Nevermind my implementation was indeed wack.

Here’s the right way to do it. (As far as I know. It works :> )

Character.h

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Montage)
	UAnimMontage* MyMontage;

	UFUNCTION(BlueprintCallable, Server, Reliable, WithValidation, Category = Montage)
		void Request_PlayMyMontage();
	virtual void Request_PlayMyMontage_Implementation();
	virtual bool Request_PlayMyMontage_Validate();

	UFUNCTION(BlueprintCallable, NetMulticast, Reliable, WithValidation, Category = Montage)
		void Multicast_PlayMyMontage(UAnimMontage* MontageToPlay);
	virtual void Multicast_PlayMyMontage_Implementation(UAnimMontage* MontageToPlay);
	virtual bool Multicast_PlayMyMontage_Validate(UAnimMontage* MontageToPlay);

Character.cpp

void AMulticastTestCharacter::Request_PlayMyMontage_Implementation()
{
	if (Role == ROLE_Authority)
	{
		if (MyMontage)
		{
			Multicast_PlayMyMontage(MyMontage);
		}
	}
}

bool AMulticastTestCharacter::Request_PlayMyMontage_Validate()
{
	return true;
}

void AMulticastTestCharacter::Multicast_PlayMyMontage_Implementation(UAnimMontage* MontageToPlay)
{
	PlayAnimMontage(MontageToPlay);
}
bool AMulticastTestCharacter::Multicast_PlayMyMontage_Validate(UAnimMontage* MontageToPlay)
{
	return true;
}