Custom avatar loading rig has scaling issues

I have been working on a system that copies an altered character model rig with removed arms, legs etc. that has custom scaling. This will create a scaled down model of the player’s head for usage on an antenna:
image

The rig looks like this:

Rig

image
image

This is the main part of the script, there are also some other parts left out, like particle removal and welding etc.

Script

The way my script updates the head currently is by taking the modified HumanoidDescription from the rig, changing the parameters like face/head/accessories etc. to the ones from the player and then reapplying the updated HumanoidDescription to the humanoid of the rig.

For use as an antenna, I scaled the head down to 50% using the HeadScale properties (both the value inside the Humanoid as the property inside the HumanoidDescription).

The issue:
In studio, this works fine, even with multiple people. When testing in a live game, however, some parts of the heads of other players appear to be out of proportion/position. The strange part is that to those other players, their own antenna (head) looks completely normal.

Examples of this:

image
^ Screenshot of my own antenna

image
^ Screenshot of another player looking at my antenna, notice how the accessories look way bigger.

image
^ Notice how, when I take a screenshot of my friend’s antenna, his also looks out of whack. However, to him it looks completely fine.

To fix this, I’ve tried manually welding all the parts together and also I have tried removing the humanoid. These solutions unfortunately did not fix the scaling issue.

Help/advice is very much appreciated, thanks.

First of all, this is a really creative idea and I love it

In concern of the problem, is it possible to maybe re-position the broken accessories into the right position.
Also are you applying the description from the server, or from the client then replicating it? Since it’s really weird that this shows different results to you and another player, if it’s being replicated that maybe the thing messing it up

1 Like

Great question, didn’t think about that yet.

The tank is first made on the server (with an empty head rig), then the NetworkOwnership gets transferred to the player who owns the tank (so the player can control it locally). Because the GetHumanoidDescription function yields, the hats etc. will be applied a split second after that has happened.
The script (which I screenshotted earlier) that applies the new HumanoidDescription is ran server-sided.

Edit: regarding the position question, it seems to me that the position is what it is supposed to be at 50% scale, but the scale of everything seems to have snapped back to 100%.

1 Like

I’ve just played around with networkownership and head scaling, but I can’t find anything. I assumed the script you sent was in a server script. When is NetworkOwnership of the head set to the player?

If I recall correctly network owership can only be set from a server script so I guess this is a server script.

This is a really strange problem