Replication of pawn movement

I began created pawn with UFloatingPawnMovement component for session game, because this component has AddInputVector method for move the pawn and I can make custom collision for this.
And so I created next code:

(header)

	UFUNCTION(Server, Reliable, WithValidation)
	void Server_Forward(float velocity);
	void Server_Forward_Implementation(float velocity);
	bool Server_Forward_Validate(float velocity) { return true; };

	UFUNCTION(NetMulticast, Unreliable)
	void Client_Forward(float velocity);
	void Client_Forward_Implementation(float velocity);

private:
	void move_forward(float velocity);

(implementation)

void ATestPawn::Server_Forward_Implementation(float velocity)
{
	PRINT("SERVER: ATestPawn::Server_Forward() %s", BSTR(HasAuthority()));
	move_forward(velocity);
	Client_Forward(velocity);
}

void ATestPawn::Client_Forward_Implementation(float velocity)
{
	PRINT("CLIENT: ATestPawn::Client_Forward() %s", BSTR(HasAuthority()));
	move_forward(velocity);
}

void ATestPawn::move_forward(float velocity)
{
	PRINT("ATestPawn:move_forward(%f)", velocity);
	FVector WorldVector = FVector(0, velocity, 0);
	auto MovementComponent = GetMovementComponent();
	if (MovementComponent != nullptr)
	{
		MovementComponent->AddInputVector(WorldVector, true);
	} else
	{
		PRINT("Failed to get movement component");
	}
	
}

client calls server, server moves the pawn and calls all clients to move pawn.

And movement of pawn not works on all clients, only on own, and on server not works too. What can I do with it?
All prints in this functions processed, and authority is correct. Problem in AddInputVector? What reason?
And is there a better way to do this? (wheeled vehicles and characters not good for my case)

Broly, you legendary SS.

Pawn class isn’t network enabled as you know.

Which sucks.

Your code looks correct.