Reference API Roblox

Engine API

Website

Related

Reference API Roblox

HumanoidDescription

Describes the appearance of a Humanoid character including body parts, accessories, colors, scales, animations, and emotes.

Member index 53

HistoryMember
642AccessoryBlob: string
642BackAccessory: string
553BodyTypeScale: float
553ClimbAnimation: int64
553DepthScale: float
553Face: int64
642FaceAccessory: string
553FallAnimation: int64
642FrontAccessory: string
553GraphicTShirt: int64
642HairAccessory: string
642HatAccessory: string
642Head: int64
642HeadColor: Color3
553HeadScale: float
553HeightScale: float
553IdleAnimation: int64
553JumpAnimation: int64
642LeftArm: int64
642LeftArmColor: Color3
642LeftLeg: int64
642LeftLegColor: Color3
553MoodAnimation: int64
642NeckAccessory: string
553Pants: int64
553ProportionScale: float
642RightArm: int64
642RightArmColor: Color3
642RightLeg: int64
642RightLegColor: Color3
553RunAnimation: int64
553Shirt: int64
642ShouldersAccessory: string
553SwimAnimation: int64
642Torso: int64
642TorsoColor: Color3
642WaistAccessory: string
553WalkAnimation: int64
553WidthScale: float
573AddEmote(name: string, assetId: int64): null
477GetAccessories(includeRigidAccessories: bool): Array
462GetEmotes(): Dictionary
462GetEquippedEmotes(): Array
573RemoveEmote(name: string): null
573SetAccessories(accessories: Array, includeRigidAccessories: bool): null
573SetEmotes(emotes: Dictionary): null
573SetEquippedEmotes(equippedEmotes: Array): null
462EmotesChanged(newEmotes: Dictionary)
462EquippedEmotesChanged(newEquippedEmotes: Array)
inherited from Instance
553Archivable: bool
635Capabilities: SecurityCapabilities
553Name: string
553Parent: Instance
635Sandboxed: bool
616UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
641GetStyled(name: string): Variant
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
580IsPropertyModified(name: string): bool
573Remove(): null
576RemoveTag(tag: string): null
580ResetPropertyToDefault(name: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Removed member index 1

HistoryMember

Description

HumanoidDescription is an object that stores a description of a Humanoid for R6 and R15 rigs. It can be applied in order to set a rig's scaling, clothing (Shirt, Pants, ShirtGraphic), Accessories, Animations and BodyColors.

You can get a HumanoidDescription by using the following functions:

See also:

History 220

Members 53

AccessoryBlob

TypeDefault
string[]

A JSON formatted array of Layered clothing where each table in the entry in the array describes an accessory's AssetId, AccessoryType, Order, and (optionally) Puffiness as key-value pairs. This can be edited in the properties windows for the HumanoidDescription.

To make changes from Lua (which is recommended over editing the JSON directly), use HumanoidDescription:SetAccessories() and HumanoidDescription:GetAccessories(). These methods can also be enabled to work with rigid accessories by setting IncludeRigidAccessories parameters to true.

This property is not scriptable. It cannot be accessed by script code.
This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated, NotScriptable]

AddEmote

Parameters (2)
namestring
assetIdint64
Returns (1)
null

AddEmote will add an Emote asset to the description given a name and its asset ID. The asset ID must be for an "Emote" asset (see Featured emotes in the Catalog).

You can add multiple emotes of the same name. All emotes of the same name can be removed using RemoveEmote. If an emote with the same ID is added under the same name, EmotesChanged fires.

See also:

History 3

BackAccessory

TypeDefault
string

BackAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied. The list cannot contain duplicates.

An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

BodyTypeScale

TypeDefault
float0.300000012

BodyTypeScale determines the factor by which the shape of a Humanoid is interpolated from the standard R15 body shape (0) to a taller and more slender body type (1). Values outside the range of 0 to 1 are clamped. When the description is applied through Humanoid:ApplyDescription(), this value maps to a BodyTypeScale NumberValue within the Humanoid.

Note that when the value of this property is 0, the ProportionScale property has no effect.

See Also

History 4

ClimbAnimation

TypeDefault
int640

When this description is applied to a Humanoid, ClimbAnimation determines the Animation.AnimationId to play when its state is Climbing.

See also:

History 4

DepthScale

TypeDefault
float1

DepthScale determines by what factor the depth (back-to-front distance) of a Humanoid is scaled, as well as all accessories not attached to its head. When the description is applied through Humanoid:ApplyDescription(), this value maps to a BodyDepthScale NumberValue within the Humanoid.

See Also

History 4

EmotesChanged

Parameters (1)
newEmotesDictionary

EmotesChanged fires when emotes are added, removed or set on the description. The event fires with the new emote table as returned by GetEmotes.

If AddEmote is called with the same name and ID as an existing emote, this event fires.

See also:

History 2

EquippedEmotesChanged

Parameters (1)
newEquippedEmotesArray

EquippedEmotesChanged fires when the equipped emotes are set on this description using SetEquippedEmotes. It provides the new equipped emotes in a table like that returned by GetEquippedEmotes.

Example

1
2
3
4
5
6
7
8
local hd = Instance.new("HumanoidDescription")
hd.EquippedEmotesChanged:Connect(function(equippedEmotes)
    print(("We have %d emotes equipped"):format(#equippedEmotes))
    for _, t in equippedEmotes do
        print(("In slot %d: emote %s is equipped"):format(t.Slot, t.Name))
    end
end)
hd:SetEquippedEmotes({"Salute", "Agree"}) --> We have 2 emotes equipped

See also:

History 2

Face

TypeDefault
int640

Face determines the asset ID of the Face to be applied to a Humanoid. The type of the asset ID provided must be for a Face type asset and not a Decal or Image type asset.

The actual face texture is rendered using a Decal in the Head named "face" or "Face".

See also:

History 4

  • 553 Change Default of Face from to 0
  • 486 Change ThreadSafety of Face from ReadOnly to ReadSafe
  • 462 Change ThreadSafety of Face from to ReadOnly
  • 363 Add Face

FaceAccessory

TypeDefault
string

FaceAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied, usually those attached to the front of its face (such as glasses). The list does not contain duplicates.

An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

FallAnimation

TypeDefault
int640

When this description is applied to a Humanoid, FallAnimation determines the Animation.AnimationId to play when its state is Freefall.

See also:

History 4

FrontAccessory

TypeDefault
string

FrontAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied, usually those attached to front of its torso (such as medals or ties). The list does not contain duplicates.

An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

GetAccessories

Parameters (1)
includeRigidAccessoriesbool
Returns (1)
Array

Returns a table of an avatar's current accessories. If the second parameter (includeRigidAccessories) is true then the returned table will also include entries for rigid accessories from the rigid accessory properties.

History 1

GetEmotes

Parameters (0)
No parameters.
Returns (1)
Dictionary

GetEmotes returns a dictionary of emotes that have been added or set to this description. The keys of this dictionary are the names of the emotes, and the values are a non-empty array of emote IDs for that name.

Example

1
2
3
4
5
6
7
8
9
local hd = Instance.new("HumanoidDescription")
hd:AddEmote("Salute", 3360689775)
local emotes = hd:GetEmotes()
for name, ids in emotes do
    print(("The emote %s has %d ids:"):format(name, #ids))
    for _, id in ids do
        print(id)
    end
end

See also:

History 2

GetEquippedEmotes

Parameters (0)
No parameters.
Returns (1)
Array

GetEquippedEmotes returns an array of tables which indicate the Name and Slot of each equipped emote as it was set by SetEquippedEmotes.

Example

1
2
3
4
5
6
7
local hd = Instance.new("HumanoidDescription")
hd:SetEmotes({Salute = {3360689775}, Agree = {4849487550}})
hd:SetEquippedEmotes({"Salute", "Agree"})
-- Iterate over the equipped emotes:
for _, t in hd:GetEquippedEmotes() do
    print(("In slot %d: emote %s is equipped"):format(t.Slot, t.Name))
end

See also:

History 2

GraphicTShirt

TypeDefault
int640

GraphicTShirt determines the Graphic used by a ShirtGraphic instance when Humanoid:ApplyDescription() is called on a Humanoid. The asset type must be for a T‑Shirt, not a Decal or Image.

See Also

History 4

HairAccessory

TypeDefault
string

HairAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied, usually those attached to its head resembling hair. The list does not contain duplicates.

An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

HatAccessory

TypeDefault
string

HatAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied, usually those attached to its head. The list does not contain duplicates.

An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

Head

TypeDefault
int640

Head determines the asset ID of the Head to be applied to a Humanoid.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

  • 642 Change Tags of Head from [] to [NotReplicated]
  • 642 Change CanSave of Head from true to false
  • 553 Change Default of Head from to 0
  • 486 Change ThreadSafety of Head from ReadOnly to ReadSafe
  • 462 Change ThreadSafety of Head from to ReadOnly
  • 363 Add Head
Tags: [NotReplicated]

HeadColor

TypeDefault
Color30, 0, 0

HeadColor determines the BodyColors.HeadColor3 and BodyColors.HeadColor of a Humanoid when the description is applied.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

HeadScale

TypeDefault
float1

HeadScale determines by what factor the Head object of a Humanoid is scaled, as well as any accessories attached to it (such as those specified by HatAccessory and HairAccessory). When the description is applied through Humanoid:ApplyDescription(), this value maps to a HeadScale NumberValue within the Humanoid.

See Also

History 4

HeightScale

TypeDefault
float1

HeightScale determines by what factor the height (top-to-bottom distance) of a Humanoid is scaled, as well as all accessories not attached to its head. When the description is applied through Humanoid:ApplyDescription(), this value maps to a BodyHeightScale NumberValue within the Humanoid.

See Also

History 4

IdleAnimation

TypeDefault
int640

When this description is applied to a Humanoid, IdleAnimation determines the Animation.AnimationId to play when its state is Running at a speed near zero.

See also:

History 4

JumpAnimation

TypeDefault
int640

When this description is applied to a Humanoid, JumpAnimation determines the Animation.AnimationId to play when its state is Jumping.

See also:

History 4

LeftArm

TypeDefault
int640

LeftArm determines the asset ID of the LeftArm to be applied to a Humanoid.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

LeftArmColor

TypeDefault
Color30, 0, 0

LeftArmColor determines the BodyColors.LeftArmColor3 and BodyColors.LeftArmColor of a Humanoid when the description is applied. For R15 and Rthro rigs, this property controls both the upper, lower, and hand parts of the left arm.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

LeftLeg

TypeDefault
int640

LeftLeg determines the asset ID of the LeftLeg to be applied to a Humanoid.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

LeftLegColor

TypeDefault
Color30, 0, 0

LeftLegColor determines the BodyColors.LeftLegColor3 and BodyColors.LeftLegColor of a Humanoid when the description is applied. For R15 and Rthro rigs, this property controls both the upper, lower, and foot parts of the left leg.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

MoodAnimation

TypeDefault
int640

History 2

NeckAccessory

TypeDefault
string

NeckAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied, usually those attached to its neck (such as scarves or necklaces). The list does not contain duplicates.

Any accessory can used in this property, even if it is meant to go in a different accessory spot. For example, an accessory meant to go on your back (such as a cape) could be included in HairAccessory. An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

Pants

TypeDefault
int640

Pants determines the PantsTemplate used by a Pants instance when Humanoid:ApplyDescription() is called on a Humanoid. The asset type must be for Pants, not a Decal or Image.

See Also

History 4

ProportionScale

TypeDefault
float1

ProportionScale determines how wide (0) or narrow (1) a Humanoid rig is. Values outside the range of 0 to 1 are clamped. When the description is applied through Humanoid:ApplyDescription(), this value maps to a BodyProportionScale NumberValue within the Humanoid.

Note that when the value of BodyTypeScale is 0, this property has no effect.

See Also

History 4

RemoveEmote

Parameters (1)
namestring
Returns (1)
null

RemoveEmote removes all emotes from the description that have been added or set under the given name. If there are no added emotes with the given name, no error is thrown and EmotesChanged does not fire.

See also:

History 3

RightArm

TypeDefault
int640

RightArm determines the asset ID of the RightArm to be applied to a Humanoid.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

RightArmColor

TypeDefault
Color30, 0, 0

RightArmColor determines the BodyColors.RightArmColor3 and BodyColors.RightArmColor of a Humanoid when the description is applied. For R15 and Rthro rigs, this property controls both the upper, lower, and hand parts of the right arm.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

RightLeg

TypeDefault
int640

RightLeg determines the asset ID of the RightLeg to be applied to a Humanoid.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

RightLegColor

TypeDefault
Color30, 0, 0

RightLegColor determines the BodyColors.RightLegColor3 and BodyColors.RightLegColor of a Humanoid when the description is applied. For R15 and Rthro rigs, this property controls both the upper, lower, and foot parts of the right leg.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

RunAnimation

TypeDefault
int640

When this description is applied to a Humanoid, RunAnimation determines the Animation.AnimationId to play when its state is Running at a moderate speed.

See also:

History 4

SetAccessories

Parameters (2)
accessoriesArray
includeRigidAccessoriesbool
Returns (1)
null

Accepts a table that sets the accessories and related properties for an avatar. If the second parameter (includeRigidAccessories) is true, then this function can also be used to set the rigid accessories in the rigid accessory properties. In this case any table entry that does not have an Order will be considered a rigid accessory and put in the appropriate property according to the AccessoryType.

History 2

SetEmotes

Parameters (1)
emotesDictionary
Returns (1)
null

SetEmotes sets all of the emotes on this description given a table similar to that returned by GetEmotes. It fires EmotesChanged

Example

1
2
3
4
5
6
7
local emotes = {
    Salute = {3360689775}, -- Syntax note: can also use ["Salute"] = ...
    Agree = {4849487550},
    Disagree = {4849495710}
}
local hd = Instance.new("HumanoidDescription")
hd:SetEmotes(emotes)

See also:

History 3

SetEquippedEmotes

Parameters (1)
equippedEmotesArray
Returns (1)
null

SetEquippedEmotes sets the currently equipped emotes given an array of emote names as they were passed to AddEmote or SetEmotes. It can also take an array of tables similar to that returned by GetEquippedEmotes. Calling this function fires EquippedEmotesChanged.

Example

1
2
3
4
5
6
local hd = Instance.new("HumanoidDescription")
hd:SetEmotes({Salute = {3360689775}, Agree = {4849487550}})
-- Can provide either an array of strings... (index is slot number)
hd:SetEquippedEmotes({"Salute", "Agree"})
-- ...or an array of tables as returned by GetEquippedEmotes (Slot and Name keys set)
hd:SetEquippedEmotes({{Slot = 1, Name = "Salute"}, {Slot = 2, Name = "Agree"}})

See also:

History 3

Shirt

TypeDefault
int640

Shirt determines the ShirtTemplate used by a Shirt instance when Humanoid:ApplyDescription() is called on a Humanoid. The asset type must be for Shirt, not a Decal or Image.

See Also

History 4

ShouldersAccessory

TypeDefault
string

ShouldersAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied, usually those attached to its shoulders (such as shoulder-mounted critters). The list does not contain duplicates.

An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

SwimAnimation

TypeDefault
int640

When this description is applied to a Humanoid, SwimAnimation determines the Animation.AnimationId to play when its state is Swimming

See also:

History 4

Torso

TypeDefault
int640

Torso determines the asset ID of the Torso to be applied to a Humanoid.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

  • 642 Change Tags of Torso from [] to [NotReplicated]
  • 642 Change CanSave of Torso from true to false
  • 553 Change Default of Torso from to 0
  • 486 Change ThreadSafety of Torso from ReadOnly to ReadSafe
  • 462 Change ThreadSafety of Torso from to ReadOnly
  • 363 Add Torso
Tags: [NotReplicated]

TorsoColor

TypeDefault
Color30, 0, 0

TorsoColor determines the BodyColors.TorsoColor3 and BodyColors.TorsoColor of a Humanoid when the description is applied. For R15 and Rthro rigs, this property controls both the upper and lower parts of the torso.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated]

WaistAccessory

TypeDefault
string

WaistAccessory is a comma-separated list of asset IDs that determine what accessories should be added when the description is applied, usually those attached to its waist (such as belts). The list does not contain duplicates.

An error is thrown if you try to apply a new description which shares any assets with the existing description but a different accessory property.

See also:

This property is not replicated. Its interface does not cross the network boundary.

History 5

Tags: [NotReplicated]

WalkAnimation

TypeDefault
int640

When this description is applied to a Humanoid, WalkAnimation determines the Animation.AnimationId to play when its state is Running at a low speed

See also:

History 4

WidthScale

TypeDefault
float1

WidthScale determines by what factor the width (left-to-right distance) of a Humanoid is scaled, as well as all accessories not attached to its head. When the description is applied through Humanoid:ApplyDescription(), this value maps to a BodyWidthScale NumberValue within the Humanoid.

See Also

History 4

Removed members 1

Settings