How to leave some part of a player's avatar on a Custom avatar?

I want to make a StarterCharacter that has the same face on a player’s avatar for a game called Gentle Fighters (people dressed up as gentlemen but in a boxing ring). I have my StarterCharacter ready, I just want the face of each player to be the same face they have equipped on their avatar. Any ideas? The avatar preference is R6 if it helps.

1 Like

I don’t think there is a way to do that. I haven’t seen any tutorials about how you can set the face default to what the player has equipped, and I couldn’t figure out how that would work either. Perhaps try changing the category to #help-and-feedback:scripting-support instead of here, Roblox doesn’t have a default setting to do what you are describing. However I reckon a script could.

Oh, okay, and I’ll change the category.

You could use GetCharacterAppearanceInfoAsync to get the face of the player’s current avatar and apply it to that StarterCharacter.

Could you give a code example please? I clicked the link and I think this would be the solution, but could you please give me a code example with comments, so I know what the code does?
Thanks.

Ive seen games like Super Striker League and Dragon Ball Final Stand do it, but I dont think they use StarterCharacter

Here’s a simple script I made that makes it so whenever a new player joins, the decal of a part is changed to that player’s face.

local Players = game:GetService("Players")
local InsertService = game:GetService("InsertService")
local facePart = workspace.FacePart
local face = facePart.Face

local function changeFace(player)
	local playerAppearance = Players:GetCharacterAppearanceInfoAsync(player.userId)
	for index,asset in pairs(playerAppearance["assets"]) do -- Loops through the assets after getting the character's appearance
		if asset["assetType"] then
			local assetType = asset["assetType"]
			if assetType["name"] == "Face" then -- Checks if the asset type is a Face
				local faceId = asset["id"]
				local faceAsset = InsertService:LoadAsset(faceId) -- Loads the face asset into the game
				faceId = faceAsset.face.Texture -- Gets texture id of the face asset
				faceAsset:Destroy()
				face.Texture = faceId -- Changes decal texture to the face id
			end
		end
	end
end

Players.PlayerAdded:Connect(function(player)
	changeFace(player)
end)
1 Like