How to change character appearance via script?

I tried every possible solutions but it seems I can’t find any solutions yet so I create a new topic here, so what I tried to do is this script.

Local Script

local CustomAppearanceDummy = workspace.CustomAppearanceDummy:Clone()
CustomAppearanceDummy.HumanoidRootPart.CFrame = whoStartDomainChar.HumanoidRootPart.CFrame * CFrame.new(0, 0, -25) * CFrame.Angles(0, math.rad(180), 0)
CustomAppearanceDummy.HumanoidRootPart.Transparency = 1
local yourselfDescription = game.Players:GetHumanoidDescriptionFromUserId(plr.UserId)
CustomAppearanceDummy.Parent = workspace.Effects
customChar:FireServer(yourselfDescription, CustomAppearanceDummy)

Sever Side:

customChar.OnServerEvent:Connect(function(yourselfDescription, CustomAppearanceDummy)
CustomAppearanceDummy.Humanoid:ApplyDescription(yourselfDescription)
end)

Please help.

1 Like

this explains it, but you should just be able to create a new character from a players appearance like:
Players:CreateHumanoidModelFromDescription()

I know but it’s local player’s humanoid description. Which mean appearance will not be the same.

how will it not be the same? have you tried it already or something?

I thought you could just get game.Players.LocalPlayer and pull humanoid desc from that

So basically I created a touch function to detects who touched and then fireclient event to their client and then create a customAppearanceDummy and what I tried is to create them via remote event because when I use ApplyDescription the custom player appearance will be buggy like invalid hat positions, etc.

local humdesc = game.Players:GetHumanoidDescriptionFromUserId(game.Players.LocalPlayer.UserId)

local Char = game.Players:CreateHumanoidModelFromUserId(game.Players.LocalPlayer.UserId)

Char.PrimaryPart.Anchored = true

Char.Parent = game.Workspace

Char:SetPrimaryPartCFrame(game.Players.LocalPlayer.Character.PrimaryPart.CFrame + Vector3.new(0,5,0))

game.Workspace:WaitForChild(game.Players.LocalPlayer.Name)

local hum = game.Players.LocalPlayer.Character:WaitForChild("Humanoid")

hum:ApplyDescription(humdesc)

I used this in a local script and the ApplyDescription didnt work, but It creates a new character

so maybe you could try using the remote to call
local Char = game.Players:CreateHumanoidModelFromUserId(game.Players.LocalPlayer.UserId)
and create the character because I assume you just need a new character not to apply onto the player

You could just apply all of the dummy’s properties to the character. For example:

game.Players.LocalPlayer.Character.Head.Color = Color3.new(0,50,0) - change their head color.

game.Players.LocalPlayer.Character.Shirt.ShirtTemplate = 0000 - shirt id to change here.

And you could change the properties of a character like this.

Hope you found this helpful :slightly_smiling_face:

Edit: To change it, you need a server script. So just fire the player’s name to the server via a remote event and have the server change just that player’s properties.

1 Like