HumanoidDescriptionFromUserId Cached until Manual Reset?

If I am currently ingame, and change my Avatar on the Site, and then use Players:GetHumanoidDescriptionFromUserIdAsync(Player.UserId) for myself on the Server or my Character Respawns via Death, my Avatar will not reset to its on-site version.

My Avatar will only correctly change to the on-site version if I manually Reset by Resetting via the Esc-Menu.

I’ve attached both a video, and the Roblox File used to demonstrate the Bug.


ShowcasingTheBug.rbxl (63.7 KB)

Here is the exact Script used to apply it’s new Humanoid Description. You can verify this with the Roblox File above:

-- SERVICES
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- VARIABLES
local RemoteEvent = ReplicatedStorage.RemoteEvent

-- FUNCTIONS
RemoteEvent.OnServerEvent:Connect(function(Player: Player)
	
	local Character = Player.Character
	
	if not Character then
		return
	end
	
	local Humanoid = Character:FindFirstChild("Humanoid") :: Humanoid
	
	if not Humanoid then
		return
	end
	
	local NewHumanoidDescription = Players:GetHumanoidDescriptionFromUserIdAsync(Player.UserId)
	Humanoid:ApplyDescriptionAsync(NewHumanoidDescription)
	
	RemoteEvent:FireClient(Player)
end)

Expected behavior

When Players:GetHumanoidDescriptionFromUserIdAsync(Player.UserId) is used, it should always fetch the new HumanoidDescription that the current User ID is wearing. The Player should not have to Manually Reset to Reset the Cache, or make it clear in the documentation that the player’s HumanoidDescription will cache until they manually reset.

1 Like