Trouble with AddForce on an actor that has many attached actors on it, in C++.

So I’m trying to make a game where the players can build spaceships and fly them around. I have a Ship AActor with many ShipPieces AActors attached to it. Some of the Ship Pieces are engines and can move the ship. The engines have a push direction and a force. When I try applying the force like this:

FVector ForceDirection = EngineInterface->Execute_GetPushVector(CorrectEngine).GetSafeNormal2D();
float ForcePower = EngineInterface->Execute_GetForce(CorrectEngine);
RootBoxComponent->AddForce(ForceDirection * ForcePower, NAME_None, true);

The Ship spins weirdly and moves more horizontally than vertically. The RootBoxComponent is just a component with simulates physics on and Collision type set to physics only.

RootBoxComponent = CreateDefaultSubobject<UBoxComponent>(TEXT("RootComponent"));
RootBoxComponent->SetupAttachment(RootBoxComponent);
RootBoxComponent->SetCollisionEnabled(ECollisionEnabled::PhysicsOnly);
RootBoxComponent->SetCollisionObjectType(ECC_Vehicle);
RootBoxComponent->SetSimulatePhysics(true);

SetRootComponent(RootBoxComponent);

Originally I thought that the ship may be colliding with the player but when I disabled the player’s collider, the ship still acted the same. To me, the problem still seems like a collision issue, but I have no idea how to approach debugging this. Any help would be greatly appreciated, I’ve linked a video as an example of my problem.

Thanks, a bunch

Example