Client can't LaunchCharacter

Hi, I have this character that does basic stuff like walking, jumping, dodging and attacking. However, when I run the with a server and a client user, the client can’t do certain things, like jumping or dodging.

Jump:

void ACharacter_Base::CustomJump()
{
	if (!CharacterMovement->IsFalling())
		LaunchCharacter(mBaseJumpVelocity, false, false);
}

Dodge:

void ACharacter_Base::DoForceMove()
{
	if (IsForceMoving()) 
		CharacterMovement->Velocity = mForceMoveVelocity * mForceMoveSpeed * CharacterMovement->MaxWalkSpeed;
}

However, the characters Jump() function does work.

I can see that the player WANTS to move, its like the character is forced back to its location after a frame of moving.

Please note that this only doesn’t work on the client user, it runs like it should on the server user.

Is there something I’m missing to make it work on both the server and the client?

Ehm, everytime i read something like “Client can’t do something” i think about a problem with replication.
Are you sure you don’t have to replicate the Jump/Dodge function?

Maybe the Client wants to jump, but the Server doesn’t know this and updates the position back to his version of the client. Normaly a Client asks a server to do something. Than the server does it and replicates it back to the client.
So you are not directly controlling your Character. I guess you need to call a “run on server” function that sets the bool or calls the function you want.

Thank you, I got it working by telling the server that the client jumped!

I got it working, if anyone else stumble across this, this was my solution following A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums

Character_Base.h

UFUNCTION()
void CustomJump();

UFUNCTION(reliable, server, WithValidation)
void ServerCustomJump();

Character_Base.cpp

void ACharacter_Base::CustomJump()
{
	if (!CharacterMovement->IsFalling())
		LaunchCharacter(mBaseJumpVelocity, false, false);

	if (Role < ROLE_Authority)
		ServerCustomJump();
}

bool ACharacter_Base::ServerCustomJump_Validate()
{
	return true;
}

void ACharacter_Base::ServerCustomJump_Implementation()
{
	CustomJump();
}

If anyone has any input on this solution, please let me know so I can improve it.