Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
Humanoid
Inherits from: Instance → Object
The Humanoid is a special object that gives models the functionality of a character. It grants the model with the ability to physically walk around and interact with various components of a Roblox experience. Humanoids are always parented inside of a Model, and the model is expected to be an assembly of BasePart and Motor6D; the root part of the assembly is expected to be named HumanoidRootPart. It also expects a part named Head to be connected to the character's torso part, either directly or indirectly. By default, there are two official types of character rigs supplied by Roblox, each with their own set of rules:
R6
- A basic character rig that uses 6 parts for limbs.
- The
Headpart must be attached to a part namedTorso, or the Humanoid will die immediately. - BodyPart appearances are applied using
CharacterMeshobjects. - Certain properties, such as
Humanoid.LeftLegandHumanoid.RightLeg, only work with R6.
R15
- More complex than R6, but also far more flexible and robust.
- Uses 15 parts for limbs.
- The
Headpart must be attached to a part namedUpperTorsoor the Humanoid will die immediately. - BodyPart appearances have to be assembled directly.
- Can be dynamically rescaled by using special
NumberValueobjects parented inside of the Humanoid. - The Humanoid will automatically create
Vector3Valueobjects namedOriginalSizeinside of each limb. - If a NumberValue is parented inside of the Humanoid and is named one of the following, it will be used to control the scaling functionality:
- BodyDepthScale
- BodyHeightScale
- BodyWidthScale
- HeadScale
Inherits from: Instance
Memory category: Instances
Code samples: View on Creator Hub (Walking-Camera-Bobble-Effect).
Properties
| Name | Type / Returns | Description |
|---|---|---|
| Humanoid.AutoJumpEnabled | boolean | Sets whether the character will automatically jump when they hit an obstacle as a player on a mobile device. |
| Humanoid.AutomaticScalingEnabled | boolean | When Enabled, AutomaticScalingEnabled causes the size of the character to change in response to the values in the humanoid's child scale values changing. |
| Humanoid.AutoRotate | boolean | AutoRotate sets whether or not the Humanoid will automatically rotate to face in the direction they are moving in. |
| Humanoid.BreakJointsOnDeath | boolean | Determines whether the humanoid's joints break when in the HumanoidStateType.Dead state. |
| Humanoid.CameraOffset | Vector3 | An offset applied to the Camera's subject position when its CameraSubject is set to this Humanoid. |
| Humanoid.CollisionType | HumanoidCollisionType | Selects the HumanoidCollisionType for R15 and Rthro non-player characters. |
| Humanoid.DisplayDistanceType | HumanoidDisplayDistanceType | Controls the distance behavior of the humanoid's name and health display. |
| Humanoid.DisplayName | string | Sets the text of a Humanoid, displayed above their head. |
| Humanoid.EvaluateStateMachine | boolean | Used to disable the internal physics and state machine of the Humanoid. |
| Humanoid.FloorMaterial | Material | Describes the Material that the Humanoid is currently standing on. If the Humanoid isn't standing on anything, the value of this property will be Air. |
| Humanoid.Health | float | Describes the current health of the Humanoid on the range [0, Humanoid.MaxHealth]. |
| Humanoid.HealthDisplayDistance | float | Used in conjunction with the DisplayDistanceType property to control the distance from which a humanoid's health bar can be seen. |
| Humanoid.HealthDisplayType | HumanoidHealthDisplayType | Controls when the humanoid's health bar is allowed to be displayed. |
| Humanoid.HipHeight | float | Determines the distance off the ground the Humanoid.RootPart should be. |
| Humanoid.Jump | boolean | If true, the Humanoid jumps with an upwards force. |
| Humanoid.JumpHeight | float | Provides control over the height that the Humanoid jumps to. |
| Humanoid.JumpPower | float | Determines how much upwards force is applied to the Humanoid when jumping. |
| Humanoid.LeftLeg | BasePart | A reference to the humanoid's Left Leg part. |
| Humanoid.MaxHealth | float | The maximum value of a humanoid's Health. |
| Humanoid.maxHealth | float | |
| Humanoid.MaxSlopeAngle | float | The maximum slope angle that a humanoid can walk on without slipping. |
| Humanoid.MoveDirection | Vector3 | Describes the direction that the Humanoid is walking in. |
| Humanoid.NameDisplayDistance | float | Used in conjunction with the Humanoid.DisplayDistanceType property to control the distance from which a humanoid's name can be seen. |
| Humanoid.NameOcclusion | NameOcclusion | Controls whether a humanoid's name and health bar can be seen behind walls or other objects. |
| Humanoid.PlatformStand | boolean | Determines whether the Humanoid is currently in the HumanoidStateType.PlatformStanding state. |
| Humanoid.RequiresNeck | boolean | Allows developers to disable the behavior where a player Character|character dies if the Neck Motor6D is removed or disconnected even momentarily. |
| Humanoid.RightLeg | BasePart | A reference to the humanoid's Right Leg part. |
| Humanoid.RigType | HumanoidRigType | Describes whether this Humanoid is utilizing the legacy R6 character rig, or the new R15 character rig. |
| Humanoid.RootPart | BasePart | A reference to the humanoid's HumanoidRootPart object. |
| Humanoid.SeatPart | BasePart | A reference to the seat that a Humanoid is currently sitting in, if any. |
| Humanoid.Sit | boolean | Describes whether the Humanoid is currently sitting. |
| Humanoid.TargetPoint | Vector3 | Describes the 3D position where the Player controlling the Humanoid last clicked in the world while using a Tool. |
| Humanoid.Torso | BasePart | A reference to a humanoid's root driving part. |
| Humanoid.UseJumpPower | boolean | Determines whether the JumpHeight (false) or Humanoid.JumpPower (true) property is used. |
| Humanoid.WalkSpeed | float | Describes the humanoid's maximum movement speed in studs per second. |
| Humanoid.WalkToPart | BasePart | A reference to a part whose position is trying to be reached by a humanoid. |
| Humanoid.WalkToPoint | Vector3 | The position that a humanoid is trying to reach, after a call to Humanoid:MoveTo() is made. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.Archivable | boolean | Determines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published. |
| Instance.archivable | boolean | |
| Instance.Capabilities | SecurityCapabilities | The set of capabilities allowed to be used for scripts inside this container. |
| Instance.IsInSandbox | boolean | Indicates whether the instance is inside a sandboxed container. |
| Instance.Name | string | A non-unique identifier of the Instance. |
| Instance.Parent | Instance | Determines the hierarchical parent of the Instance. |
| Instance.PredictionMode | PredictionMode | Reflects the client-side prediction mode applied to the instance under server-authoritative physics. |
| Instance.RobloxLocked | boolean | A deprecated property that used to protect CoreGui objects. |
| Instance.Sandboxed | boolean | When enabled, the instance can only access abilities in its Capabilities list. |
| Instance.UniqueId | UniqueId | A unique identifier for the instance. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.ClassName | string | A read-only string representing the class this Object belongs to. |
| Object.className | string |
Humanoid.AutoJumpEnabled
AutoJumpEnabled sets whether or not the Humanoid will attempt to automatically jump over an obstacle it is walking towards.
Currently, this property only works when the following conditions are true:
- The Humanoid's character model is the
Player.Characterof aPlayer. - The Player in question is using touch controls.
When a player's character spawns, the property's value matches the player's Player.AutoJumpEnabled property - which in turn matches the StarterPlayer.AutoJumpEnabled property.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Jump Settings |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (Auto-Jump-Toggle).
Humanoid.AutomaticScalingEnabled
The Humanoid has six child scale values including BodyDepthScale, BodyHeightScale, BodyProportionScale, BodyTypeScale, BodyWidthScale, HeadScale. Changing the value of any of these causes the character's body parts and accessories to change size, but only if AutomaticScalingEnabled is true.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Game |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Humanoid.AutoRotate
The AutoRotate property describes whether or not the Humanoid will automatically rotate to face in the direction they are moving. When set to true, the character model will gradually turn to face their movement direction as the Humanoid walks around. When set to false, the character model will remain fixated in its current rotation, unless a rotating force is applied to the HumanoidRootPart.
If the character model happens to be the character of a player, then the behavior of the Humanoid's rotation is influenced by the UserGameSetting's RotateType property.
When the AutoRotate property is set to true, the RotateType property has the following effects on the Humanoid's rotation:
| RotationType | Behavior | Context |
|---|---|---|
| MovementRelative | ||
| CameraRelative | Character will rotate to face in the direction of the camera. | Player has their camera zoomed into first-person, or they are in shift-lock mode. |
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (AutoRotate).
Humanoid.BreakJointsOnDeath
Determines whether the humanoid's joints break when in the HumanoidStateType.Dead state. Defaults to true.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Behavior |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Humanoid.CameraOffset
The CameraOffset property specifies an offset to the camera's subject position when its Camera.CameraSubject is set to this Humanoid.
The offset is applied in object-space, relative to the orientation of the Humanoid's HumanoidRootPart. For example, an offset Vector3 value of (0, 10, 0) offsets the player's camera to 10 studs above the player's humanoid.
| Field | Value |
|---|---|
| type | Vector3 |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Walking-Camera-Bobble-Effect).
Humanoid.CollisionType
Deprecated.
This property selects the HumanoidCollisionType for R15 and Rthro non-player characters.
| Field | Value |
|---|---|
| type | HumanoidCollisionType |
| tags | ["Deprecated"] |
| security | {"read":"None","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Behavior |
| serialization | {"can_load":true,"can_save":true} |
Humanoid.DisplayDistanceType
The DisplayDistanceType property controls the distance behavior of the humanoid's name and health display. This property is set using the HumanoidDisplayDistanceType enum with three available values, each with their own set of rules:
- When set to
Viewer, the humanoid sees the name/health of other humanoids within range of its ownNameDisplayDistanceandHealthDisplayDistance. - When set to
Subject, the humanoid takes full control over its own name and health display through itsNameDisplayDistanceandHealthDisplayDistancevalues. - When set to
None, the humanoid's name and health bar do not appear under any circumstances.
See Character Name/Health Display for an in-depth guide on controlling the appearance of character names and health bars.
| Field | Value |
|---|---|
| type | HumanoidDisplayDistanceType |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Code samples: View on Creator Hub (displaying-a-humanoid-s-health-and-name).
Humanoid.DisplayName
DisplayName is a property that determines the Humanoid's name display when visible. By default, a new Humanoid will have the value of an empty string. If DisplayName is an empty string, the humanoid's name display will default to the humanoid's parent's name property.
Player Character Loading
When players load their character, either automatically or through the use of LoadCharacterAsync(), the Humanoid that is created by the engine will have its DisplayName property set to the player's DisplayName property.
StarterCharacter and StarterHumanoid
When a Humanoid named StarterHumanoid is parented to StarterPlayer, or when a Humanoid is present in a Model named StarterCharacter, the DisplayName property will be respected when Characters are loaded by Players in the game. The engine will only override the DisplayName property of the Humanoid with the DisplayName property of the player if the Humanoid.DisplayName of StarterHumanoid is an empty string.
| Field | Value |
|---|---|
| type | string |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Humanoid.EvaluateStateMachine
Used to disable the internal physics and state machine of the Humanoid.
What does turning this off do?
- No forces - The humanoid will not apply forces to any of its parts. The humanoid will not move the character in any way.
- No sensors - The humanoid will not run any spatial queries to detect floors, ladders, or other obstacles (such as auto-jump).
- No collision changes - The humanoid will not alter the collision state of any of the character parts. By default, only the torso and head have
Part.CanCollideenabled. - No state transitions or replication - The humanoid will not automatically update its state. You can still set humanoid state with a script, but it will not automatically replicate.
What does turning this off not do?
- State events - If manually setting humanoid states, the events for each of the humanoid's states and
StateChangedwill still fire, which means the Animate script will still receive them and animate the character based on its current humanoid state. - Appearance -
HumanoidDescription, clothes, accessories and other humanoid rendering behavior. - Camera and player scripts - The humanoid is still linked to
Playersand camera scripts, which ensures the camera will continue to follow theHumanoid.RootPart. - Player input handling - The
Humanoid.MoveDirectionproperty will still be updated via theHumanoid:Move()function andPlayerScriptsfor input.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Behavior |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.FloorMaterial
This is a read-only property that describes the Material the Humanoid is currently standing on. It works with both regular Parts and Terrain voxels.
The code sample below demonstrates how to listen to when this property changes using Object:GetPropertyChangedSignal(). When the material the humanoid is standing on changes, it will print a message indicating the new material being stood on.
local Humanoid = route.to.humanoid
Humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
print("New value for FloorMaterial: " .. tostring(Humanoid.FloorMaterial))
end) Caveats
- When the
Humanoidis not standing on a floor, the value of this property will be set to Air.- This occurs because Enum properties cannot have an empty value.
- This can cause some confusion if a part has its material is set to Air, though in practice, parts are not supposed to use that material in the first place.
- The character model of the
Humanoidmust be able to collide with the floor, or else it will not be detected.- You cannot test if the
Humanoidis swimming with this property. You should instead use itsHumanoid:GetState()function.
- You cannot test if the
| Field | Value |
|---|---|
| type | Material |
| tags | ["ReadOnly","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.Health
This property represents the current health of the Humanoid. The value is restricted to the range between 0 and MaxHealth. If the humanoid is dead, this property is continually set to 0.
Note that the TakeDamage() function may be used to subtract from Health instead of setting the property directly.
Health Regeneration
By default, a passive health regeneration script is automatically inserted into humanoids. This causes non-dead player characters to regenerate 1% of MaxHealth each second. To disable this regeneration behavior, add an empty Script named Health to StarterCharacterScripts.
Health Bar Display
When Health is less than MaxHealth, a health bar is displayed in-experience. The display behavior of the health bar is dependent on the HealthDisplayDistance and HealthDisplayType.
See Character Name/Health Display for an in-depth guide on controlling the appearance of character names and health bars.
Death
When the value of the character's health reaches 0, the Humanoid automatically transitions to the HumanoidStateType.Dead state. In this state, Health is locked to 0; however, there is no error or warning for setting the Health of a dead humanoid to a positive nonzero value.
| Field | Value |
|---|---|
| type | float |
| tags | ["NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Game |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.HealthDisplayDistance
This property is a number used in conjunction with the DisplayDistanceType property to control the distance from which a humanoid's health bar can be seen.
See Character Name/Health Display for an in-depth guide on controlling the appearance of character names and health bars.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Humanoid.HealthDisplayType
This property controls when a humanoid's health bar is allowed to be displayed. By default, this property is set to DisplayWhenDamaged, which makes the health bar only display when a humanoid's Health is less than its MaxHealth. It can also be set to AlwaysOn, which makes the health bar always display, or AlwaysOff, which prevents it from ever displaying.
Note that this property functions independently of the humanoid's HealthDisplayDistance property which is responsible for making the health bar fade out at certain distances. If Humanoid.HealthDisplayType|HealthDisplayType is set to AlwaysOn, it will still fade out depending the how HealthDisplayDistance is configured.
See Character Name/Health Display for an in-depth guide on controlling the appearance of character names and health bars.
| Field | Value |
|---|---|
| type | HumanoidHealthDisplayType |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Humanoid.HipHeight
Determines the distance (in studs) off the ground the RootPart should be when the humanoid is standing. The RigType influences the way this property behaves.
For R15 rigs, a suitable hip height is preset to ensure the height of the RootPart is correct. The height of the legs is not used. The overall height of the humanoid can be described in the following formula:
Height = (0.5 * RootPart.Size.Y) + HipHeight For R6 rigs, HipHeight instead describes a relative offset. The overall height of the humanoid can be described in the following formula:
Height = LeftLeg.Size.Y + (0.5 * RootPart.Size.Y) + HipHeight | Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Game |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
| simulationAccess | true |
Humanoid.Jump
If true, the Humanoid jumps with an upwards force equal to the value of Humanoid.JumpPower or the height of Humanoid.JumpHeight, depending on the value of Humanoid.UseJumpPower.
| Field | Value |
|---|---|
| type | boolean |
| tags | ["NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.JumpHeight
Provides control over the height a Humanoid jumps, in studs. The starting value of this property is determined by the value of StarterPlayer.CharacterJumpHeight which defaults to 7.2.
Although setting this property to 0 will effectively prevent the humanoid from jumping, it's recommended to disable jumping by disabling the HumanoidStateType.Jumping state through Humanoid:SetStateEnabled().
This property is only visible in the Properties window if Humanoid.UseJumpPower is set to false, as it is not relevant otherwise (instead, Humanoid.JumpPower is used).
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Jump Settings |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.JumpPower
Determines how much upwards force is applied to the Humanoid when jumping. The starting value of this property is determined by the value of StarterPlayer.CharacterJumpPower which defaults to 50 and is constrained between 0 and 1000. Note that jumps are also influenced by the Workspace.Gravity property which determines the acceleration due to gravity.
Although setting this property to 0 will effectively prevent the humanoid from jumping, it's recommended to disable jumping by disabling the HumanoidStateType.Jumping state through Humanoid:SetStateEnabled().
This property is only visible in the Properties window if Humanoid.UseJumpPower is set to true, as it is not relevant otherwise (instead, Humanoid.JumpHeight is used).
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Jump Settings |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.LeftLeg
Deprecated. This instance only works with the old R6 rig. It will not work with the R15 rig and should not be used in new work not using the R6 rig.
A reference to the humanoid's Left Leg part. The value of this property will always be nil if the humanoid's RigType is set to R15.
| Field | Value |
|---|---|
| type | BasePart |
| tags | ["Hidden","NotReplicated","Deprecated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.MaxHealth
The maximum value of a humanoid's Health.
The value of this property is used alongside the Health property to size the default health bar display. When a humanoid's Health reaches MaxHealth, its health bar may not be displayed, depending on its HealthDisplayType property.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Game |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Humanoid.maxHealth
Deprecated. This deprecated property is a variant of Humanoid.MaxHealth which should be used instead.
| Field | Value |
|---|---|
| type | float |
| tags | ["NotReplicated","Deprecated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Game |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.MaxSlopeAngle
This property determines the maximum slope angle that a humanoid can climb. If the angle of a slope is greater than a humanoid's MaxSlopeAngle, they will slide down the slope.
When a character spawns, this property is set according to the value of StarterPlayer.CharacterMaxSlopeAngle.
The value of this property is constrained to values between 0° and 89°. It defaults to 89°, so humanoids can climb pretty much any slope they want by default.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Game |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (limiting-the-slope-a-humanoid-can-walk-up).
Humanoid.MoveDirection
MoveDirection is a read-only property that describes the direction a Humanoid is walking in, as a unit vector or zero length vector. The direction is described in world space.
Because this property is read-only, it cannot be set by a Script or LocalScript.
| Field | Value |
|---|---|
| type | Vector3 |
| tags | ["ReadOnly","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (Walking-Camera-Bobble-Effect).
Humanoid.NameDisplayDistance
The NameDisplayDistance property is a number used in conjunction with the Humanoid.DisplayDistanceType property to control the distance from which a humanoid's name can be seen.
See Character Name/Health Display for an in-depth guide on controlling the appearance of character names and health bars.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Humanoid.NameOcclusion
Controls whether a humanoid's name and health bar can be seen behind walls or other objects. This property is a NameOcclusion value and can be configured to occlude all names, enemy names, or disable occlusion entirely.
In cases where the LocalPlayer has no Humanoid associated with it, this property instead applies to the subject Humanoid.
See Character Name/Health Display for an in-depth guide on controlling the appearance of character names and health bars.
| Field | Value |
|---|---|
| type | NameOcclusion |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Code samples: View on Creator Hub (occlude-player-names).
Humanoid.PlatformStand
Determines whether the Humanoid is currently in the HumanoidStateType.PlatformStanding state. When true, the Humanoid is in a state where it is free-falling and cannot move. This state behaves similar to sitting, except that jumping does not free the humanoid from the state.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.RequiresNeck
Allows developers to disable the behavior where a player Character|character dies if the Neck Motor6D is removed or disconnected even momentarily. This property defaults to true.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Behavior |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
Humanoid.RightLeg
Deprecated. This instance only works with the old R6 rig. It will not work with the R15 rig and should not be used in new work not using the R6 rig.
A reference to the humanoid's Right Leg part. The value of this property will always be nil if the humanoid's RigType is set to R15.
| Field | Value |
|---|---|
| type | BasePart |
| tags | ["Hidden","NotReplicated","Deprecated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.RigType
RigType describes whether a Humanoid is utilizing the legacy R6 character rig, or the newer R15 character rig.
The R6 rig uses 6 visible Parts while the R15 rig uses 15 visible Parts. R15 rigs have more joints than R6 rigs, making them much more versatile when being animated.
Note that if this property is set incorrectly, the Humanoid will not function correctly. For example, if a R15 humanoid's RigType is set to R6, the Humanoid will die as there is no BasePart called Torso connected to a BasePart called Head.
| Field | Value |
|---|---|
| type | HumanoidRigType |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarAppearance"] |
Humanoid.RootPart
A reference to the humanoid's HumanoidRootPart object. The HumanoidRootPart is required for all assemblies that include a Humanoid and is the primary driving part of the Humanoid that controls a humanoid's movement through the 3D world. This part is normally invisible and typically resides in the local origin center of the character model.
The HumanoidRootPart is included in all platform-wide avatar characters, and automatically created when a character model is imported into Studio. It's possible to manually add a HumanoidRootPart to a model by adding a Part named HumanoidRootPart and ensuring it's the root part of the assembly.
Use this property to reference the specific HumanoidRootPart without searching the model hierarchy. You can get or set the Class.CFrame of this part to change position or reorient the entire character model.
For R15 or higher-fidelity characters, the Model.PrimaryPart of the Player.Character model is also set to HumanoidRootPart.
While R6 characters also include a HumanoidRootPart, the R6 characters, Model.PrimaryPart is set to the Head part.
| Field | Value |
|---|---|
| type | BasePart |
| tags | ["ReadOnly","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":false,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.SeatPart
SeatPart is a reference to the seat that a Humanoid is currently sitting in, if any. The value of this property can be either a Seat, or a VehicleSeat. It will be nil if the Humanoid is not currently sitting in a seat.
Note:
- For a bool describing if the
Humanoidis currently sitting or not, seeHumanoid.Sit
| Field | Value |
|---|---|
| type | BasePart |
| tags | ["ReadOnly","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.Sit
The Sit property is a boolean that indicates whether the Humanoid is currently sitting. Humanoids can be forced into a sitting state by setting this property's value to true. If the Humanoid isn't attached to a seat while in its sitting state, it will trip over with no collision in its legs. A Humanoid can escape from the sitting state by jumping.
Note:
- The
SeatorVehicleSeattheHumanoidis sitting on can be obtained using theHumanoid.SeatPartproperty - It is possible to detect when a Humanoid sits by connecting to the
Humanoid.Seatedevent.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.TargetPoint
Do not use This property only works with Experimental Mode enabled, which has been entirely discontinued.
This property describes a 3D position in space where the Player controlling this Humanoid last clicked with a Tool equipped.
This property is primarily used by classic tools to determine what a humanoid is targeting when they activate a tool. If you give an NPC a classic rocket launcher, set their TargetPoint, and then call the tool's Tool:Activate() function, you can make the NPC fire a rocket at the target point.
| Field | Value |
|---|---|
| type | Vector3 |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.Torso
Deprecated. This instance only works with the old R6 rig. It will not work with the R15 rig and should not be used in new work not using the R6 rig.
A reference to a humanoid's root driving part. Contrary to the name of this property, it will only point to the Torso part if a humanoid doesn't have a HumanoidRootPart.
| Field | Value |
|---|---|
| type | BasePart |
| tags | ["Hidden","NotReplicated","Deprecated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.UseJumpPower
When a character spawns, this property is set according to the value of StarterPlayer.CharacterUseJumpPower, which defaults to true.
When jumping, with this set to false, the Humanoid.JumpHeight value is used to ensure the humanoid jumps to that height. With this set to true, the Humanoid.JumpPower value is used to apply an upward force.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Jump Settings |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.WalkSpeed
This property describes how quickly the Humanoid is able to walk, in studs per second. It defaults to the value of StarterPlayer.CharacterWalkSpeed (16), meaning a player character can move 16 studs in any direction each second.
Notes
- When controlled on a mobile device or a gamepad, a humanoid can walk slower than its
WalkSpeedif the controlling thumbstick is moved just a gradual degree from center. - You can freeze a humanoid in place by setting
WalkSpeedto0, effectively preventing the controlling player from moving it through the default movement mechanisms. Note, however, thatWalkSpeedis a client‑replicated property which can be modified locally, so it should not be used as a security mechanism or as the sole method for preventing humanoid movement. - The default animation script scales a humanoid's movement animations based on how fast it is moving relative to the default speed of 16 studs/second.
- The speed at which the
Humanoidis currently walking can be obtained using theRunningevent.
| Field | Value |
|---|---|
| type | float |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Game |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid.WalkToPart
WalkToPart is a reference to a BasePart that the humanoid is trying to reach, after having been prompted to do so via the MoveTo() method.
When WalkToPart is set and a humanoid is actively trying to reach the part, it will keep updating its Vector3 goal to be the position of the part, plus the WalkToPoint translated in object space relative to the rotation of the part. This can be described in Luau as:
goal = humanoid.WalkToPart.CFrame:PointToObjectSpace(humanoid.WalkToPoint) Note that simply setting the value of WalkToPart is not sufficient to make a humanoid start "following" a part. Call MoveTo() to initiate movement.
| Field | Value |
|---|---|
| type | BasePart |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
Humanoid.WalkToPoint
WalkToPoint describes the 3D position in space that a humanoid is trying to reach, after having been prompted to do so via the MoveTo() method.
If a humanoid's WalkToPart is set, the goal is set by transforming WalkToPoint relative to the part's position and rotation. Otherwise, the humanoid will try to reach the 3D position specified by WalkToPoint directly.
Note that simply setting the value of WalkToPoint is not sufficient to make a humanoid start moving toward a point. Call MoveTo() to initiate movement.
| Field | Value |
|---|---|
| type | Vector3 |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Control |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Methods
| Name | Type / Returns | Description |
|---|---|---|
| Humanoid:AddAccessory | () | Attaches the specified Accessory to the humanoid's parent. |
| Humanoid:AddCustomStatus | boolean | Adds a custom status to the Humanoid. |
| Humanoid:AddStatus | boolean | Adds a BoolValue to the Humanoid's Status object. |
| Humanoid:ApplyDescription | () | Makes the character's look match that of the passed in HumanoidDescription. |
| Humanoid:ApplyDescriptionAsync | () | Makes the character's look match that of the passed in HumanoidDescription. If HumanoidDescription.UseAvatarSettings is true, the Avatar Settings for the experience will also be applied to the character. |
| Humanoid:ApplyDescriptionReset | () | Makes the character's look match that of the passed in HumanoidDescription, even after external changes. |
| Humanoid:ApplyDescriptionResetAsync | () | Makes the character's look match that of the passed in HumanoidDescription, even after external changes. |
| Humanoid:BuildRigFromAttachments | () | Assembles a tree of Motor6D joints by attaching together Attachment objects in a humanoid's character. |
| Humanoid:ChangeState | () | Sets the Humanoid to enter the given HumanoidStateType. |
| Humanoid:EquipTool | () | Makes the Humanoid equip the given Tool. |
| Humanoid:GetAccessories | Array | Returns an array of Accessory objects that the humanoid's parent is currently wearing. |
| Humanoid:GetAppliedDescription | HumanoidDescription | Returns a copy of the humanoid's cached HumanoidDescription which describes its current look. |
| Humanoid:GetBodyPartR15 | BodyPartR15 | Pass a body part to this method (the body part should be a sibling of Humanoid, and a child of a Model) to get the BodyPartR15 of the Part. |
| Humanoid:GetLimb | Limb | Returns the Limb enum that is associated with the given Part. |
| Humanoid:GetMoveVelocity | Vector3 | Returns the current intended movement velocity of the Humanoid. |
| Humanoid:GetPlayingAnimationTracks | Array | Returns an array of all AnimationTracks that are currently being played on the Humanoid. |
| Humanoid:GetRelativeVelocityAtFloor | Vector3 | Returns the humanoid's actual physical velocity relative to the surface it is standing on as a Vector3 in world-space orientation. |
| Humanoid:GetState | HumanoidStateType | Returns the humanoid's current HumanoidStateType. |
| Humanoid:GetStateEnabled | boolean | Returns whether a HumanoidStateType is enabled for the Humanoid. |
| Humanoid:GetStatuses | Array | Returns a table of the Humanoid's statuses, and custom statuses. |
| Humanoid:HasCustomStatus | boolean | Returns boolean based on if custom statuses exist. |
| Humanoid:HasStatus | boolean | Returns a boolean based on if a status exists. |
| Humanoid:LoadAnimation | AnimationTrack | Loads an Animation onto a Humanoid, returning an AnimationTrack that can be used for playback. |
| Humanoid:loadAnimation | AnimationTrack | |
| Humanoid:Move | () | Causes the Humanoid to walk in the given direction. |
| Humanoid:MoveTo | () | Causes the Humanoid to attempt to walk to the given location by setting the Humanoid.WalkToPoint and Humanoid.WalkToPart properties. |
| Humanoid:PlayEmote | boolean | Plays emotes and returns if was successfully ran. |
| Humanoid:PlayEmoteAsync | boolean | Plays emotes and returns if was successfully ran. |
| Humanoid:RemoveAccessories | () | Removes all Accessory objects worn by the humanoid's parent. |
| Humanoid:RemoveCustomStatus | boolean | Removes the defined custom status from the Status model in the Humanoid.. |
| Humanoid:RemoveStatus | boolean | Removes the defined status from the Status model in the Humanoid. |
| Humanoid:ReplaceBodyPartR15 | boolean | Dynamically replaces a Humanoid body part with a different part. |
| Humanoid:SetStateEnabled | () | Sets whether a given HumanoidStateType is enabled for the Humanoid. |
| Humanoid:TakeDamage | () | Lowers the Humanoid.Health of the Humanoid by the given amount if it is not protected by a ForceField. |
| Humanoid:takeDamage | () | |
| Humanoid:UnequipTools | () | Unequips any Tool currently equipped by the Humanoid. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance:AddTag | () | Applies a tag to the instance. |
| Instance:children | Instances | Returns an array of the object's children. |
| Instance:ClearAllChildren | () | This method destroys all of an instance's children. |
| Instance:Clone | Instance | Create a copy of an instance and all its descendants, ignoring instances that are not Archivable. |
| Instance:clone | Instance | |
| Instance:Destroy | () | Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children. |
| Instance:destroy | () | |
| Instance:FindFirstAncestor | Instance? | Returns the first ancestor of the Instance whose Instance.Name is equal to the given name. |
| Instance:FindFirstAncestorOfClass | Instance? | Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className. |
| Instance:FindFirstAncestorWhichIsA | Instance? | Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstChild | Instance? | Returns the first child of the Instance found with the given name. |
| Instance:findFirstChild | Instance | |
| Instance:FindFirstChildOfClass | Instance? | Returns the first child of the Instance whose ClassName is equal to the given class name. |
| Instance:FindFirstChildWhichIsA | Instance? | Returns the first child of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstDescendant | Instance? | Returns the first descendant found with the given Instance.Name. |
| Instance:GetActor | Actor? | Returns the Actor associated with the Instance, if any. |
| Instance:GetAttribute | Variant | Returns the value which has been assigned to the given attribute name. |
| Instance:GetAttributeChangedSignal | RBXScriptSignal | Returns an event that fires when the given attribute changes. |
| Instance:GetAttributes | Dictionary | Returns a dictionary of the instance's attributes. |
| Instance:GetChildren | Instances | Returns an array containing all of the instance's children. |
| Instance:getChildren | Instances | |
| Instance:GetDebugId | string | Returns a coded string of the debug ID used internally by Roblox. |
| Instance:GetDescendants | Instances | Returns an array containing all of the descendants of the instance. |
| Instance:GetFullName | string | Returns a string describing the instance's ancestry. |
| Instance:GetStyled | Variant | Returns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified. |
| Instance:GetStyledPropertyChangedSignal | RBXScriptSignal | Returns an event that fires when the given style property changes on the instance. |
| Instance:GetTags | Array | Gets an array of all tags applied to the instance. |
| Instance:HasTag | boolean | Check whether the instance has a given tag. |
| Instance:IsAncestorOf | boolean | Returns true if an Instance is an ancestor of the given descendant. |
| Instance:IsDescendantOf | boolean | Returns true if an Instance is a descendant of the given ancestor. |
| Instance:isDescendantOf | boolean | |
| Instance:IsPropertyModified | boolean | Returns true if the value stored in the specified property is not equal to the code-instantiated default. |
| Instance:QueryDescendants | Instances | Returns an array containing all descendants of the instance that match the selector string. |
| Instance:Remove | () | Sets the object's Parent to nil, and does the same for all its descendants. |
| Instance:remove | () | |
| Instance:RemoveTag | () | Removes a tag from the instance. |
| Instance:ResetPropertyToDefault | () | Resets a property to its default value. |
| Instance:SetAttribute | () | Sets the attribute with the given name to the given value. |
| Instance:WaitForChild | Instance | Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object:GetPropertyChangedSignal | RBXScriptSignal | Get an event that fires when a given property of the object changes. |
| Object:IsA | boolean | Returns true if an object's class matches or inherits from a given class. |
| Object:isA | boolean |
Humanoid:AddAccessory
This method attaches the specified Accessory to the humanoid's parent.
When this method is called, an Accessory is attached to the character by searching for an Attachment in the humanoid's parent that shares the same name as an Attachment in the accessory's Handle Part. If one is found, the Handle part will be connected to the parent of the Attachment using a Weld, and the weld will be configured so the Attachments occupy the same space.
If the required Attachment can not be found, then the Accessory will remain parented to the humanoid's parent but it will be unattached.
Typically, accessory welds are created on the server, but they can be created on the client under certain circumstances. In these situations, client-sided calls to AddAccessory() may not always produce the desired behavior and you can use BuildRigFromAttachments() to force the expected weld creation.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| accessory | Instance | The Accessory to be attached. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Code samples: View on Creator Hub (Humanoid-AddAccessory-Example).
Humanoid:AddCustomStatus
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
Adds a BoolValue to the Humanoid's Status object, whose name is equal to the string passed as the status argument. If the status already exists, a new BoolValue will not be created.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | string | The custom status name to add to the Humanoid. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the custom status was successfully added; returns false if it already exists. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
Humanoid:AddStatus
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
Adds a BoolValue to the Humanoid's Status object, whose name is equal to the name of the Status enum passed as the status argument. If the status already exists, a new BoolValue will not be created.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | Status | Poison | The Status value to add to the Humanoid. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the status was successfully added; returns false if it already exists. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
Humanoid:ApplyDescription
Deprecated. This method has been superseded by ApplyDescriptionAsync().
This yielding method makes the character's look match that of the passed in HumanoidDescription. A copy of the passed HumanoidDescription is cached as the HumanoidDescription for the Humanoid.
This method is optimized through making the assumption that only this method is used to change the appearance of the character, and no changes are made through other means between calls. If changes are made to the character between calls, then this method may not make the character reflect the passed in HumanoidDescription accurately.
This method has been superseded by ApplyDescriptionAsync(), which should be used for all new work.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| humanoidDescription | HumanoidDescription | The HumanoidDescription instance which you want to set the character to match. | |
| assetTypeVerification | AssetTypeVerification | Default | The asset type verification mode. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| tags | ["Yields","Deprecated"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Humanoid:ApplyDescriptionAsync
This yielding method makes the character's look match that of the passed in HumanoidDescription. A copy of the passed HumanoidDescription is cached as the HumanoidDescription for the Humanoid.
This method is optimized through making the assumption that only this method is used to change the appearance of the character, and no changes are made through other means between calls. If changes are made to the character between calls, then this method may not make the character reflect the passed in HumanoidDescription accurately. If you want to use this method in conjunction with other means of updating the character, Humanoid:ApplyDescriptionResetAsync() will always ensure the character reflects the passed in HumanoidDescription.
See Also
Humanoid:GetAppliedDescription()which returns theHumanoidDescriptioncurrently applied to the humanoid.Players:GetHumanoidDescriptionFromUserIdAsync()which returns aHumanoidDescriptiondescribing the avatar for the passed in user.Players:GetHumanoidDescriptionFromOutfitIdAsync()which returns aHumanoidDescriptionwhose parameters are initialized to match that of the passed in server-side outfit asset.Player:LoadCharacterWithHumanoidDescriptionAsync()which spawns a player with the look from the passed inHumanoidDescription.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| humanoidDescription | HumanoidDescription | The HumanoidDescription instance which you want to set the character to match. | |
| assetTypeVerification | AssetTypeVerification | Default | The asset type verification mode. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| tags | ["Yields"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Humanoid:ApplyDescriptionReset
Deprecated. This method has been superseded by ApplyDescriptionResetAsync().
This yielding method makes the character's look match that of the passed in HumanoidDescription, even after external changes. A copy of the passed HumanoidDescription is cached as the HumanoidDescription for the Humanoid.
This method will always ensure the character reflects the passed in HumanoidDescription, even if changes have been made to the character not using the HumanoidDescription system. This is in contrast to Humanoid:ApplyDescription() which is optimized and may incorrectly apply a HumanoidDescription if the character has been changed by means other than through the HumanoidDescription system.
This method has been superseded by ApplyDescriptionResetAsync(), which should be used for all new work.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| humanoidDescription | HumanoidDescription | The HumanoidDescription instance which you want to set the character to match. | |
| assetTypeVerification | AssetTypeVerification | Default | The asset type verification mode. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| tags | ["Yields","Deprecated"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Humanoid:ApplyDescriptionResetAsync
This yielding method makes the character's look match that of the passed in HumanoidDescription, even after external changes. A copy of the passed HumanoidDescription is cached as the HumanoidDescription for the Humanoid.
This method will always ensure the character reflects the passed in HumanoidDescription, even if changes have been made to the character not using the HumanoidDescription system (for example not using ApplyDescriptionResetAsync() or ApplyDescriptionAsync()). This is in contrast to ApplyDescriptionAsync() which is optimized and may incorrectly apply a HumanoidDescription if the character has been changed by means other than through the HumanoidDescription system.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| humanoidDescription | HumanoidDescription | The HumanoidDescription instance which you want to set the character to match. | |
| assetTypeVerification | AssetTypeVerification | Default | The asset type verification mode. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| tags | ["Yields"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Humanoid:BuildRigFromAttachments
This method assembles a tree of Motor6D joints for the Humanoid. Motor6D joints are required for the playback of Animations.
Starting from the humanoid's RootPart, this method collects all Attachments parented in the current part whose name ends with RigAttachment. It then searches for a matching attachment in the character that shares the same name as the attachment. Using those two attachments, a Motor6D joint is generated based on the parts associated with the two attachments and the CFrame of the attachments.
Humanoid:BuildRigFromAttachments() also scales the character and sets body colors.
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Humanoid-BuildRigFromAttachments-Port, R15-Package-Importer).
Humanoid:ChangeState
This method causes the Humanoid to enter the given HumanoidStateType, describing the activity the Humanoid is currently doing.
Please review the HumanoidStateType page for more information on the particular states, as some have unintuitive names. For example, HumanoidStateType.Running describes a state where the humanoid's legs are on the ground, including when stationary.
Due to the default behavior of the Humanoid, some states will automatically be changed when set. For example:
- Setting the state to
HumanoidStateType.Swimmingwhen the humanoid is not in the water will cause it to be automatically set toHumanoidStateType.GettingUp. - As it is unused, setting the state to
HumanoidStateType.PlatformStandingwill cause the humanoid state to be automatically set toHumanoidStateType.Running.
Note that in order to set the Humanoid state using this method, you must do so from a LocalScript and the client must have network ownership of the Player.Character. Alternatively, you can call this method from a server-side Script, but the server must have network ownership of the player character.
See also Humanoid:SetStateEnabled() to enable or disable a particular state, and Humanoid:GetState() to get the current humanoid state.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| state | HumanoidStateType | None | The HumanoidStateType that the Humanoid is to perform. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (double-jump).
Humanoid:EquipTool
This method makes the Humanoid equip the given Tool.
When this method is called, the Humanoid will first automatically unequip all Tools that it currently has equipped.
Although they will be equipped, Tools for which Tool.RequiresHandle is true will not function if they have no handle, regardless if this method is used to equip them or not.
See also Humanoid:UnequipTools().
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| tool | Instance | The Tool to equip. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Humanoid:GetAccessories
This method returns an array of Accessory objects that the humanoid's parent is currently wearing. All such Accessory objects will be included, regardless of whether they're attached or not.
If the Humanoid has no Accessory objects, an empty array will be returned.
See also Humanoid:AddAccessory() to attach an Accessory to a humanoid's parent.
Returns
| Type | Description |
|---|---|
| Array | An array of Accessory objects that are parented to the humanoid's parent. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Code samples: View on Creator Hub (remove-accessories-after-loading).
Humanoid:GetAppliedDescription
This method returns a copy of the humanoid's cached HumanoidDescription which describes its current look. This can be used to quickly determine a character's look and to assign their look to other characters using the Humanoid:ApplyDescriptionAsync() method.
See Also
Players:GetHumanoidDescriptionFromUserIdAsync()which returns aHumanoidDescriptiondescribing the avatar for the passed in user.Players:GetHumanoidDescriptionFromOutfitIdAsync()which returns aHumanoidDescriptionwhose parameters are initialized to match that of the passed in server-side outfit asset.Player:LoadCharacterWithHumanoidDescriptionAsync()which spawns a player with the look from the passed inHumanoidDescription.
Returns
| Type | Description |
|---|---|
| HumanoidDescription | A copy of the HumanoidDescription currently applied to the humanoid. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Humanoid:GetBodyPartR15
This method returns what BodyPartR15 a Part is, or BodyPartR15.Unknown if the part is not an R15 body part. This method allows developers to retrieve player body parts independent of what the actual body part names are, instead returning an enum.
It can be used in conjunction with Humanoid:ReplaceBodyPartR15(). For example, if a player's body part touches something, this function will return get a part instance. Developers can then look up what part of the body that was, like head or arm. Then depending on what that part was, developers can either perform some gameplay action or replace that part with some other part - perhaps showing damage.
This method can be useful for games where hit location is important. For example, it can be used to determine if a player is hit in the leg and then slow them down based on the injury.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| part | Instance | The specified part being checked to see if it is an R15 body part. |
Returns
| Type | Description |
|---|---|
| BodyPartR15 | The specified part's R15 body part type or unknown if the part is not a body part. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Humanoid:GetLimb
This method returns the Limb enum that is associated with the given Part. It works for both R15 and R6 rigs, for example:
-- For R15
print(humanoid:GetLimb(character.LeftUpperLeg)) -- Enum.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftLowerLeg)) -- Enum.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftFoot)) -- Enum.Limb.LeftLeg
-- For R6
print(humanoid:GetLimb(character:FindFirstChild("Left Leg"))) -- Enum.Limb.LeftLeg Note that Humanoid:GetLimb() will throw an error if the part's parent is not set to the humanoid's parent.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| part | Instance | The Part for which the Enum.Limb is to be retrieved. |
Returns
| Type | Description |
|---|---|
| Limb | The Limb the part corresponds with. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Humanoid-GetLimb1).
Humanoid:GetMoveVelocity
Returns the Humanoid's intended movement velocity as a Vector3. The result is the product of WalkSpeed, the intended movement direction, and the current percent walk speed. If the Humanoid is not moving, this returns (0, 0, 0).
Returns
| Type | Description |
|---|---|
| Vector3 | A Vector3 representing the Humanoid's intended movement velocity in world space. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Humanoid:GetPlayingAnimationTracks
Deprecated.
This method returns an array of all AnimationTracks that are currently being played on the Humanoid. A typical use for this method is stopping currently playing tracks using AnimationTrack:Stop().
Beware that this method will not return AnimationTracks that have loaded but are not playing. If you want to track these you will need to index them manually.
Returns
| Type | Description |
|---|---|
| Array | An array of currently playing AnimationTracks. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["Animation"] |
Humanoid:GetRelativeVelocityAtFloor
Returns the humanoid's actual physical velocity relative to the surface it is standing on as a Vector3 in world-space orientation. This accounts for moving platforms by subtracting floor velocity from the humanoid's body velocity. Unlike Humanoid:GetMoveVelocity(), which returns the intended input-driven velocity, this reflects the humanoid's true physics-based motion — useful for animation speed scaling or detecting whether a character is actually moving versus pushing against a wall. When the humanoid is airborne, the floor velocity component uses the last cached value from when it was grounded.
Returns
| Type | Description |
|---|---|
| Vector3 | The humanoid's velocity relative to the floor surface, as a Vector3 in world-space orientation. Returns (0, 0, 0) if the humanoid has no root part. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Humanoid:GetState
This method returns the humanoid's current HumanoidStateType, describing the activity the Humanoid is currently doing, such as jumping or swimming.
See also Humanoid:SetStateEnabled() to enable or disable a particular state, and Humanoid:ChangeState() to change the current humanoid state.
Returns
| Type | Description |
|---|---|
| HumanoidStateType | The current HumanoidStateType of the Humanoid. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Safe |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (double-jump).
Humanoid:GetStateEnabled
The GetStateEnabled method returns whether a HumanoidStateType is enabled for the Humanoid.
The humanoid state describes the activity the humanoid is currently doing.
When a particular HumanoidStateType is disabled, the humanoid can never enter that state. This is true regardless if the attempt to change state is made using Humanoid:ChangeState() or Roblox internal humanoid code.
See also:
- For an event that fires when a humanoid state is enabled or disabled see
Humanoid.StateEnabledChanged - To enable or disable a
Humanoidstate useHumanoid:SetStateEnabled()
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| state | HumanoidStateType | The given HumanoidStateType. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the given HumanoidStateType is enabled. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Safe |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (setting-and-getting-humanoid-states).
Humanoid:GetStatuses
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The GetStatuses method returns a table of the Humanoid's statuses, and custom statuses.
Returns
| Type | Description |
|---|---|
| Array | An array of strings representing the names of all statuses currently applied to the Humanoid. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
Humanoid:HasCustomStatus
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The HasCustomStatus method returns boolean based on if custom statuses exist.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | string | The custom status name to check for. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the specified custom status exists on the Humanoid. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
Humanoid:HasStatus
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The HasStatus method returns a boolean based on if a status exists.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | Status | Poison | The Status value to check for. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the specified status exists on the Humanoid. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
Humanoid:LoadAnimation
Deprecated. This function is deprecated in favor of using Animator:LoadAnimation() directly (the Animator may be created while editing or at runtime).
This method loads an Animation onto a Humanoid, returning an AnimationTrack that can be used for playback.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| animation | Animation | The Animation to load. |
Returns
| Type | Description |
|---|---|
| AnimationTrack | The AnimationTrack created from the loaded Animation. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["Animation"] |
| simulationAccess | true |
Humanoid:loadAnimation
Deprecated. This deprecated method is a variant of Humanoid:LoadAnimation(). Animator:LoadAnimation() should be used instead.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| animation | Animation |
Returns
| Type | Description |
|---|---|
| AnimationTrack |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["Animation"] |
| simulationAccess | true |
Humanoid:Move
This method causes the Humanoid to walk in the given Vector3 direction.
By default, the direction is in world terms, but if the relativeToCamera parameter is true, the direction is relative to the CFrame of the CurrentCamera. As the negative Z direction is considered "forwards" in Roblox, the following code will make the humanoid walk in the direction of the CurrentCamera.
humanoid:Move(Vector3.new(0, 0, -1), true) When this method is called, the Humanoid will move until the method is called again. However, this method will be overwritten in the next frame by Roblox's default character control script. This can be avoided by either calling this function every frame using RunService:BindToRenderStep() (see example), or overwriting the control scripts in StarterPlayerScripts.
This method can be called on the server, but this should only be done when the server has network ownership of the humanoid's assembly.
See also Humanoid:MoveTo() which makes aHumanoid walk to a point, and Player:Move() which effectively calls this function.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| moveDirection | Vector3 | The direction to walk in. | |
| relativeToCamera | boolean | false | Set to true if the moveDirection parameter should be taken as relative to the CurrentCamera. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (moving-a-humanoid-forwards).
Humanoid:MoveTo
This method causes the Humanoid to attempt to walk to a given location by setting the WalkToPoint and WalkToPart properties, corresponding to the location and part parameters.
If the part parameter is specified, the Humanoid will still attempt to walk to the location parameter's point. However, if the part moves, the point will move to be at the same position relative to the part.
Note that the movement operation will time out after 8 seconds if the humanoid doesn't reach its goal (this timeout exists so that humanoids do not get stuck waiting for MoveToFinished to fire). If you don't want this to happen, call MoveTo() at a repeated interval so that the timeout keeps resetting.
MoveTo() ends if any of the following conditions apply:
The character arrives at its destination, assuming a ~1 stud threshold to account for various humanoid speeds and framerates.
The character gets stuck and the timer expires.
The value of either
WalkToPointorWalkToPartchanges.A script calls
Move()with a newmoveDirectionparameter.A script changes the
CFrameproperty of the humanoid'sRootPart.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| location | Vector3 | The position to set Humanoid.WalkToPoint to. | |
| part | Instance | nil | The BasePart to set Humanoid.WalkToPart to. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (humanoid-moveto-without-time-out).
Humanoid:PlayEmote
Deprecated. This method has been superseded by PlayEmoteAsync().
This yielding method looks up the emote by name in the HumanoidDescription currently applied to the Humanoid and plays it. If the emote cannot be found in the HumanoidDescription, the method errors.
This method has been superseded by PlayEmoteAsync(), which should be used for all new work.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| emoteName | string | name of the emote to play. |
Returns
| Type | Description |
|---|---|
| boolean | successfully played. |
| Field | Value |
|---|---|
| tags | ["Yields","Deprecated"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Humanoid:PlayEmoteAsync
If the emote could not be played because the emoteName is not found in the HumanoidDescription, this method will give an error. The method will return true to indicate that the emote was played successfully.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| emoteName | string | name of the emote to play. |
Returns
| Type | Description |
|---|---|
| boolean | successfully played. |
| Field | Value |
|---|---|
| tags | ["Yields"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Humanoid:RemoveAccessories
This method removes all Accessory objects worn by the humanoid's parent. For player Characters, this will remove all hats and other accessories.
This method removes Accessory object by calling Instance:Destroy() on them, meaning the Parent of the accessories are set to nil and locked.
See also Humanoid:AddAccessory() to attach an Accessory, and Humanoid:GetAccessories() to get all Accessory objects belonging to a Humanoid.
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Code samples: View on Creator Hub (remove-accessories-after-loading).
Humanoid:RemoveCustomStatus
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The RemoveCustomStatus method removes the defined custom status from the Status model in the Humanoid..
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | string | The custom status name to remove from the Humanoid. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the custom status was successfully removed; returns false if it does not exist. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
Humanoid:RemoveStatus
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The RemoveStatus method removes the defined status from the Status model in the Humanoid.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | Status | Poison | The Status value to remove from the Humanoid. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the status was successfully removed; returns false if it does not exist. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
Humanoid:ReplaceBodyPartR15
Dynamically replaces a R15/Rthro limb part in a Humanoid with a different part. The part is automatically scaled as normal.
This method is useful for modifying characters during gameplay or building characters from a base rig. The related method GetBodyPartR15 can come in handy when using this method.
The name of the part passed in should match with the name of the BodyPartR15 Enum passed in.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| bodyPart | BodyPartR15 | The body part to replace. BodyPartR15.Unknown will fail. | |
| part | BasePart | The Part Instance which will be parented to the character. |
Returns
| Type | Description |
|---|---|
| boolean | Whether the body part replacement was successful; returns false if the specified body part could not be found in the character. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarAppearance"] |
Humanoid:SetStateEnabled
This method sets whether a given HumanoidStateType is enabled for the Humanoid. When a particular HumanoidStateType is disabled, the Humanoid can never enter that state. This is true regardless if the attempt to change state is made using Humanoid:ChangeState() or Roblox internal Humanoid code.
Note that using SetStateEnabled() on the server does not replicate the change to the client, nor vice-versa.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| state | HumanoidStateType | The HumanoidStateType to be enabled or disabled. | |
| enabled | boolean | true if state is to be enabled, false if state is to be disabled. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
| simulationAccess | true |
Code samples: View on Creator Hub (jump-cooldown).
Humanoid:TakeDamage
This method lowers the Humanoid.Health of the Humanoid by the given amount if it is not protected by a ForceField
This method accepts negative values for the amount parameter. This will increase the humanoid's Humanoid.Health. However this will only have an effect if no ForceField is present.
How do ForceFields protect against TakeDamage
A Humanoid is considered protected by a ForceField if a ForceField meets one of the following criteria:
- The
ForceFieldshares the sameInstance.Parentas theHumanoid - The
ForceFieldis parented to theHumanoid.RootPartof theHumanoid - The
ForceFieldis parented to an ancestor of theHumanoidother than theWorkspace
To do damage to a Humanoid irrespective of any ForceFields present, set Humanoid.Health directly.
For more information on how ForceFields protect Humanoids see the ForceField page.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| amount | float | The damage, or amount to be deduced from the Humanoid.Health. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Humanoid-TakeDamage1).
Humanoid:takeDamage
Deprecated. This deprecated method is a variant of Humanoid:TakeDamage(), which should be used instead.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| amount | float |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Humanoid:UnequipTools
This method unequips any Tool currently equipped by the Humanoid. The unequipped Tool will be parented to the Backpack of the Player associated with the Humanoid.
If no Tool is equipped, this method will do nothing.
Although Tools can be equipped by NPCs, this method only works on Humanoids with a corresponding Player, as a Backpack object is required to parent the unequipped Tool to.
See also Humanoid:EquipTool().
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["AvatarBehavior"] |
Events
| Name | Type / Returns | Description |
|---|---|---|
| Humanoid.AnimationPlayed | Fires when an AnimationTrack begins playing on the Humanoid. | |
| Humanoid.ApplyDescriptionFinished | Fires when a HumanoidDescription has finished being applied to the Humanoid. | |
| Humanoid.Climbing | Fires when the speed at which a Humanoid is climbing changes. | |
| Humanoid.CustomStatusAdded | Fired when a status is added to the Humanoid. | |
| Humanoid.CustomStatusRemoved | Fired when a status is removed from the Humanoid. | |
| Humanoid.Died | Fires when the Humanoid dies. | |
| Humanoid.FallingDown | Fires when the Humanoid enters or leaves the FallingDown HumanoidStateType. | |
| Humanoid.FreeFalling | Fires when the Humanoid enters or leaves the Freefall HumanoidStateType. | |
| Humanoid.GettingUp | Fires when the Humanoid enters or leaves the GettingUp HumanoidStateType. | |
| Humanoid.HealthChanged | Fires when the Humanoid.Health changes (or when the Humanoid.MaxHealth is set). | |
| Humanoid.Jumping | Fires when the Humanoid enters and leaves the Jumping HumanoidStateType. | |
| Humanoid.MoveToFinished | Fires when the Humanoid finishes walking to a goal declared by Humanoid:MoveTo(). | |
| Humanoid.PlatformStanding | Fires when the Humanoid enters or leaves the PlatformStanding HumanoidStateType. | |
| Humanoid.Ragdoll | Fires when the Humanoid enters or leaves the Ragdoll HumanoidStateType. | |
| Humanoid.Running | Fires when the speed at which a Humanoid is running changes. | |
| Humanoid.Seated | Fired when a Humanoid either sits in a Seat or VehicleSeat or gets up. | |
| Humanoid.StateChanged | Fires when the state of the Humanoid is changed. | |
| Humanoid.StateEnabledChanged | Fires when Humanoid:SetStateEnabled() is called on the Humanoid. | |
| Humanoid.StatusAdded | Fired when a status is added to the Humanoid. | |
| Humanoid.StatusRemoved | Fired when a status is removed from the Humanoid. | |
| Humanoid.Strafing | Fires when the Humanoid enters or leaves the StrafingNoPhysics HumanoidStateType. | |
| Humanoid.Swimming | Fires when the speed at which a Humanoid is swimming in Terrain water changes. | |
| Humanoid.Touched | Fires when one of the humanoid's limbs come in contact with another BasePart. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.AncestryChanged | Fires when the Instance.Parent property of this object or one of its ancestors is changed. | |
| Instance.AttributeChanged | Fires whenever an attribute is changed on the Instance. | |
| Instance.ChildAdded | Fires after an object is parented to this Instance. | |
| Instance.childAdded | ||
| Instance.ChildRemoved | Fires after a child is removed from this Instance. | |
| Instance.DescendantAdded | Fires after a descendant is added to the Instance. | |
| Instance.DescendantRemoving | Fires immediately before a descendant of the Instance is removed. | |
| Instance.Destroying | Fires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy(). | |
| Instance.StyledPropertiesChanged | Fires whenever any style property is changed on the instance, including when a property is set to nil. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.Changed | Fires immediately after a property of the object changes, with some limitations. |
Humanoid.AnimationPlayed
Deprecated.
The AnimationPlayed event fires when an AnimationTrack begins playing on the Humanoid.
A common use for this function is to connect the AnimationTrack.KeyframeReached event for the playing AnimationTrack, so additional effects can be added to the animation (for example Sounds and ParticleEmitters).
This event can be used for any Humanoid regardless if it belongs to the local player's client or not.
See also:
- For the
AnimationControllerequivalent of this event, please seeAnimationController.AnimationPlayed
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| animationTrack | AnimationTrack | The AnimationTrack that has begun playing. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
| capabilities | ["Animation"] |
Code samples: View on Creator Hub (pausing-an-animation-when-a-keyframe-is-reached).
Humanoid.ApplyDescriptionFinished
Fires when the Humanoid finishes applying a HumanoidDescription to the character, at the end of Humanoid:ApplyDescriptionAsync() or Humanoid:ApplyDescriptionResetAsync(). The description parameter is the HumanoidDescription that was applied.
The event fires on the server and replicates to clients, so server or client listeners can respond when the character's appearance has been updated.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| description | HumanoidDescription | The HumanoidDescription that was applied to the character. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarAppearance"] |
Humanoid.Climbing
Fires when the speed at which a Humanoid is climbing changes.
Humanoids can climb up ladders made out of Parts or TrussParts.
Humanoids climb at 70% of their Humanoid.WalkSpeed.
This event will not always fire with a speed of 0 when the Humanoid stops climbing.
See also:
- For swimming and running see the
Humanoid.SwimmingandHumanoid.Runningevents - You can also detect when a
Humanoidis climbing using theHumanoid.StateChangedevent - You can disable climbing using the
Humanoid:SetStateEnabled()function
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| speed | float | The speed at which the Humanoid is currently climbing. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Humanoid-Climbing1).
Humanoid.CustomStatusAdded
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The CustomStatusAdded event fires when a status is added to the Humanoid via the Humanoid:AddCustomStatus() method.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | string | The name of the custom status that was added. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
Humanoid.CustomStatusRemoved
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The CustomStatusRemoved event fires when a status is removed from the Humanoid via the Humanoid:RemoveCustomStatus() method.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | string | The name of the custom status that was removed. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
Humanoid.Died
This event fires when the Humanoid dies, usually when Humanoid.Health reaches 0. This could be caused either by disconnecting their head from their Humanoid.Torso, or directly setting the health property.
This event only fires if the Humanoid is a descendant of the Workspace. If the Dead HumanoidStateType is disabled it will not fire.
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Humanoid-Died1).
Humanoid.FallingDown
The FallingDown event fires when the Humanoid enters and leaves the FallingDown HumanoidStateType.
The Humanoid will enter the GettingUp state 3 seconds after the FallingDown state is enabled. When this happens this event will fire with an active value of false, and Humanoid.GettingUp will fire with an active value of true.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | Describes whether the Humanoid is entering or leaving the FallingDown HumanoidStateType. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.FreeFalling
This event fires when the Humanoid enters or leaves the Freefall HumanoidStateType.
The active parameter represents whether the Humanoid is entering or leaving the Freefall state.
Although the Freefall state generally ends when the Humanoid reaches the ground, this event may fire with active equal to false if the state is changed while the Humanoid is falling. For this reason, you should use Humanoid.StateChanged and listen for the Landed state to work out when a Humanoid has landed.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | Whether the Humanoid is entering or leaving the Freefall HumanoidStateType. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.GettingUp
This event fires when the Humanoid enters or leaves the HumanoidStateType.GettingUp state, a transition state that is activated shortly after the Humanoid enters the FallingDown (3 seconds) or Ragdoll (1 second) states.
When a Humanoid attempts to get back up, this event will first fire with an active parameter of true before shortly after firing again with an active parameter of false.
To force a Humanoid to fall over, use the Humanoid:ChangeState() function with HumanoidStateType.FallingDown.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | Whether the Humanoid is entering or leaving the GettingUp HumanoidStateType. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.HealthChanged
This event fires when the Humanoid.Health changes. However, it will not fire if the health is increasing from a value equal to or greater than the Humanoid.MaxHealth.
When Humanoid.Health reaches zero, the Humanoid will die and the Humanoid.Died event will fire. This event will fire with a value of zero.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| health | float | The new value of Humanoid.Health. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Humanoid-HealthChanged1, Health-Bar).
Humanoid.Jumping
This event fires when the Humanoid enters and leaves the Jumping HumanoidStateType.
When a Humanoid jumps, this event fires with an active parameter of true before shortly afterwards firing again with an active parameter of false. This second firing does not correspond with a Humanoid landing; for that, listen for the Landed HumanoidStateType using Humanoid.StateChanged.
You can disable jumping using the Humanoid:SetStateEnabled() function.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | Whether the Humanoid is entering or leaving the Jumping HumanoidStateType. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.MoveToFinished
This event fires when the Humanoid finishes walking to a goal declared by the Humanoid.WalkToPoint and Humanoid.WalkToPart properties.
The Humanoid.WalkToPoint and Humanoid.WalkToPart properties can be set individually, or using the Humanoid:MoveTo() function.
If the Humanoid reaches its goal within 8 seconds, this event will return with reached as true. If the goal is not reached within 8 seconds the Humanoid will stop walking and reached will be false. This timeout can be reset be calling Humanoid:MoveTo() again within the timeout period.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| reached | boolean | A boolean indicating whether the Humanoid reached is goal. True if the Humanoid is reached its goal, false if the walk timed out before the goal could be reached. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (humanoid-moveto-without-time-out).
Humanoid.PlatformStanding
This event fires when the Humanoid enters or leaves the PlatformStanding HumanoidStateType.
Whilst the Humanoid is in the PlatformStanding state, the Humanoid.PlatformStand property will be true.
Whilst Humanoid.PlatformStand is set to true, the Humanoid will be unable to move. For more information please see the page for Humanoid.PlatformStand.
The PlatformStand HumanoidStateType was associated with the now disabled Platform part. Despite this, it can still be used by developers.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | Whether the Humanoid is entering or leaving the PlatformStanding HumanoidStateType. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.Ragdoll
This event fires when the Humanoid enters or leaves the Ragdoll HumanoidStateType.
The active parameter will have the value true or false to indicate entering or leaving.
Use Humanoid:SetStateEnabled() to disable the GettingUp state to stay in the Ragdoll state.
See also:
Humanoid.FallingDownfor theHumanoidevent connected with theFallingDownstate, which behaves similarly toRagdoll
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | Whether the Humanoid is entering or leaving the Ragdoll HumanoidStateType. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.Running
This event fires when the speed at which a Humanoid is running changes.
While running Humanoids cover, on average, their Humanoid.WalkSpeed in studs per second.
When the Humanoid stops running this event will fire with a speed of 0.
See also:
- For swimming and climbing see the
Humanoid.SwimmingandHumanoid.Climbingevents - You can also detect when a
Humanoidis running using theHumanoid.StateChangedevent
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| speed | float | The speed at which the Humanoid is running. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (Humanoid-Running1).
Humanoid.Seated
This event fires when a Humanoid either sits in or gets up from a Seat or VehicleSeat.
When a character comes into contact with a seat, they are attached to the seat and a sitting animation plays. For more information on this, see the Seat page.
- If the character is sitting down, the
activeparameter will be true andcurrentSeatPartwill be the seat they are currently sitting in. - If the character got up from a seat, the
activeparameter will be false andcurrentSeatPartwill benil.
See also:
Humanoid.Sit, which indicates if a Humanoid is currently sittingHumanoid.SeatPart, which indicates the seat a Humanoid is currently sitting in, if any.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | True if the Humanoid is sitting down. | |
| currentSeatPart | BasePart | The seat the Humanoid is sat in if it is sitting down. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (finding-a-player-s-seat).
Humanoid.StateChanged
This event fires when the state of the Humanoid is changed.
As there is no "idle" humanoid state, you should instead use the Humanoid.Running event or listen to the RootPart part's Velocity to work out when the Humanoid is standing still.
See Also
Humanoid:GetState()andHumanoid:ChangeState()to get and set the state.Humanoid:SetStateEnabled()to enable and disable specific states.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| old | HumanoidStateType | The humanoid's previous state type. | |
| new | HumanoidStateType | The humanoid's current state type. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (jumping-particles, jump-cooldown).
Humanoid.StateEnabledChanged
The StateEnableChanged event fires when Humanoid:SetStateEnabled() is called on the Humanoid.
Parameters include the HumanoidStateType in question along with a bool indicating if this state is now enabled.
See also:
- To find if a state is currently enabled, use
Humanoid:GetStateEnabled() - To listen to
Humanoidstate changes useHumanoid.StateChanged
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| state | HumanoidStateType | The HumanoidStateType for which the enabled state has been changed. | |
| isEnabled | boolean | True if the state is now enabled. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (humanoid-state-change-detector).
Humanoid.StatusAdded
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The StatusAdded event fires when a status is added to the Humanoid.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | Status | The name of the status that was added. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
Code samples: View on Creator Hub (Humanoid-StatusAdded1).
Humanoid.StatusRemoved
Deprecated. This item is deprecated, as it was a part of the unfinished RbxStatus library which would have allowed you to add conditions to a Humanoid. Do not use it for new work.
The StatusRemoved event fires when a status is removed from the Humanoid.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| status | Status | The name of the status that was removed. |
| Field | Value |
|---|---|
| tags | ["Deprecated"] |
| security | None |
Code samples: View on Creator Hub (Humanoid-StatusRemoved1).
Humanoid.Strafing
This event does not fire when the Humanoid is strafing and should not be used by developers
This event is fired when the Humanoid enters or leaves the StrafingNoPhysics HumanoidStateType.
When the Humanoid enters the StrafingNoPhysics state this event will fire with an active parameter of true. The event will fire again with active equal to false when the Humanoid leaves the StrafingNoPhysics state.
This event is associated with the StrafingNoPhysics Humanoid state and does not fire when the Humanoid is moving perpendicular to the direction it is facing. This state is currently unused, if it is set using Humanoid:ChangeState() the state will revert to RunningNoPhysics.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| active | boolean | Whether the Humanoid is entering or leaving the StrafingNoPhysics HumanoidStateType. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.Swimming
This event fires when the speed at which a Humanoid is swimming in Terrain water changes.
Humanoids swim at 87.5% of their Humanoid.WalkSpeed.
This event will not always fire with a speed of 0 when the Humanoid stops swimming.
See also:
- For running and climbing see the
Humanoid.RunningandHumanoid.Climbingevents - You can also detect when a
Humanoidis swimming using theHumanoid.StateChangedevent - You can disable swimming using the
Humanoid:SetStateEnabled()function
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| speed | float | The speed the Humanoid is currently swimming at. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Humanoid.Touched
This event fires when one of the humanoid's limbs comes in contact with another BasePart. The BasePart which the limb is touching, along with the limb itself, is given.
This event will not fire when limbs belonging to the Humanoid come into contact with themselves.
Alternatives
Although the Humanoid.Touched event is useful, you should consider if there are alternatives that better suit your needs.
- In most cases, it's advised to connect a
BasePart.Touchedevent forBasePartsof interest instead, as theHumanoid.Touchedevent will constantly fire when the humanoid is moving. For example, in a dodgeball game, it would be more practical to connect aTouchedevent for the balls rather than useHumanoid.Touched. - When trying to work out when the
Humanoidhas landed on the ground, theHumanoid.StateChangedevent is more suitable. Alternatively, you can checkHumanoid.FloorMaterialto see if the humanoid is standing on any non-air material.
Notes
- Connecting to this event will cause a
TouchTransmitterto be created in every limb. - There is currently no equivalent of
BasePart.TouchEndedforHumanoids.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| touchingPart | BasePart | The BasePart the Humanoid has come in contact with. | |
| humanoidPart | BasePart | The limb of the Humanoid that has been touched. |
| Field | Value |
|---|---|
| security | None |
| capabilities | ["AvatarBehavior"] |
Code samples: View on Creator Hub (midas-touch-2).