The All Rounder - Plugin for rounding Position, Size and Orientation *New V1.2*

Hi DevForum

I have created a Roblox Studio plugin to help builders keep their constructions to a grid, preventing overlaps and tiny gaps. It can be used to round off the position, orientation and size of any part or mesh.

Update: Version 1.2 released. Changed position setting mode from CFrame to position. Will now work properly on welded parts.

Presenting: “The All Rounder”

https://web.roblox.com/library/7199946756/The-All-Rounder

How to use the plugin

Install the plugin as normal from the Roblox website.

rounder_toolbar

Click on the “The All Rounder” icon in the plugin tool bar to open the plugin interface.

image

The plugin is divided into three sections, each one controlling the rounding of Position, Size and Orientation, as labelled in the interface.

Select parts or meshes in your workspace. The plugin will affect all of what you have selected and all descendant parts, including the individual parts inside models.

Press any of the smaller shortcut buttons to round off the selected part’s Position, Size or Orientation to the value listed on the button. If you want to round off to a custom value, then enter the value in the “Custom Value” field and then hit the big button to the right of the Custom Value Field.

NEW The axis tick boxes on the right of each section will limit the rounding to only the axis’s ticked on.

Notes on Use

When rounding, the plugin will obey the standard rounding rule of 0.5 rounding to 1 and anything less than 0.5 rounding to 0.

As Roblox does not allow size values of 0, the Size rounding function will not try and round a part to zero, instead it will set its scale to the rounding value. i.e. 0.4 rounded with a rounding value of 1 will return a 1, not a zero.

Position and orientation rounding will correctly return negative values and zero.

Demonstration Video

This is my first plugin release, so I hope it all works for you. Please post any bugs here and I will try and fix them.

Thanks to Pop_Panda94 for some help with the selection and rounding scripting.

Release Notes

Version 1.2 – 04/02/2022 – Changed position setting mode from CFrame to position. Will now work properly on welded parts.

Version 1.1 – 15/04/2021 – Added axis constraints and GUI code simplified.

Version 1.0 – 08/04/2021 – Initial release.

Possible upcoming features

-Customizing each of the shortcut button values
-Toggling between part mode and model mode, to respect a model’s pivot point.

36 Likes

Could you make it public! I really want to try it :happy3:

1 Like

Sorry, I thought the sales thing was for actually selling it. I think it should be useable now?

2 Likes

AMAZING! I can see me falling in love with this. Sometimes getting the little details just right is so annoying. THANK YOU SO MUCH!

Cool plugin! I think it’s neat but not 100% necessary. Simply changing your stud increment is a simple solution to this problem. Quickly do this by pressing Shift + 2.

2 Likes

Yes shift-2 is a shortcut to grid snap settings, but this is a tool to use while having grid snap on. This plugin will allow you to re-grid parts that may have got mis-aligned through rotation or scaling groups. Or fixing models that someone made not using grid-snap.

I’m a huge believer in having grid snap (almost) always on. This tool supplements grid snapping.

1 Like

This is amazing! This will speed up my building by a ton! No more overlapping parts :wink: (Since I don’t like using increments.)

1 Like

Thanks for your input, but as I mentioned, this plugin is a supplement to grid snapping, not a replacement. There are multiple situations that a part or parts can become out of alignment, even when carefully using grid snapping. If you rotate or scale groups of parts, very often they will lose their grid positions and size. Also if you use the dragger, that too can throw off the position of parts.

This video shows a few more examples of situations where it can be useful.

The All Rounder is not a perfect solution, but can help.

8 Likes

Hi DevForum

I have updated the plugin to version 1.1
Now it has a new a new axis constraint feature that makes the plugin only affects the axis’s ticked on.
I’m not sure if anyone was wanting this feature, but it’s something that I thought could be useful. I have already used it a few times!

I also reworked some of the GUI code to make it a bit simpler. Still learning!

This plugin looks really good but i’m struggling to try to get it to work- I have an island and it already has parts aligned pretty well, but it would be ideal if it was a in a 1x1x1 size grid.

I believe this could be fixed if parts scaled from the faces of eachother instead of rounding up their values. Though maybe there is a certain way to do this in the plugin that I’m not grasping.

Another issue appears is that parts can offset in weird ways despite having being without size or position decimals offsets, its like tiny gaps can appear, but I don’t know how? (They aren’t stud-sized gaps either).

I can see how it can be a bit tricky to understand how items round like they do using the plugin, but once you get the hang of it, it does works in a consistent way.

So when rounding size, it is important to know that it rounds the size from the center of the part, not from it’s corners or faces. So the edges of a part wont “snap” to the rounding values, it just makes the part the rounded size. While as you suggested it could be “fixed” by scaling from the faces, that would require pretty complicated code and the plugin would behave quite differently.

For your last point, I cant make much comment without seeing what you are doing. But one thing I do know is that to get a bunch of parts to fit together perfectly, you have to round their size by one value, then round their position by half of that value.

It’s a bit hard to explain why this works but I’ll try. If a part is 4 studs long in the x and located at x=4, then rounding position and size to 1 will not move or scale the part, it remains on a 1x1 grid.
However if the same part is scaled to a 3 in the x, by dragging out a corner, it’s position actually changes to 4.5. So when a scale and position rounding to 1 is applied, the scale does not change, but it’s position is rounded to 5 and now it has a 0.5 gap or overlap at each end. But if instead we apply a rounding of 1 to the scale and half the original value to the position (0.5) then the part’s size remains 3 and it’s position remain 4.5 and a gap or overlap does not appear.
Hope that helps. It’s just how the plugin works and once you understand, then it should make logical sense.

1 Like