Character scale and hats, hair, etc. bad scaling

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.

I understand the issue. Your images are plenty sufficient to show the problem.

OK cool, will start working on it now, thanks

@qqtt991

testScale.rbxl (28.0 KB)

Heres an image, we just reproduced the issue just now. Here is how I looked to another player:

and here is how I look to myself:

Another image from a mobile device has my hair inside my back and glasses behind my head

This might be a replication bug with avatar scaling.
cc @CodeWriter

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.

OK so i need a 1 second wait between each of BodyDepthScale, BodyHeightScale, BodyWidthScale?

Thats a long wait between each one. Will try it now

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.

So yeah, i added a delay of 1 and also .1 and in both cases I still got the problems

besides it is very bad looking to see all the scales change that way.

Strange. Resolves the issue for me.

The issue

Fixed

Code changes - note the wait()s

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)

My testing partner said he saw no glitches on my avatar, but I saw one on his. I did a second test just now and got this:

and this:

here is the code:

also I am in an actual live game, not in studio test modes. Would that matter?

Please try the actual fix I just posted.

didnt see until just now, testing it.

Also, how do i put accessories on while testing in Studio?

You can try setting the CharacterAppearanceId property of Player to your userId, then resetting your character and respawning.

just now with your above fix:


MEGA GLASSES!

thanks for helping thus far, BTW. Really appreciate it.

added it like this:

player.CharacterAdded:Connect(function(char)
    characterScale.initializeScale(player) 
end)

EDIT:
BTW I cant repeat this is Studio Test so far:

Still happens in live game.
Link to live game is here: Sizeable Game - Roblox

this continues to be a problem on a live game. The character hats get the wrong position after scaling several times:

This is the player themselves view:

and this is a second player with viewing the bug with different results:

The live game is here: Rebuild - Roblox

You can downoad the file running there here: testScale.rbxl (26.6 KB)

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?

latest files for testing: testScale.rbxl (26.4 KB)

EDIT:

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?

1 Like

I’m having this problem in my game did anyone find a better solution?

Maybe this thread could provide more insight

and this

https://www.roblox.com/library/201433042/Scale-Character-Module

Note: this Module has Positional & Scaling problems too


@Planet_Dad

  • Do you need to Clone and Destroy every time or just once?

    • If more than once, when?
  • Instead of Parenting can I use Humanoid:AddAccessory() instead?

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.

Not sure about Humanoid:AddAccessory()

1 Like