Updated Pivot Editor for Draggers

Last summer we launched the ability to edit pivots. We eventually made the feature an opt-out beta, however there were some remaining concerns. We have made one more round of improvements to the beta in an attempt to resolve these concerns before we move it out of beta:

Use Bounding Box Move handles

  • If you prefer to keep your handles around the bounding box, you can go to Studio Settings → Use Bounding Box Move Handles to turn them back on. You can still edit the pivot, but your move handles will be around the bounding box. You can also still summon the move handles with the tab key, and in this case, the move handles will center around the cursor while the tab key is held.

Improved snapping and scaling

  • Snapping will now snap to parts within a Model while holding alt/option. Scaling will also scale based on the pivot when the control/command key is pressed.

One pivot at a time

  • We will only show you one pivot at any given time; if you select a complex model, we will only show you the relevant pivot at that time.

Thank you again for all the feedback; we hope this helps you use the pivot editor without having to change your current workflows. Please keep the feedback coming!


Update: 4/20/22


This topic was automatically opened after 10 minutes.

This is cool, I can’t wait to try this. It was so frustrating trying to move a pivot on a part within a model and having the snap point suddenly vanish before you could drag to it.
I had to resort to dragging the part out of the model if I had to do pivot work.(which was not very convenient)


from the link above:

  • Is the pivot functionality disrupting your Studio experience? For the time being you can opt out of the rollout by disabling the “Pivot Editor” beta feature. We will eventually remove the beta feature and the ability to opt out, so if you opt out, please reply with the issues that caused you to do so.

so, maybe you can still opt out, idk

not sure why you’d need to, if you don’t want to edit pivots, don’t click on the pivot editor button.


Bounding box draggers feel better for selecting folders and large groups of models (easier for me to understand the true bounds of my selection), but I do really like pivot boxes for smaller selections.

Wish there was a way to have both.


Hey there!:
Glad these issues have been resolved! However will there be a way to just disable the pivot points? I know that they have been minimized to 1 however i’d prefer if it just didn’t pop up at all - (Kind of like a setting, how we have the current option to enable/disable it in the Beta Features tab.)

As cool as having the option for bounding boxes is still don’t see myself changing the bounding box i’m currently comfortable with. It’s great that the issues people ran into are fixed i just disliked the points as i felt there was no point in summoning handles when i can just minimizes the movement scale and organize my workspace more to keep it easier to move everything when needed.

Although many other developers would like the pivot points and pivot editor i am not one of those. I feel if we just had an option to Enable/Disable or even to customize the pivot points & editor it would help most of us a lot more!


…That was last summer? Like, 9 months ago? No way. Anyway, I have always thought that being in-tune with your work should provide consistently quick results. I’m glad to say that these changes will bring up flow and make Studio a great and productive experience.

Great! But when will it be possible to tween with pivot points?

As of now, when changing the rotation using a tween, it doesn’t rotate around the pivot point. Instead it acts like the pivot point is on the center aka. no pivot point.

Thanks for reporting this, @Oficcer_F .
When you say ‘tween’ do you mean your are doing an animation or ramp between two rotations?

Can you post an example space that shows this issue? Or steps to reproduce the problem you are having?


My bad, tweens of course do not adhere since they find the fastest point to tween between A and B (although it could be nice if there was a way to toggle tweenService to tween according to the pivot point…).

However, if you do something like this:

local part = script.Parent

for i = 1,90, 1 do
  part.Orientation = Vector3.new(i, part.Orientation.Y, part.Orientation.Z)

On a part with a custom pivot point, it doesn’t work. It rotates the part as if the pivot point was centered (aka. default pivot point).

My expected result would’ve been something like this (just with a script):

However, it seems like when setting properties, it doesn’t care about the pivot point, like here:

Starting point of part:

Expected result:

Actual result, it’s hard to see on the image. But it didn’t rotate around the correct pivot point:

When changing properties (in general, script or manually), the pivot point does not get respected.

I don’t know if this is intentional or not, but it would be nice to have an option that it rotates around the pivot point selected.

1 Like

Ah. I see your issue.
So the thing is that the Position and Orientation properties are the values in the CFrame. To rotate about the pivot, you need to update both the position and the orientation. You can see this by watching how both properties change when you use the Rotate dragger when the pivot is not at the center of the object. The position changes to move the part in a circle around the pivot while the orientation changes

The following script does what you want to do.
First off, use GetPivot and SetPivot to query/establish the position and orientation instead of just setting the Orientation directly.
Secondly, to get your rotation relative to the pivot, you need to do this little sandwich of [pivotPosition * rotationIncrement * -pivotPosition] and apply that after the current pivot. This effectly moves your object to the origin, rotates it about its center, then moves it back out along the rotated pivot offset:

local part = script.Parent  
local incrementDegrees = 1
for i = 90, incrementDegrees do  
	local currentPivot = part:GetPivot() 
	local pivotPosition = part:GetPivot().Position 
		* CFrame.fromOrientation(math.rad(incrementDegrees),0,0) 
		* CFrame.new(-pivotPosition) 
		* currentPivot) 

This will also work. You can use whichever phrasing seems more natural to you:

local part = script.Parent
local incrementDegrees = 1
for i = 1,360, incrementDegrees do
	local currentPivot = part:GetPivot()
	local rx,ry,rz = currentPivot:ToOrientation()
	rx += math.rad(incrementDegrees)
	local pivotPosition = part:GetPivot().Position
	part:PivotTo(CFrame.fromOrientation(rx,ry,rz) + currentPivot .Position)	

Thank you very much for this extensive answer! Nice to see that there is a way to script this also. And again, great update!

Hi all - following up on the previous announcement from last week, we are moving the Pivot Editor out of beta today. If you’d like to keep using the bounding box move handles, please go to Studio Settings → Use Bounding Box Move Handles.

Please let us know if you have any suggestions.


Could you please also include the bounding box rotate and scale handles in that setting along with hiding the pivot indicator?

If you do not change the pivot, then there should be no change to Rotate and Scale handle behavior from before, so this should not be necessary.

If you do indeed use the new feature and change the pivot, then the rotate handles will center about that changed pivot and the scale handles will expand to include the new pivot.

1 Like

Is there way to remove pivot editor?


If you are referring to removing the Pivot Editor UI from the model ribbon, then no.
AFAIK, there is no general way to customize the ribbon bar, and the Pivot Editor is a new permanent member of the Model Ribbon.


Alright. I’m not really a huge fan of pivot editor but, I guess I got to stick with it now.


Thanks, for responding my question.