Ability to limit Constraints such as AlignPosition to specific axes

AlignPosition offers many benefits over BodyPosition, but one fundamental feature it is currently lacking is the ability to prevent the constraint from acting upon specific axes. BodyPosition allows you to set the MaxForce as a Vector3, limiting the effectiveness of the object on different axes.

Currently, if I want to have AlignPosition only act upon the Y axis, I simply can’t.

e.g. For AlignPosition, a Vector3 property ranging from 0-1 on each axis could determine how effective it is.

I believe other constraints would benefit from such a feature, as BodyMovers are currently superior to constraints in these situations.


Please consider this feature!

Constraints, in a lot of ways, are meant to replace BodyMovers. AlignPosition is a stand-in for BodyPosition but lacks the key feature of being able to limit which axes it can act on (with BodyPosition this is done by setting the forces of specific axes to 0). This addition to AlignPosition would give us a missing element to make them true replacements.


I’ve come across the need for this. I have a starship and I want to control its roll, pitch, and yaw torque / max velocities separately. It was suggested I use an AlignOrientation, but the most I can control is one axis – the other two have to be rigid.

I tried using a chain of proxy parts and Hinges to control the rotation of the starship individually on each axis, but this only worked when the root proxy was anchored. If it wasn’t, the proxies would rotate instead of the ship because they’re less massive. I obviously don’t want a moving ship to be anchored – then I’d have to move it without physics.

If I could apply AlignOrientation per-axis, I would be able to accomplish this without having to anchor the ship.


This was one of the plus of both bodyposition and bodygyro, and it would be very useful to have this on alignposition and alignorientation without having to fall back to legacy bodymovers.


Are there any plans to implement this or are we expected to eternally use BodyMovers?


Yeah, I’ve also run into an issue where I’m trying to align 2 objects but only in 2 axes, and it’s not possible with AlignPosition


Any news about this?

Still need to use BodyPosition to lock a part on 1 axis.


Please consider adding this! It’s really frustrating working with the new constraint system because of the limitations such as this as opposed to BodyMovers. If BodyMovers are being put under “Legacy” status, we should be able to continue to have access to the benefits of the BodyMovers.


I’ve hit a snag with using AlignPosition since I can’t constrain its force to one axis. I’m trying to make a hoverboard float a certain distance above ground while other constraints propel it along the ground. Since AlignPosition applies forces in all axes, it interferes with the other constraints.


Extremely disappointed we still don’t have this. Constraints were meant to be the proper replacements for the aged BodyMover classes. Where is the functionality?


I’m in need of this functionality at the moment. The AlignPosition constraint is useless in my case because you can’t limit specific axes.


It’s been 3 years and many Constraints are still lacking features that are present in certain BodyMovers they’re meant to replace. Any word on this?


This is a blocker for me adopting new physics constraints.

I want to have a part move around with LinearVelocity on the X and Z axis, and have an AlignPosition control the height of the part off the ground.

This currently isn’t easily possible unless I swap the AlignPosition to a BodyPosition object. If I wanted to use AlignPosition I’m forced to integrate the functionality of LinearVelocity into my code or handle the height control with LinearVelocity instead of a AlignPosition/BodyPosition object.

Ideally I could just turn off the X and Z axis forces of the AlignPosition to solve this problem, just like I can with BodyPosition. I’d really like to use new technology but I don’t want to adopt it if I have to redesign how these physics objects are managed. It’s a different story if I can achieve 1:1 functionality with the older BodyMover objects.


Support. This is literally the only reason I won’t stop using BodyPosition and BodyGyro. It’s disappointing to have to keep using deprecated features due to silly limitations like this, especially given the benefits of the new constraint system. Please add this, it’s long overdue.


4 years on and we still don’t have independent axis control for alignposition.

It should be relative simple too, since they already have a similar implementation for LinearVelocity.

Just add a VelocityConstraintMode with Line/Plane/Vector, and then a category for each, such as in Vector mode its just Position, in Plane mode you have Position with PrimaryAxis and SecondaryAxis, and in Line mode you have Position with Axis.


Have just run into the need for this once again with AlignPosition. This is a highly needed feature for those who want to move away from legacy movers and take advantage of new constraints


Can we finally have this added in?? I’m also at a point in my project when i’m having the exact same issue. This is really dumb and alignposition should just have what bodyposition already had.

(Edit) Roblox giving the bare minimum to developers:


We have multiple constraints to lock to a specific axis.

PlaneConstraint will lock to 1 axis.
PrismaticConstraint will lock to 2 axis.
AlignPosition will control all 3.

Is there a particular use case where these constraints will not work?


I still use BodyPosition because I need to restrict the Position on all axes, but at different strengths for each axis. Essentially, I need MaxForce as a Vector3. AlignPosition’s Maxforce property controls all axes at once and the other constraints do not even have a MaxForce property at all.


I still use BodyVelocity instead of LinearVelocity for this reason as well.

BodyVelocity allows me to set the MaxForce on each axis, so I can do (1, 0, 1) and have gravity still affect the object.

LinearVelocity means your object loses all gravity and must be floating to have the velocity applied.