An issue with Welds

I’ve been working on a custom character rig for quite some time now, and I’ve found what I think is a problem with welds that holds me back from getting complete customization and control with my custom animation system. The problem seems to be that a part needs BodyGyro or another part to “Anchor” it in place if it’s rotating something (or a group of things) that have more mass than that part, or else that part will rotate instead. I’m not sure if it’s intended or not, but it’s pretty annoying and has been causing some problems.

Here are some examples and places:

Parts with BodyGyro, BodyPosition, and BodyVelocity to lock it in place (what I assume it should be without those to lock it in place):

Place

Parts with BodyPosition and BodyVelocity to lock position, but without BodyGyro to lock rotation:

Place

You should be able to reproduce it with the code in those place links, but just in case:
Start with a 1x1x1 part, we’ll call it Part A, another 1x1x1 part, Part B, and a 3x4x1 part, Part C.

Weld Part A to Part B, and Weld Part B to part C, each with a C0 of CFrame.new(0,0,2).
Insert BodyGyro into Part A with a maxTorque of math.huge on each axis, P of 7500, and D of 500.
Insert BodyPosition into Part A with a maxForce of math.huge on each axis, set position to Part A’s position, P to 7500, and D to 500.

Trying to rotate the weld from Part A to Part B will cause part B and C to rotate properly.
Remove the BodyGyro from Part A and do the same thing, and Part A should rotate instead.

Again, I’m not sure if this is intended or not, and if it’s not, and there’s a fix, I’d like to know. Thanks!

This has been around for a LOOOOONG time. I believe I switched over to Motors to fix the issue.
Regardless, it IS an issue with welds, and I can verify that you are not going crazy.

I’m hoping this kind of behavior isn’t intentional.