UPDATE: 19 OCTOBER 2021, DON’T USE THIS MODULE
See this post, this module won’t be maintained or updated anymore as Roblox has existing functions that do this:
Questions you may have:
Why Character+?
Character+ is a completely free, open-sourced module which contains functions which aren’t easily accessible for new developers/developers who want an easy solution.
Can I use this at server runtime?
Yes! This module was made specifically for runtime use.
Why is Character+ a better alternative than
:ApplyDescription()
or:GetHumanoidDescriptionFromUserId()
?
Character+ uses InsertService which means models are up-to-date all the time. Another benefit is that accessories are always properly positioned, which is a huge issue for some developers. Also, as I said before, it’s a great alternative for builders.
What environments can run Character+?
Unfortunately this module heavily relies on InsertService which is only accessible from the server.
I’ve found a bug, or I have a suggestion! Who do I contact?
You can contact me on Twitter, or send me a message on Roblox. You can also just reply to this thread and I’ll do my best to reply!
Documentation
Functions
Enum.HumanoidRigType characterPLUS:GetRigType(rig: Model | Humanoid)
Requires a rig or a humanoid, returns the RigType Enum
Model characterPLUS:CreateBlankRig(rigType: Enum.HumanoidRigType | string)
Requires a string, either ‘R6’ or ‘R15’ or a HumanoidRigType Enum.
Model characterPLUS:BuildRigFromUserID(userId: number, rigType: Enum.HumanoidRigType? | string?)
Requires a player’s UserId and the RigType, defaults to R6 if not provided.
void characterPLUS:BuildRigFromHumanoidDescription(humanoidDescription: HumanoidDescription, rigType: Enum.HumanoidRigType? | string?)
Requires a HumanoidDescription and a string, either being ‘R6’ or ‘R15’, or a HumanoidRigType enum
void characterPLUS:UpdateRigAppearanceFromUserId(userId: number, rig: Model)
Updates the specified rig with your options.
void CharacterPLUS:UpdateRigAppearanceFromHumanoidDescription(self, humanoidDescription: HumanoidDescription, rig: Model)
Updates your specified rig with your options.
void characterPLUS:ClearAppearance(rig: Model)
Clears the rig’s appearance.
void characterPLUS:ClearHeadType(rig)
Changes the rig’s head type to the default head and changes the rig’s face to the default face.
Internal functions (not accessible outside of the module without modification)
Instance __insert(id: number)
Returns the cached asset or attempts to insert a new asset if no cached asset is found in the cache.
void __addAsset(humanoid: Humanoid, asset: Model)
Attempts to add the asset to the rig.
Model __loadR15()
Gets the R15 rig which is used to put the character’s BodyParts back to the default BodyParts.
Properties
table characterPLUS.CachedAssets
The cached assets where the index is the asset’s ID and the value is the asset.
table characterPLUS.RigIds
The rig IDs which should be inserted for the BuildRig functions.
table characterPLUS.HumanoidDescriptionPropertiesToInsert
List of HumanoidDescription properties to be inserted and added to the cache.
table characterPLUS.BodyColours.
List of HumanoidDescription properties to be assigned to BodyColors for colouring the rig’s body parts.
table characterPLUS.ToDestroy
List of classes that should be destroyed when the character’s appearance is cleared
Get Started
Character+ is very easy to get started with.
Simply require the module, and use the functions as I’ve stated above!
You can require the Character+ module in 2 ways:
local CharacterPLUS = require(5798963943)
OR
Get the module here, and then:
local CharacterPLUS = require(path.to.module)
Now, all you have to do is call the functions as you need them.