Как реализовать бег в сетевой игре?

Я пытаюсь подражать коду из ShooterGame, сейчас бег у меня устроен так

.h

void Sprint();
void StopSprint();
void SetRunning(bool bNewRunning);

UFUNCTION(Reliable, Client, WithValidation)
void MyServFunct(bool bNewRunning);
void MyServFunct_Implementation(bool bNewRunning);
bool MyServFunct_Validate(bool bNewRunning);

.cpp

void ACppProjectCharacter::Sprint() {
	SetRunning(true);
}

void ACppProjectCharacter::StopSprint() {
	SetRunning(false);
}

void ACppProjectCharacter::SetRunning(bool bNewRunning) {
	if(Role < ROLE_Authority) {
		MyServFunct(bNewRunning);
	}

	ACppProjectCharacter::CharacterMovement->MaxWalkSpeed = bNewRunning ? 1000.0f : 600.f;
}

void ACppProjectCharacter::MyServFunct_Implementation(bool bNewRunning) {
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, TEXT("MyServFunct"));
	SetRunning(bNewRunning);
}

bool ACppProjectCharacter::MyServFunct_Validate(bool bNewRunning) {
	return true;
}

Игра тут же вылетает. Мне больше в голову не приходит, как ещё можно все это реализовать