ModelAssembler - Gracefully construct models

Unfortunately this won’t actually design your world for you, that would be pretty awesome though :grin:

Hi all, big update! Thanks to @steven4547466, the entire module is rewritten, and there are several new features to try out. ModelAssembler now uses OOP (object oriented programming) and provides external events using a Signal class. Full changelog below.

  • It can now only assemble model instances which must have a PrimaryPart
  • New Build and BuildOnce methods, these take a CFrame rather than a Vector3 to allow for rotation customization and building multiple times in separate spots
  • The model structure/hierarchy is completely the same after as the original it’s done constructing
  • Top level children that are not base parts are added last with no delay and do not fire InstanceAdded
  • ModelAssembler.FlyInFrom and ModelAssembler.StartingTransparency can be customized inside of InstanceAdded
  • ModelAssembler:BuildOnce(model, cframe, speed) will clean itself up after building is complete to prevent memory leaks
1 Like

I just wanted to show the possibilities and explain a little further.

By the hierarchy remains the same, I mean this:

As you can see, parts or models can exist within parts or models and still remain structurally the same. Top level non baseparts or models will also be cloned, but will not fire InstanceAdded (as explained above)

By being able to customize the fly in direction inside of an event, you can create effects like this:

You can also use the events to add sounds as well. InstanceAdded fires with the instance that was added and Completed fires with the entire model instance.

Though it uses a custom made Signal class, InstanceAdded:Wait() and Completed:Wait() are still possible. They will return the arguments passed as if it were a regular event.

2 Likes