Let us set the origin of BaseParts/MeshParts

Edit: This has been provided by Pivot Points. Thanks @tnavarts!


As a Roblox developer, it is currently too difficult to manage resizing parts dynamically while maintaining their positions which may be constrained but are non-static. What I mean is that if I have some part following a path, and I decide to resize it, it will always resize symmetrically regardless if you use the size property or the :Resize() function. This is because the position is always being updated; it’s dynamic but constrained.

i.e., please let us set the part’s position origin so :Resize() actually becomes more capable. With it always being in the center, updating position now depends on how much the size has changed which sounds more hacky than anything - we’d have to keep track of initial sizes and compare to that every time a resize event occurs. A lot of overhead that can be cleanly avoided.

If Roblox is able to address this issue, it would improve my development experience because:

  1. There won’t be a hassle in trying to “make up” for the position when we try to resize parts along a certain face
  2. Rotation capabilities, no need for hinges if we want to freely rotate about some local origin
  3. It’s a lot more intuitive - we can already set the origin for 2D GUIs. There should be an analog for 3-dimensional objects

Also I’ll note that you can do some interesting things with special meshes but that sounds more like a workaround, and doesn’t offer the benefits I mentioned above. Not to mention, not every part ends up being a special mesh and it becomes more difficult to apply this to larger groups of objects.

4 Likes

I think that resizing functionality is niche enough that it would be better provided by a Lua module rather than a built in function. There’s nothing stopping you from writing a reusable Lua module which does this.

Uniformly scaling is a more common operation which would be nice to have, but there’s so many options on exactly how you want to handle uniform scaling that it would also be better to write as a flexible Lua solution which you can tweak to fit your use case. For instance, should Rope and other Constraints with a length have their length scaled as part of the scaling operation? That’s just one example, there’s enough decisions to make that it would be hard to expose them all on a built-in function.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.