How do i put the characters default chosen face from avatar catalog that they have equipped onto a custom starter character?

Im trying to put the default avatars face on a custom avatar. The custom avatar is just an R6 Rig.

This is what i have. I dont understand why this doesn’t work. Let me know if anyone can see the issue with this.

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local head = character:WaitForChild("Head")

		-- Removes existing face decal from StarterCharacter
		local existingFace = head:FindFirstChild("face")
		if existingFace then
			existingFace:Destroy()
		end

		-- Clone the player's face decal
		local face = game.Players:GetHumanoidDescriptionFromUserId(player.UserId).Face
		if face and face ~= 0 then
			local newFace = Instance.new("Decal")
			newFace.Name = "face"
			newFace.Texture = "rbxassetid://" .. tostring(face)
			newFace.Parent = head
		end
	end)
end)

Extra.
→ This is a ServerScript located in ServerScriptService
→ This is done on a Roblox Default R6 Rig Custom Character. (Rig Isn’t Custom. Its made by Roblox)

local face = "rbxassetid://" .. game.Players:GetHumanoidDescriptionFromUserId(player.UserId).Face

The face just goes blank when I do this method. I checked the decal value, and yes it’s got the ID in it but the face isnt loaded onto it for some reason.

Must have worked for me at some point.. you’ll have to apply it also.

well im just taking a quick glance so maybe i missed something but if you use existingFace to destroy it then it wouldnt work because i mean you can infer the face isnt there by my explanation

Found a lazy workable solution. For anyone out there trying to do the same, here’s a method that works. It must be backed by a server script. I just get UserDescription from UserId and then remove the accessories and apply the description and it slaps it on the face.

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(Character)
		local Humanoid = Character:WaitForChild("Humanoid")

		--//Get avatar description\\--
		local description = Players:GetHumanoidDescriptionFromUserIdAsync(Player.UserId)

		--//Rmoving accessory types\\--
		description.HatAccessory = ""
		description.HairAccessory = ""
		description.FaceAccessory = ""
		description.NeckAccessory = ""
		description.ShouldersAccessory = ""
		description.FrontAccessory = ""
		description.BackAccessory = ""
		description.WaistAccessory = ""

		--//Apply the description\\--
		Humanoid:ApplyDescription(description)
	end)
end)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.