Studio Tweaks - Disable selection box, disable UI Editor, anchor new parts, show selection faces, and more

This is a plugin that adds new adornments, gizmos, and visualizers to Studio, and offers options to change some frustrating default Studio behavior. See below for a summary of features.

Formerly Extra Dragger Gizmos.

Inspired by the removal of hinges, which people used to see the orientation of part faces.


Features

image

Remember to disable the hotkey hint overlay once you know how to open this menu.

Selection origin

image

Face labels

In a verbose style, and a simplified style: cylinders correspond to positive direction, and cones correspond to negative direction.

image image

Visualize Welds and other JointInstances

WeldConstraints can be visualized using the ShowDetails + ShowWelds options in the ribbonbar. However, there is no such option for normal Welds. This adds nearly functionally identical visualizers for Welds and other JointInstances that obey the ShowDetails and DrawOnTop ribbonbar settings.

image

These visualizers also work for joints such as Motor6Ds.

image

Support these threads so these visualizers can be more efficient (GetPropertyChangedSignal does not work for StudioService ShowConstraintDetails or DrawConstraintsOnTop), and support the ShowWelds and Scale options as well (API to get ConstraintScale and ShowWelds via StudioService).

Selection box override

This replaces the default selection box for both parts / models, and decals / textures with less obstructive versions. The outline thickness for parts/models is distance-controlled.

Due to how stupidly massive the selection box for decals / textures is, the replacement is very far off the surface of the part. Please support this feature request: Make texture/decal selection box thinner / transparent

This is a hack and you should read more below to see limitations and notes.

❗ Important notes

Requirements

  • You must have your graphics quality in edit mode set high enough for this effect to work. The plugin will attempt to set your graphics quality to at least 16 if it is too low.

Considerations

  • The selection box replacement option is a hack.
  • This adds a collision group to your game if you enable this option. If you leave it disabled, you don’t have to worry about this extra group. You can delete this group safely, but it will come back if you use the replacement selection box.
  • Since this is a hack using the quirk of transparent glass where it hides some effects, using this selection box replacement will cause transparent parts to turn fully invisible when dragging them, and cause other adornments on parts to turn invisible temporarily.
  • This feature is optional and easy to toggle on and off.

How it works

  • This option creates a glass part around your selection to force the default collision box to disappear.
  • This part is in a collision group that does not collide with the default group, causing all Studio tools to ignore it. You cannot interact with it.

image RobloxStudioBeta_2021-02-21_20-23-23

Wow, now you can see what you are doing.

Hover box dynamic size

When you are closer to the model/part you’re hovering the mouse over, the hover box (not the selection box) will become thinner and more transparent to be less obstructive.

Inspired by @AstroCode’s plugin.

Change default instance properties

If a part is added under workspace and it matches Studio’s default properties for that part’s class, it will have its default properties adjusted as configured.

Current settings:

  • Anchored
  • CastShadow
  • CanTouch

Part reselection on undo

Disable reselecting parts and models when undoing a delete

If you prefer Studio to never reselect anything you deleted when you undo, you can disable this entirely.

Do not select every descendant when undoing a delete

By default Studio will attempt to reselect every descendant of deleted models and parts when you undo. This can cause the explorer to frantically expand every single instance which in certain cases can take ages to finish.

This feature (disabled by default) will attempt to make smarter reselections, and will select only the parent instance if all of its children were reselected. This is not perfect when folders and other instances are involved, and with some edge-cases can still cause a frantic tree expansion, but it should be much better in most cases.

Here is an example of what is selected after I delete some deeply nested instances and undo with this feature enabled. The result is not as tidy as I would like because folders are used here, which behave differently from models, but it keeps the expansion manageable.

Without this plugin, Studio would select every single descendant and I would be stuck waiting for the explorer to expand every single instance, but with this plugin instead it does its best to minimize tree expansion (albeit with some awkward behavior for non-model/part instances such as folders), while preserving convenient reselection behavior.

Here is an example of what the original behavior is like…

Known issues

  • Does not prevent reselection on redo, only undo. This is simply an oversight.

Disable UI Editor features

Disable the UI editor

Disables the resize handles and overlays for the UI Editor. Dragging UI elements still works; this cannot be prevented.

It turns out you can just turn the ScreenGuis off. Did nobody try this?

Disable the UI editor overlay

Disables the yellow overlays for the UI Editor that always get in your way, but not the resize handles nor dragging function. This is perhaps the most usable state for the UI Editor.

Known issues

  • Reloading (e.g. updating) the plugin sometimes doesn’t re-enable the UI Editor if it was disabled.

Usage Notes

  • Press P to open the settings context menu . You can create a hotkey for this by searching “tweaks”.

  • By default, the extra adornments will not apply to selections larger than 50 parts to prevent significant performance impact. You can disable this safety feature if you want. There are still some optimizations I can do with this (e.g. object pooling).

  • All features can be enabled or disabled independently.

  • New adornments work on both part and model selections.

  • All behavior changes and new adornments only work in edit-mode, not run or play mode.


Please let me know if you manage to break it and how, or if it gets in your way. If you have unacceptable performance problems, send me a microprofiler dump.

As usual, use with caution.

Please also let me know if there are other features you’d like to see.

189 Likes

Awesome, I was thinking of making this plugin but you did that first!

  • One feature I could think of right now is to display the Surface for all Parts in workspace, so we don’t have to select individual parts and such.

  • Can we change or remove the keybind you made for the P key?

  • Also better color choices or outlines? If we use red green or blue parts the text won’t be seen

  • perhaps the Source can also be provided here for those who are curious of how the plugin works

5 Likes
  • That just sounds like an insane amount of clutter and not very useful, I don’t think you thought about this. You can select the parts you’re interested in.

  • I’ve added a pluginaction to open the menu that you can rebind, but I cannot display this as a hint in the viewport. It is not possible for me to set a default keybind and I want this settings menu to be easily discoverable, hence the P button. If there are binding collision concerns I can add an additional setting to disable the keybind since it is just using contextactionservice, or move it to another key.

  • The outline color is the same color you have set under studio settings for your selection box.

  • I’ve added an outline to the face text so it’s always visible.

  • I will not duplicate source here because this plugin is under iteration and it would simply be too annoying to keep up to date. You can wait until you’re home to review the source code if you’re so determined.

6 Likes

I meant as a toggle, definitely not to see all of the time that would be terrible.

  • This is for debugging purposes, you might want to make sure everything is facing the right way

Other than that awesome!

1 Like

That is still unusable and would cause significant, debilitating, unusable performance degradation.
Further, SurfaceGui stops rendering once there are too many on screen.

2 Likes

Great plugin, this will be extra helpful now that hinges are removed. However, is there a way to increase the selection origin dot size? It is almost impossible to see it on high dpi displays. Maybe even add a dark outline on it as well so its easier to see on brighter parts.

image

3 Likes

I’ve made the origin gizmo a little larger and gave it a dark outline + front direction indicator. Does this help?

image

4 Likes

I’ve created an option for simpler face markers than text but I really don’t like the design here.
Looking for opinions on what a better design might look like.

image

1 Like

I personally quite like the design.
Maybe make it so the markers a smaller?

2 Likes

thank you for making this, Roblox thought it would be a good idea to remove the one feature that I need the most when modeling, thanks Roblox for being small brain.

4 Likes

Enabled gizmos for the select tool and made the simple face markers a little bit thinner and fixed their directionality. Cylinders correspond to positive direction, and cones correspond to negative direction.

What do you think would be a more intuitive way to communicate this without building complicated things out of adornments?

It seems like Roblox has already broken the selection box override as it doesn’t make your selection box disappear anymore now it shows both.

Works for me, make sure your graphics settings are set high enough so the glass rendering of the selection box replacement (only visible on higher settings) hides the original selection box.

2 Likes

Yes unfortunately this only works with a high enough graphics quality level. I’ll look into whether or not I can set this automatically in the plugin but I’m skeptical.

2 Likes

Oh yes I kept my graphics down to 3-5 usually for big games I edit, but I do recommend saying somewhere to turn your studio graphics up so people won’t get confused on why it isn’t working.

Anyway, thanks for such quick reply.

I have rebranded this plugin to “Studio Tweaks” and added an important new feature to address the problem with Studio attempting to reselect every single descendant of a deleted instance when you undo.

I’ve also updated the icons to hopefully be a bit more clear and understandable.

You will need to reconfigure the tool, because I changed some setting keys.

4 Likes

Today I found 2 bugs

1st

the plugin seem to be blocking lines

2nd


when I press the sign the plugin blocks the GUIs

1 Like

Expected behavior. I cannot fix this since this selection box is a hack.

3 Likes

I can’t thank you more for this.

I can finally adjust really small meshes in peace without feeling like i’m blind.

10 Likes

This plugin is a miracle.
It seems like it is too good to be true.
But when I tried it out, it was so good that I could actually see what I was doing.
:+1:

2 Likes