Dragger QoL Improvements [Beta]

Update March 20th

We’ve rolled out the changes to 5% of Studio users by default. If you’re seeing the changes for the first time, let us know what you think!


:tada: Happy v600 everyone! :tada:

We couldn’t leave a release like that without something special so today we bring you a beta feature adding many long awaited dragger quality of life improvements.

Overview of the improvements

  • Improved hotkeys with 1/2/3/4 selecting the draggers (no Ctrl needed).
  • Dedicated settings section for dragger and selection related settings.
  • Soft snapping to edges when Grid Snap is disabled.
  • Grid snapping guides to show you how objects are being snapped.
  • Distance measurements of how far you’ve moved, scaled, or rotated something.
  • Temporary snapping / orientation toggles via key hold.
  • Improved mesh compatibility including snapping to MeshPart / Union vertices.
  • Drag by pivot for precise object placement, such as sinking tree roots into the ground.
  • Refreshed appearance for draggers with a more minimal UX.
  • Animated tilt / rotate for clarity on what’s happening.
  • Hotkey help to educate new users about dragger functionality.
  • …many small tweaks to colors, thresholds, and timings.

Enabling the beta

Enabling the Dragger QoL Improvements beta feature

Open the Beta Features dialogue (File menu → Beta Features) and check the Dragger QoL Improvements beta. You will have to restart Studio for the change to take effect.

Full list of changes

Dedicated “Selection” Studio Settings Section

A new “Selection” section has been added to the Studio settings dialog.

  • Existing dragger and selection related settings have been moved to this section.
  • New settings have been added to control many of the new behaviors we’re adding here

If you see a new behavior you don’t like, we’ve probably included a setting to tweak or disable it.

Distance measurements & Refreshed Dragger UX

The UI of the draggers has been refreshed with slightly less clutter. The Move and Scale draggers no longer show you additional handles while dragging, instead the draggers now show you distance measurements (can be disabled via the “Show Numeric Measurements” setting). The Move tool shows the distance moved and the Scale tool shows the current size on the dragged axis.

The Move tool will leave the measurement behind temporarily. You can copy the distance moved from the box or even type into the box to precisely adjust how far the part was moved along the axis.

Grid snapping ruler

When grid snapping is enabled…

  • A ruler will be displayed as you hover, showing you what point you will pick up a part by, and passively giving you a feel for how large the hovered part is.
  • The same ruler will be shown in a different color on the target surface during a drag, showing how the point you picked up the selection by will be snapped to the target surface.
  • The ruler can be disabled via the “Show Hover Ruler” setting.

Temporary snapping / orientation toggles

Holding Shift will temporarily toggle whether snapping is enabled for all the tools, so that if you just need to do one quick edit in the other mode you don’t have to go back to the ribbon to switch snapping.

Holding Alt while follow-the-cursor dragging will return the selection back to the orientation it started the drag with rather than orientation of the target surface. This mostly replaces the awkward “Align Dragged Objects” toggle in the context menu.

Soft snapping to edges

Disabling grid / angle snapping no longer disables all snapping: Now you’ll get soft snapping to vertices / edge centers instead when you’re close enough to those surface features. The snapping margin depends on your zoom level so you can zoom in further to avoid unwanted snaps.

  • The soft snapping sensitivity can be tweaked via the “Soft Snap Margin Multiplier” setting. A multiplier of zero will disable soft snapping.
  • The color of snapping indicators can be changed via the “Active Dragger Color” setting.
  • The color of grids can be changed via the “Passive Dragger Color” setting.

This applies to the Move and Scale tools as well as follow-the-cursor dragging. Note: This pairs well with the Shift snapping toggle, allowing you to quickly choose between grid snapping for layout and soft snapping for precise alignment. This can be especially powerful with modular building sections.

Animated tilt / rotate

Tilting / Rotating the selection with T/R while follow-the-cursor dragging will now animate the movement rather than immediately applying it so that it’s clearer what happened. You can control the animation length via the “Tilt/Rotate Animation Duration” setting. Enter zero for no animation.

Hotkey help

A hotkey help panel is shown at the bottom right corner of the screen while dragging explaining the available shortcuts. You can press H to toggle this off once you’ve learned them.

Improved mesh compatibility

The draggers now have more understanding of mesh geometry. They can snap to the vertices of arbitrary MeshParts and UnionOperations. Note that the snapping will be based off of the collision geometry, so if you want to snap to fine details you’ll want to set the CollisionFidelity of the part to precise.

Drag by pivot

If you click on the pivot, you’ll now follow-the-cursor drag the object by its pivot. This places the pivot onto the surface as though it were a zero-size object instead of placing the bounding on the surface. By setting up an appropriate pivot and combining drag-by-pivot with Ctrl+D to duplicate during a drag, you can derive fast object stamping behavior:

…and finally, small change lightning round

  • “Bump keys” for the Move tool. Pressing the NumPad keys will move the selection by one grid increment in local space.
  • Improved contrast for RGB colors used by handles. Oversaturation is used to produce similar contrast levels for each color rather than the same saturation level being used for all of them.
  • Improved behavior when dragging onto Terrain.
  • Restored previous follow-the-cursor dragging behavior for parts thinner than 0.05 to avoid gaps. [also enabled outside beta]
  • Duplicating parts with Ctrl+D during a follow-the-cursor drag no longer ends the drag, enabling stamping behavior. [also enabled outside beta]
  • Handle summoning while holding tab now more aggressively snaps to the edges of parts. You can control how aggressive the snap is via the “Summon Snap Margin Multiplier” setting.
  • Minor tweaks to how the pivot is snapped to models when using the Pivot Editor.

Wrap-up

Some of the changes in this beta are on the more experimental end of the spectrum so we’re eagerly anticipating your feedback on this one. Let us know what works and what doesn’t… and what else you’re disappointed to not see in this beta as well.

Thanks to @tnavarts, @PrinceTybalt, and @jimjamjomj for this one!

637 Likes

This topic was automatically opened after 10 minutes.

I like it! I’m not much at creating maps, I usually find it a bit difficult, but this will help me a lot.

44 Likes

Glad to see Roblox actively updating Studio for developers. This update looks like a good one. :+1:

49 Likes

Doesn’t seem like a very bad update, and looks really good. However would be nice if we had some sort of personalization to turn animations on/off or, a style for our dragger tools. I like new changes being done to these, but sometimes I prefer simpler aesthetics while working on stuff in roblox studio, and the animations might seem a bit distracting at first. Also i’d prefer to keep the old style for the dragger shapes (like the arrows and such)

Other than that, everything seems pretty cool and nice to see some refreshing stuff being added!

46 Likes

I don’t even know what to say. Every single thing here is just… my god it’s perfect.

Drag by Pivot with stamping support is just going to be one of the most useful things I’ve seen added to studio basically in my whole time using it genuinely cannot thank you guys enough.
Having quick control over snap to grid is also a godsend the new keyboard shortcuts are going to save my sanity.

50 Likes

Can the dragger service be usable by other plugins, i dont see why this isn’t already possible considering its Lua.

27 Likes

This is one of the most useful updates in recent times for builders, mappers. Thank you very much for such improvements Each time the engine is more and more comfortable and convenient you can say

22 Likes

This is incredible, especially snapping to other parts in the workspace, well done!

19 Likes

Everything is great except the inability to turn Rotation animations off, and the inability to disable soft snapping.

34 Likes

I’m a big fan of a lot of these features.

The only thing that’s preventing me from switching over from the F3X plugin for building is dealing with the hierarchy hell with nested parts (parts in models which are in other models which are in other models… etc)

The current “hold Alt” workflow is pretty inefficient and some sort of “active directory” for building like F3X has would be pretty cool.

22 Likes

I needed this! Tired of dragging stuff without the pivot not playing any role, tired of moving parts on top of an UnionOperation and not adjusting to the geometry, and finally the snap, how many times I had to look and change the numbers at the top to change the studs to move…

THANK YOU! :slight_smile:

13 Likes

Really awesome improvements! However, for some reason my FPS goes down to 30 after a while of using this beta and remains around there the rest of the time until I restart studio. Yes, I need to restart studio to get my framerate back to normal. Looks like it might be caused by Drag by pivot, but I’m not sure.

13 Likes

Does the slowness persist if you close the current place and re-open it (but use the same Studio window). Also, does it matter what complexity of place you open?

12 Likes

It persists even if I close the place and open it back up. Only restarting studio fixes it. A baseplate isn’t as bad, but it still gets lower FPS (~40). So complexitiy does play a factor in slowness, but you can still notice it even if the place isn’t complex.

11 Likes

This is HUGE! Great improvements and cool to see @tnavarts outdoing himself, maybe I can uninstall some of his old plugins soon.

10 Likes

This is a gold mine! Gonna make building so much easier.

Off the bat I’m a little skeptical about two changes though.

I can see soft snapping getting a bit annoying when fiddling with small details of a build, so a way to disable that would be good.

Aside from that, being able to toggle snap by holding a key is awesome, but I do very often use the Shift key to move my camera slowly while dragging an object and I’m constantly inadvertently activating this. It’s not a big deal because I almost always stop moving my camera before I finish placing a part, but it’s a little bit offputting.

Also, a bug - upon reopening Studio after enabling the beta, my increments are being displayed as 0:

image

But it does behave normally as if it has a move increment of 1 and a rotate of 15 degrees. Changing the increments fixes the display.

Last note, is there a reason precise distance input isn’t available with the scale tool? I could see it coming in very handy and would love to have it there too.

Addendum: I just found another issue. These errors got spammed in the output when I used the numpad keys to nudge a part.


(I would like to apologize for ruining your day with a Roact stack trace)

17 Likes

It’s less clear what the desired behavior is, for instance with respect to Scale Uniformly and Scale Around Pivot. Should it continue using the mode you were in when you let go of the handle? Should it do a basic scale? We may add it to the other tools too but it seemed both the most useful and most straightforward on Move so we added it there first.

12 Likes

THIS IS SO COOL!!!

Snapping to edges is extremely useful, and having the ability to temporarily disable grid snapping is great too. I used to have a keybind for that, but not anymore!!

I also never knew that ctrl + T tilts the object TOWARDS the camera, animating it is definitely useful!
Why does this not carry over to rotating though? And more importantly, why can we not press R while dragging anymore?

16 Likes

Yeah, that makes sense.

This is what I would expect it to do, personally.

8 Likes