Change player rig upon join

Hi,

I’m trying to make it so that when a player joins the game, it loads them with a rig. I put it in the package, but it says the package is not a valid member of the humanoid description. If I do put in the custom IDS of every body part, it doesn’t load either.

What am I doing wrong?

ServerScriptService:

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	player.CharacterAppearanceLoaded:Connect(function(character)
		local humanoid = character:FindFirstChildOfClass("Humanoid")
		if not humanoid then return end

		local description = humanoid:GetAppliedDescription()

		description.Head = 0
		description.Torso = 0
		description.LeftArm = 0
		description.RightArm = 0
		description.LeftLeg = 0
		description.RightLeg = 0
		description.Package = 86500078

		humanoid:ApplyDescription(description)
	end)
end)

I also attempted cloning the rig from replicated storage, but another issue occurs which makes my character not move at all.

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local defaultRig = ReplicatedStorage:WaitForChild("DefaultCharacter")

Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		wait()

		local clonedRig = defaultRig:Clone()
		clonedRig.Name = player.Name
		clonedRig:SetPrimaryPartCFrame(character:GetPrimaryPartCFrame())

		player.Character = clonedRig
		clonedRig.Parent = workspace

		character:Destroy()
	end)
end)

It’s exactly as it says, there is no “package” property in humanoid descriptions.
image

You have to get the ID for each of the limb of the package instead.

1 Like

You could rename the rig to ‘StarterCharacter’ and place it in the StarterPlayer instead of ReplicatedStorage. That should avoid the need for any scripts.

2 Likes