SetActorScale3D C++ not working

Super similar post: https://answers.unrealengine.com/questions/73617/why-doesnt-scaling-an-actor-with-child-actors-work.html

I have a C++ class, it is a UActorComponent. I created a blueprint and attached my custom component and a static mesh. The custom component calls GetOwner() and updates the actors scale using SetActorScale3D (). The actor visibly has the new scale value in it’s properties, BUT, the actual static mesh is the same size. That is to say, the static mesh does not graphically scale even though the actor’s properties scale has changed.

For example, the scale will read as ~(0,0,0) but the static mesh will be at full size (1,1,1).

All components are Movable.

Any ideas?

I’ve created a work-around(?). It’s not fully tested so idk if this fix has any quirks. That being said…

    //
	FVector new_scale = FVector(3,3,3);
	AActor* das_owner = GetOwner();

	//
	TArray<UActorComponent*> components;
	das_owner->GetComponents(components);
	for (int32 ii = 0; ii < components.Num(); ++ii){

		//	Scale us.
		//
		USceneComponent* sc = Cast<USceneComponent>(components[ii]);
		if (sc){
			sc->SetRelativeScale3D(new_scale);
		}
	}

This manually crawls though each component and, if applicable/possible, manipulate’s it’s scale directly.

This is being called BY a component on an actor, to effect every component on the actor.