While working on some models for my game, I realized how hard creating repetative objects can be. So, I created a plugin to help me!
As far as I know, nothing like this exists, and, I think it’s really useful because it allows for fine tuned scaling and repositioning of models.
Templates
Snapping
How to use it
Some details to note
Using the Create Bounding Box feature for models that have a BoundingBox part updates the BoundingBox part instead of creating a new one
Currently when changing the bounds of an object all of its joints are broken. This isn’t desirable and I’ll see if I can fix it in the future if there is a demand for it.
Currently only Models and parts are supported as valid objects. Again, if there is a demand I’ll see about adding support for non Model instances if you for some reason use Folders.
I’ll soon add a setting to use size offsets instead of scales, so if you have a part that’s 1 stud smaller on each axis than the bounding box, the rescaled version would still be 1 stud smaller. That’d be useful if you want to retain proportionality.
Copying templates
To copy a template model to a bunch of bounding box parts/models you first select the template. Then you select all of the models or parts you want to copy the template to. The template is parented wherever the object its being placed at is parented, so, this makes it easy to replace lots and lots of models at once. Then click this button:
Snapping lots of objects to a target
If you want to snap one or more objects to the same target, you select the target bounding box first. Then you select all of the objects you want to relocate to the target. Finally, you hit this button:
Creating a bounding box for an object
To create a bounding box for one or more Models, just select them and hit the Create Bounding Box button. When creating templates, its useful to create a bounding box this way and then copy it and move it wherever you want to place those objects.
The bounding box will go under each model like this:
In my game I am doing a lot of building currently and designing models for objects. I published this plugin because I thought it was very useful and others might find it useful as well.
You can see I utilize the small light piece a lot, and, when I want to update all of them I can edit the template light piece and then select each of the others and use the template feature to update all of them very quickly. Then I can delete the old ones.
Additionally, its useful because I can apply the same template model to different sizes too, for example, I can have longer light bars. Another example, for the top plates I could easily create a template for them, they are just different sizes, and then I could apply the template to all of them.
I’ve been using it very heavily while working on my game because there are a lot of things like this where bits get copied a bunch of times.
Here is another example of that:
These models are old sample models that I use for scaling and things, the effects & colors are applied by code now, but, I use that connector piece on lots of different models.
Copying these sorts of things when I update them is very easy for me to do with this plugin. (And since effects are applied by code now, I can just use the default color for each of them)
This might an impossible request but I’ll give it a shot.
I was thinking that it should also be easy to rename parts and replicate it to the other copies as well, this is quite difficult but it can be achieved with either Attributes or CollectionService.
I don’t know about others but for me it’s easier to find parts and make changes when they are named and organized properly
I don’t quite understand what you’re requesting. Do you mean, when copying objects from a template the descendants keep part names from the targets? So, if you select a template and select a bunch of old models and each have different descendant names but the same model the descendants keep the old names?
Currently the way I have been utilizing the template feature is to modify one copy of a specific model, then I select all other versions of that model, copy from the modified template, and delete the old models.
Are you asking that it be possible to keep certain properties of each of the old models like Name or am I misunderstanding?
I’m not sure I’m understanding. Do you mean updating the existing models without copying it again? And, do you mean doing so automatically?
I would like to add a way for you to “link” models to eachother. So, you can select the template, then select the copies, then you can use the link feature to start syncing changes. That could add an ObjectValue under each copy to reference the template (and tag the value). The plugin could use CollectionService to find each of the tagged ObjectValues, and, automatically sync changes between the template and the targets when it starts so it pretty much saves.