Yes i know there’s a billion questions like these, but the only answer i could find goes something like this:
This makes it so the player character looks exactly like the Model StarterCharacter. But i don’t want that to happend, i only want the mesh to change. Is there a way to do this and keep the player’s colors/accessories/face?
I’ve tried
for _,v in ipairs(script.DefaultMesh:GetChildren()) do
if v:IsA("MeshPart") then
local CharacterMeshPart = PlayerCharacter:FindFirstChild(v.Name)
CharacterMeshPart.MeshId = v.MeshId
end
end
but it gives an error: “The current thread cannot write ‘MeshId’ (lacking capability NotAccessible)”
i had a similar issue as a lot of the mesh properties are read only, if you have a specific mesh that you wish to use, make a reference object of it and instead of writing the meshid, clone the mesh object with the desired meshid into the part you want to change. texture should be writable so you can use the original mesh texture if need be.
Cloning a mesh object into the character’s bodyparts doesn’t change the way they look. Probably because they’re “MeshParts”, i tested with a regular part and it did work.
Player.CharacterAdded:Connect(function(Character)
-- HumanoidDescription that contains everything about the player character
local HumanDescription = Players:GetHumanoidDescriptionFromUserId(tostring(Player.UserId))
-- Change the specific properties you want, for example:
HumanDescription.LeftLeg = 376531300
HumanDescription.LeftArm = 376530220
HumanDescription.RightLeg = 376531703
HumanDescription.RightArm = 376531012
HumanDescription.Torso = 376532000
HumanDescription.Head = 0
-- And keep the rest:
local Humanoid = Character:WaitForChild("Humanoid")
Humanoid:ApplyDescription(HumanDescription)
end)