Can't set physical material during runtime

I’ve been trying this for the whole day but couldn’t do it.

I am trying to change the physical characteristics of a static mesh component. It looks like this has been an issue for some time according to the Google results.

I have a very simple blueprint that calls a custom C++ function:
image

And the function is also very basic. It only sets a variable. Now I added a line to also change the friction:

void ARobot::SetLeftWheelForce(float Force)
{
	LeftWheelForce = Force;
	if (Force < 1.f)
	{
		LeftWheel->GetBodyInstance()->GetSimplePhysicalMaterial()->Friction = 1.f;
		LeftWheel->GetBodyInstance()->GetSimplePhysicalMaterial()->StaticFriction = 1.f;
	}
	else
	{
		LeftWheel->GetBodyInstance()->GetSimplePhysicalMaterial()->Friction = 0.f;
		LeftWheel->GetBodyInstance()->GetSimplePhysicalMaterial()->StaticFriction = 0.f;
	}
}

This didn’t work.

Then I tried setting the override material. With these lines. (I set the WheelMaterial in editor.
Robot.h

	UPROPERTY(EditDefaultsOnly)
	UPhysicalMaterial* WheelMaterial = nullptr;

Robot.cpp

void ARobot::SetLeftWheelForce(float Force)
{
	LeftWheelForce = Force;
	if (Force < 1.f)
	{
		LeftWheel->SetPhysMaterialOverride(nullptr);
	}
	else
	{
		LeftWheel->SetPhysMaterialOverride(WheelMaterial);
	}
}

During runtime, interestingly, I can see the material changes in the editor everytime I press A. But it didn’t affect the movement of the actor.
image

Then I tried setting it in blueprint using the native set function node. I even didn’t set it to default knowingly. If I press A even one time, the override is set.

And I could see that it was set in the editor during runtime. But it still didn’t affect anything.

But if I manually set the Phys Material Override in the editor BEFORE starting the game, it works.

Which means the material override (and maybe also the physical material) can only be set before the gameplay and cannot be changed.

Is this correct or am I doing something wrong. And why do we have SetPhysMaterialOverride function if it doesn’t work (just for constructor use maybe)?