I can start working on that, but first I want to check you understood my OP. the player themselves cannot see this issue, only other can. You will need multiple people to see it.
In other words, a player can only see the scaling issue on other players. To yourself, you avatar always looks fin.
Looking into this file has lead me to a similar conclusion as @Maximum_ADHD.
This seems to be caused by changing the scaling values too quickly, one after each other. If you add wait(1) between each if block in characterScale.initializeScale() in the CharacterScale module, the issue no longer occurs.
Obviously this isn’t the optimal solution for a game.
You can get away with just wait(), but there is a noticeable delay unfortunately.
I frequently see issues with manipulating character scale values too quickly.
I’ll put together a thread for this since I can’t find one for this particular case.
Actually, it looks like you’re doing this before the character has even fully spawned. You need to use CharacterAdded. This resolves the problem without any gross wait juggling.
I don’t think I’d call this a bug. It’s moreso undefined behavior.
In ServerHandler, make the following changes to the characterScale.initializeScale(player) line.
player.CharacterAdded:Connect(function(char)
characterScale.initializeScale(player) -- this handles settign up the player for scaling events as well as setting initial scale
end)
Sorry for double-posting. Should this be en Engine Bug report? The code I have provided is very simple and just scales the player based on the examples and methods provided as best practices. It fails repeatedly to scale the hats and any other attachments on the head.
The code I have provided is very simple and straight forward. I have even uploaded the game to a public place playable place and have provided screenshots proving the issue happens in live games.
I cannot of course submit an engine bug report. Does anyone else think it is time to do that?
I still think this is a bug that could be addressed, but I managed to “fix” the issue by cloning the accessories, destroying them, then parenting the cloned ones to the character.
for i,v in pairs (player.Character:GetChildren()) do
if v:IsA ("Accessory") then
local clone = v:Clone()
v:Destroy()
clone.Parent = player.Character
end
end
Though this might work for now, I wonder if it could still be a bug that is addressed?
I dropped this project after deciding that extreme scales had too many problems. In particular with lighting. At large sizes, above 3x normal size, the lighting was just bad indoors.
That said i was doing destroy,clone, parent every time the player changed sizes to deal with the accessory scaling.