I love automated humanoid scaling. It saves me a lot of time and code I would need to write when implementing certain features, but sometimes it can be very quirky to work with… specifically, with multi-part accessories/accoutrements.
I have a very basic setup:
The red ball (2x2x2) is the handle, and the yellow part (1x1x1) is additional. They are welded through a WeldConstraint, and they are inside the same unmodified accessory.
Here, my abnormally deformed character with unclamped BodyTypeScale + BodyProportionsScale values (an exaggeration for the sake of demonstration):
BodyProportionsScale is 1, BodyTypeScale is 1.
As you can see, the red sphere got rescaled (as to be expected), but the yellow ball didn’t. This would normally be fine in most situations, but in the case of unions, for example, it’s not:
A quick demonstration. The water molecule is a simple three sphere UnionOperation, and the yellow, regular part is welded to it.
Becomes:
HeadScale is 0.5, BodyProportionsScale is 1, BodyTypeScale is 1.
Of course, here the effect was exaggerated for illustrational purposes, but on smaller hats it makes a big difference even in the default scale.
As a Roblox developer, it is currently very upsetting to work with the current system. If Humanoids took into consideration other parts inside accessories when rescaling them, our workflow could be way more streamlined.
Currently, our solution is to manually weld all parts to the character every time we need to do that (or use multiple hats, which doesn’t work every time). Using accessories is a nice way of snapping extra parts to the character without having to deal with welds.
Thanks.