In UE4 C++, how do I snap two object faces together during runtime so they are flush with one another?,How do I create a constraint in UE4 such that the bodies are projected together?

Ok, so based on rantrod’s help, the following code worked. In summary, I had to use AttachRootComponentTo in order to line up the docks, then I used a physics constraint actor to actually make the connection. It should be enough to weld the elements together once they are lined up, but that part I still can’t get to work. Thanks!:

        connections[modules[0]->GetIDNumber()][BACK_DOCK] = modules[1]->GetDocks()[FRONT_DOCK];
        connections[modules[1]->GetIDNumber()][FRONT_DOCK] = modules[0]->GetDocks()[BACK_DOCK];
        modules[0]->SetDockEngaged(BACK_DOCK, true);
        modules[1]->SetDockEngaged(FRONT_DOCK, true);
        modules[0]->AttachRootComponentTo(modules[1]->GetRootComponent(),"",EAttachLocation::SnapToTarget, true);
        modules[0]->GetRootComponent()->SetRelativeRotation(FRotator(0,0,0));
        modules[0]->GetRootComponent()->SetRelativeLocation(FVector(0,0,190));
        modules[0]->WeldDockToComponent(BACK_DOCK, modules[1]->GetDockComponent(FRONT_DOCK));
        APhysicsConstraintActor *a = GetWorld()->SpawnActor<APhysicsConstraintActor>();
         a->GetConstraintComp()->SetConstrainedComponents(modules[0]->GetSlaveOuterMesh(), "BackDock", modules[1]->GetMasterOuterMesh(), "FrontDock");
         a->GetConstraintComp()->SetLinearXLimit(ELinearConstraintMotion::LCM_Locked, 0);
         a->GetConstraintComp()->SetLinearYLimit(ELinearConstraintMotion::LCM_Locked, 0);
         a->GetConstraintComp()->SetLinearZLimit(ELinearConstraintMotion::LCM_Locked, 0);
         a->GetConstraintComp()->SetAngularSwing1Limit(EAngularConstraintMotion::ACM_Locked, 0);
         a->GetConstraintComp()->SetAngularSwing2Limit(EAngularConstraintMotion::ACM_Locked, 0);
         a->GetConstraintComp()->SetAngularTwistLimit(EAngularConstraintMotion::ACM_Locked, 0);