Problem:
The scaling parameters for a Humanoid (HeadScale, BodyHeightScale, etc) are no longer present for the generated characters in Start: Local Server mode. (These parameters are fine and present in Play Mode.)
Screenshot of Character’s Humanoid in Local Server Mode:
Screenshot of Character’s Humanoid in Play Mode:
This Is Important
This is important in order to test scaling code in Local Server Mode. I have a game that scales characters, and I cannot test scaling now due to this bug.
When Did This Bug Start?
I am not sure when this bug started, but I do know for a fact that in the past the scaling parameters were present in Local Server mode.
Notes:
My game is set to automatically morph players to R15. The character does enter the game in R15 mode, but does not have the scaling parameters when in Local Server Mode.
This has been an issue for me as well (along with the test character’s appearance never actually loading in Local Server mode). The BodyColors object also doesn’t appear in Local Server mode either. I’ve had to add code that manually inserts these objects if the game is running in studio with test characters.
I found out, I am able to reproduce it. A plugin of mine that dressed testplayers as friends was preventing me form seeing the bug. Setting the charcterAppearanceId of test characters must be preventing the problem.
The default Player1 that spawns normally does not have any of these body scale values, they are very bare bones. If you want to test with real avatars, you can either use the plugin, or on the server on PlayerAdded just set CharacterAppearanceId like so:
if player.UserId <= 0 then
player.CharacterAppearanceId = SOME_REAL_USER_ID_HERE
end
I think that developers are expecting the Value objects to always exist in characters. Setting CharacterAppearanceId may be a work around, but the unexpected functionality is the issue.
But these values used to be included in the past. So somewhere along the way, within the past 6 months, a bug got introduced and now these values are no longer present.
I’m not sure in what context you’re remembering these. For local client and server tests, the characters that spawn have never had appearance data. They have CharacterAppearanceId of 0, for which no appearance data fetch is even done. For CharacterAppearanceId > 0, a web request is made for the avatar appearance, which includes the body scales and colors.
The event Player.CharacterAppearanceLoaded does not fire for these “Player1” test characters either, and never has, for the same reason. This is why, for testing all aspects of character loading, it is recommended to give the test players some valid CharacterAppearanceId values. The test players have UserIds of -1, -2, -3, etc… in the order they join, so you can just check for negative userId on PlayerAdded, negate the value, and use it to index into a list of real userIds to use for CharacterAppearanceId.
Until fairly recently (with the additions for anthro support), body scale value objects were only created (in a live game) if one or more had non-default values. They were present most of the time, because most players have adjusted at least one value, but players who had made no scaling changes, or who were being forced from R6 to R15 by the morph-to-R15 game setting could have no body scale value objects. Now, they are all present even if the values are the defaults.
The Local Server Mode did indeed spawn characters with all the scaling values present in the Humanoid (HeadScale, BodyHeightScale, etc). In fact it was one of my feature requests from last year that initially introduced the scaling values into the Humanoid in Local Server Mode.
That is how I tested my whole game, since it depends on scaling. Without those values, I would not have been able to test my character scaling. The last testing I did was in December 2017, so I know all those scaling values were present in characters spawned in Local Server Mode at that time.
I dug a little deeper and found where these were coming from. There was indeed an R15 grey block guy rbxm model from August 17 to may 18 who had these value objects set to their defaults. They went away when the prototype for the default R15 player was updated to be compatible with the new body scale system (which includes BodyTypeScale and BodyProportionScale) which now gets all the character scale values from a web call as part of each player’s avatar appearance load. Poor grey block dude, for lack of valid UserId, is getting no values.
I will file a bug ticket for this.
I also found that this issue I had worked around at the end of last year—players on live servers missing these body scale value objects–was an entirely separate bug related to morphing R6 players to R15 on the fly.
I noticed this too but I thought it was intended because LocalServer Characters don’t have any Character Appearance so it doesn’t have the Humanoid Scaling Stuff.
Just PlaySolo then copy them from your Character then paste it inside the LocalServer Characters
or you can do StarterHumanoid
A Humanoid instance named StarterHumanoid , which will be used as the default humanoid for each player’s character
This will affect more than just local testing, if you put body scale values in here, all players in a live game will get these scales.
If you just want the body scale value objects to exist for local client-server tests, you can add them to the model found here (windows path). This is the R15 test character, so it will only show for places published with avatar set to R15 only.
C:\Users\<username>\AppData\Local\Roblox\Versions\version-<current studio version id>\content\avatar\characterR15V2.rbxm
You can do Workspace->Insert from file… then add whatever you need to the resulting “Player” model, then right click the Player and Save to file. If you want the original back, you can either make a backup copy, or just take the one from the corresponding place in the Roblox Client content/avatar directory.
Like with anything that you temporarily add to the content folder to use with rbxasset://, this will get blown away each week when Studio updates, so if you make a custom character you like for testing with, save a copy outside of this folder too.