Per-Axis BallSocketConstraint Limits

As a Roblox developer, I find the limits for BallSocketConstraints don’t give you much control at the moment.

We can only edit the “UpperAngle” and “TwistUpperAngle/TwistLowerAngle” limits. When I first started using BallSocketConstraints for a ragdoll, I was very confused on why there was a “UpperAngle” but no “LowerAngle”

In order to actually figure out how all of the limits worked, I had to go out of my way to do a bunch of testing with something that should have the ability to be known right then and there when setting properties.

Once I had everything figured out, I was still a bit disappointed at the lack of control I had over the constraints and lack of visual feedback for what my limits are actually looking like

I think it would be better if there was an X, Y, and Z limit, both with Upper and Lower limits (e.g. setting XUpper to 25 and XLower to -5)

As a small extension on the topic of limits, I also think we should have some kind of visual indicator showing us the limits, making the limits even more easier to control. This can be applied to other constraints too.

In my opinion, I think this will improve the following:

  • Greater control overall with how we want BallSocketConstraints to move with limits

  • Easier to understand for new users and less work on their end
    – If we can also have visual indicators for limits, this would greatly simply the use of limits too

7 Likes

Bumping this. The only reliable way to transfer rotation by 90 degrees using solely constraints is to use a BallSocketConstraint with twist limits set to 0 and UpperLimit set to 180. Although this works, it causes so much kick-back that it renders this method completely useless if you plan on using it for anything that isn’t grounded, like vehicles. I’ve made a demo video and place to show you what I mean by this.


demo_rig.rbxl (57.5 KB)

3 Likes

Yes but it should be local to the constraint direction and not global

1 Like