What it does:
Ever wanted a plugin that could stretch your buildings? (Not Resize). This simple tool I made can do reflect, stretch, turn it into a parallelogram, widen, or make models taller much more easily.
Link to plugin:
How it works:
Current BasePart primitives in Roblox are Parts, WedgeParts, and, CornerWedgeParts (excluding TrussPart and MeshPart and SpawnLocation). Sometimes, if you stretch the corner vertices of a Part, you transform the cuboid shape of a Part into something known as a Parallelepiped.
This primitive on the right now has to be made up of a new primitive as all Parts are cuboids and cannot become what you see on the right.
My plugin efficiently handles this by creating parallelogram faces which make up the new primitive (of which, each parallelogram uses one Part and two Wedgeparts to save on the number of parts needed to make the face.) It also optimizes polycount where necessary → If the Part being stretched isn’t being stretched at an angle as in the image, it will not waste resources in trying to turn it into a Parallelepiped and instead keep it as a normal cuboid Part. Lastly, my plugin also stores custom CFrame data in each of these new primitives if they’re ever constructed so that when you go to stretch them again (with my plugin), it won’t increase the polycount / PartCount further (by re-using that data).
From there, it also does something similar for WedgeParts and CornerWedgeParts (by constructing new primitives when necessary which attempt to minimize polycount).
When moving the XYZ points, right-click and ensure you use local space as this lets you drag those points parallel to the bounding box of the model.
Try anchoring your model before stretching.
I personally recommend using blender where appropriate to stretch meshes / meshparts as a roblox-mesh cannot undergo a shear transformation and hence, they cannot be stretched in all directions [but it does approximate them okay-ish sometimes → avoid shear transformations (only stretch and resize)]. It currently cannot stretch unions, though I might see if there is a possible way to do this in future.
For more info, open settings in the plugin and/or read the plugin description on it’s install page.
This was originally released in 2018 but I thought I should do a write-up on how it works and a thread for bug fixes.
Lastly, do make use of the 3-side buttons: Settings [Cogwheel icon], Vector Lengths [RGB arrows icon], and, Local Matrix Data [Tic tac toe button].
How I could potentially create CSG stretching in future (is this feasible?):
Instead of using WedgeParts and Parts to make up the new, stretched primitive, I could cut away chunks from a part with union/negate operations. ($)
From there, if I take any union and separate it out into it’s negative parts and positive parts, and then transform all of them with the ($) method, and then re-union all of it after → it could essentially stretch a union. Though, I wonder if this would work reliably and if it would lag a lot.
My profession isn’t building but i’ve always had issues with resizing entire models because roblox always tries to keep the aspect ratio of a model the same when resizing when i only need it wider or taller. This plugin is a godsend.
This is a great and powerful tool to use, but I’m noticing an issue that I simply can’t look over at the moment. The stretch isn’t entirely accurate to the stud increment and so far it’s impossible to accurately achieve the correct dimensions you want on your model.
I apologize if my wording seems off but currently I’m trying to resize a model down by a set number of studs and it’s not giving me the correct length, instead of setting it at the size I want, which is 35.62 studs long, it’s misaligned by .01 stud off. Stretching it again continues the issue as it get’s closer to the measurement I want, but it’s never accurate.
I am sure this post goes against the “Open-source only” rule mentioned in the pinned About post of the Community Resources category.
Only post resources with a substantial free or open-source component here ( code must be open-source ). Post paid or closed-source service subscriptions, plugins, and other resources in #help-and-feedback:creations-feedback instead