Characters typically refer to any Model objects that interact with the world or other users. While a character can be as simple as a glowing sphere that communicates and interacts with players, characters are often human-like models with additional means of expression to encourage immersion and realism.
Characters range between basic characters, such as simple non-player characters (NPCs), or avatar characters, which are user-controlled models that include advanced features for movement, animation, and cosmetics.
All Roblox users are associated with an account-based avatar character. Along with this avatar character, Roblox represents users as players in the data model, giving creators access to additional character customization properties, social features, and relevant gameplay and account information.
Basic characters
Basic characters are often used as NPCs, and they typically perform one or two simple tasks. A common component of basic characters include a display name, health, and basic movement.
You can use the following components within your Model object to enable these basic features:
- A group of parts, or assembly, that includes the following:
- A collection with the name HumanoidRootPart to indicate the root part of the assembly.
- A part with the name Head to display the character's name over their head geometry.
- Additional mesh parts that make up the individual body parts, which commonly include the 6 (R6) or 15 (R15) body parts used for human-like models.
- A Humanoid instance to implement and access common character properties.


With these components, the character model displays a Humanoid.DisplayName, has health, and can move with Humanoid.Move(). For more information on additional configurations of the display and health elements, see Name/health display.
Avatar characters
Avatar characters use a standardized set of character components that allow you to use body and facial animations, and equip clothing and accessories. By standardizing the components, all avatar character models can access these features, whether they are controlled by a player or an NPC.
By default, all players join games as their saved Roblox avatar, which already includes all the components for an avatar character. A complete avatar character has the following components in their Model:
- An assembly of MeshPart objects, that includes the following:
- A part with the name HumanoidRootPart to indicate the root part of the assembly.
- A part with the name Head to display the character's name and health over their head geometry.
- 15 meshes that make up the individual body parts, such as the character's arm or leg.
- Joints, such as Bone or Motor6D objects, that connect each part and follow a standardized joint hierarchy.
- A Humanoid instance to implement and access common character properties.
- WrapLayer objects for each of the model's body parts, enabling it to wear clothing and other layerable cosmetics.
- FaceControls to enable facial expressions and poses for the character's head.
- Attachment objects for each of the standard attachment points on the character body.


Standard avatar character rigs require 15 poseable joints, and higher-fidelity character rigs support up to 37 additional joints for a greater level of realism with articulated hands, shoulders, and spine movements. For more information on higher-fidelity rigs, their specific bone hierarchy and naming conventions, and how to animate them with HumanoidRigDescription and DigitsRigDescription objects, see Character specifications - Higher-fidelity rigs.
Character Controller Library
The Character Controller Library (CCL) is a modular framework for building out character movement and behaviors through attributes and Luau scripts. This architecture replaces rigid state machines with a flexible, ability‑driven system for character mechanics.