When I change the HumanoidDescription of an R6 Character, the player doesn’t update. Is there an alternative way without using LoadCharacterWithHumanoidDescription?
Are you trying to resize/scale the R6 character? If yes, then I use the following to achieve that:
local function resizeR6(clonePlayer)
local Motors = {}
table.insert(Motors, clonePlayer.HumanoidRootPart.RootJoint)
for i,Motor in pairs(clonePlayer.Torso:GetChildren()) do
if Motor:IsA("Motor6D") == false then continue end
table.insert(Motors, Motor)
end
for _, v in pairs(Motors) do
v.C0 = CFrame.new((v.C0.Position * characterScale)) * (v.C0 - v.C0.Position)
v.C1 = CFrame.new((v.C1.Position * characterScale)) * (v.C1 - v.C1.Position)
end
-- RESIZE PARTS
for _, Part in pairs(clonePlayer:GetChildren()) do
if Part:IsA("BasePart") == false then continue end
Part.Size = Part.Size * characterScale
if Part.Name == "Head" then
Part.Mesh.Scale = Vector3.new(1.5, 1.5, 1.5)
end
end
-- RESIZE ACCESSORIES
for _, Accessory in pairs(clonePlayer:GetChildren()) do
if Accessory:IsA("Accessory") == false then continue end
Accessory.Handle.AccessoryWeld.C0 = CFrame.new((Accessory.Handle.AccessoryWeld.C0.Position * characterScale)) * (Accessory.Handle.AccessoryWeld.C0 - Accessory.Handle.AccessoryWeld.C0.Position)
Accessory.Handle.AccessoryWeld.C1 = CFrame.new((Accessory.Handle.AccessoryWeld.C1.Position * characterScale)) * (Accessory.Handle.AccessoryWeld.C1 - Accessory.Handle.AccessoryWeld.C1.Position)
local AccessoryMesh = Accessory.Handle:FindFirstChild("Mesh")
if AccessoryMesh then
Accessory.Handle.Mesh.Scale *= characterScale
end
local AccessoryPart = Accessory.Handle:FindFirstChild("Part")
if AccessoryPart then
Accessory.Handle.Part.Scale *= characterScale
end
end
end
When the character loads, check it for Torso, if true, do that above.
6 Likes
That wouldn’t work for R6, only for R15
1 Like