Easily Customize Characters Using Humanoid Description Tools!

Hello! I recently made a plugin that allows you to EASILY customize characters using humanoid descriptions. With this plugin, you can: Change a character’s bodycolors, accessories, body parts, faces, clothing, scaling, and much more(depends on what Humanoid Descriptions Support.)

Get the plugin: Humanoid Description Tools - Roblox
Plugin in use:

Source Code:

Source Code
pcall(function()
	local ToolBar = plugin:CreateToolbar("Humanoid Description Tools")
	local Selection = game:GetService("Selection")

	local Button = ToolBar:CreateButton("Give humanoid a description", "gives the selected character a humanoid description", game.Players:GetUserThumbnailAsync(182343133, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420))
	local Selection = game:GetService("Selection")
	local Interface = script.Parent.InterfaceGui
	Interface.Parent = game:GetService("CoreGui")
	local ChangeHistoryService = game:GetService("ChangeHistoryService")
	local ApplyButton = Interface.InterfaceFrame.ApplyButton
	local function CheckItems()
		local HumanoidDescriptionInstance
		local HumanoidInstance
		local ItemsSelected = Selection:Get()

		for i,v in pairs(ItemsSelected) do
			if v:IsA("HumanoidDescription") then
				HumanoidDescriptionInstance = v

			elseif v:FindFirstChildWhichIsA("Humanoid") then
				HumanoidInstance = v:FindFirstChildWhichIsA("Humanoid")
			end
			if HumanoidInstance ~= nil and HumanoidDescriptionInstance ~= nil then

				return HumanoidInstance, HumanoidDescriptionInstance
			end
		end
	end
	local function GetItems()
		local HumanoidDescriptionInstance
		local CharacterInstance
		local ItemsSelected = Selection:Get()
		for i,v in pairs(ItemsSelected) do
			if v:IsA("HumanoidDescription") then
				Interface.InterfaceFrame.DescriptionLabel.Text = v.Name
				HumanoidDescriptionInstance = v
			elseif v:FindFirstChildWhichIsA("Humanoid") then
				Interface.InterfaceFrame.CharacterLabel.Text = v.Name
				CharacterInstance = v
			end
		end
		if HumanoidDescriptionInstance == nil then
			Interface.InterfaceFrame.DescriptionLabel.Text = "No Humanoid Description"
		end
		if CharacterInstance == nil then
			Interface.InterfaceFrame.CharacterLabel.Text = "No Character"
		end
	end
	Selection.SelectionChanged:Connect(GetItems)
	ApplyButton.MouseButton1Click:Connect(function()
		local Humanoid, HumanoidDescription = CheckItems()

		if Humanoid ~= nil and HumanoidDescription ~= nil then
ChangeHistoryService:SetWaypoint("Currently Applying Humanoid Description To Character")
			Humanoid:ApplyDescription(HumanoidDescription)
			ChangeHistoryService:SetWaypoint("Set Humanoid Description To Character")
		end

	end)
	Button.Click:Connect(function()
		if Interface.InterfaceFrame.Visible == false then
			Interface.InterfaceFrame.Visible = true
			Interface.Enabled = true
		else
			Interface.InterfaceFrame.Visible = false
		end
	end)	
end)


How To Use:

How To Use

First of all, you’re going to need to install the plugin using the link above, or here

Second step, go to a studio place file and insert a character by going to the plugins tab and click on Rig Builder


Once you do that, you should see this pop up. After that click on any one of these buttons and they’ll insert a character(which is what we need.)
image

Third Step, go to the plugins tab and click on the Humanoid Description Tools plugin. And click on it.

Once you clicked on the plugin, a UI like this should pop up
image

Fourth step, insert a humanoid description into workspace(or anywhere else). This is what we’ll use to customize the character!
image

Fifth step, Customize the Humanoid description! You can edit the humanoid description by going to the properties tab. In order to add stuff to it you’ll need to get the asset ID of the desired item. You can get this by going to the item, looking at the url. And Copy the numbers. Insert into the humanoid description to what type of item the item was. So for example, if your item was a hat, you’ll need to insert the ID into the HatAccessory Property.

Finally, we’ll need to apply the humanoid description to the character! First select the character. Make sure the character has a humanoid object in it, otherwise the script wont know that it’s a character!
After that, you should see the “No Character” text change to the character’s name:
image
Next, you’ll need to hold CTRL or SHIFT and select the humanoid description that you inserted. After you do that the “No Humanoid Description” text should change to the humanoid description’s name.
image

Last but not least, applying the humanoid description to the character. Once ALL of these steps are done, press on the green apply button. As you can see, the character should’ve changed if you did these steps correctly!
image
Before:
image

After:
image

Plans for the plugin:

Plans
  • Add a: “Spawn Character with Humanoid Description” button
  • Make Humanoid Description Saves

If you encounter any bugs, issues, or have any feedback/suggestions the feel free to say below!

1 Like

It would be better if this plugin allowed you to set the HumanoidDescription’s properties directly before applying it. Still, nice contribution.

1 Like

One question, what do you mean by this? You can customize the Humanoid Description before you click apply. It only applies AFTER you click the button. Can you please explain more on what you mean?

I meant customizing the HumanoidDesc’s properties directly from the plugin. For example, there might be a button for setting the HatId of the desc, allowing you to select from the entire Roblox catalog of hats in a dropdown of some sort.

I understand making something like that is quite complex and it may be out of your range. In the case you do want to make this, use roproxy.com to get the Catalog items. You can also check out the original post on RoProxy.

1 Like

Thank you! I’ll look it into it

1 Like

Cool and more successfully than my first plugin which was a failure but, why are you wrapping the plugin in pcalls? Pcall isn’t efficient and should only be used in datastore and web calls.

1 Like

Since it’s your first plugin, I’ll help you a bit. You can move the character by

character:SetPrimaryPartCFrame(workspace.CurrentCamera.CFrame)

You can save it inside the tables plugin.

Just to help you a bit

1 Like

I’m using a Pcall because theres an error saying: “Cannot create button with ID: “id here”” or something like that. So I just used Pcall so it goes away. I dont know how to fix that tho