Passer au contenu principal
Version: latest - a1.65.x ⚖️

🧑 Personnage

Characters represents Actors which can be possessed, can move and interact with world. They are the default Skeletal Mesh Character built for nanos world.


💂Authority
This class can only be spawned on 🟦 Server side.
👪Inheritance
This class shares methods and events from Base Entity, Base Actor, Base Pawn, Base Paintable, Base Damageable.
🧑‍💻API Source
This page is auto-generated! The Functions, Properties and Events described here are defined in our GitHub's API Repository! Feel free to commit suggestions and changes to the source .json API files!

Les personnages sont des Maillages squelettiques utilisant le squelette Mannequin d'Unreal, avec des animations et une interactivité déjà nativement intégrées dans nanos world. Il est possible d'importer n'importe quel Skeletal Mesh (qui utilise le Skeletal Mannequin d'Unreal) à ce caractère.

🎒 Examples

Server/Index.lua
-- The following examples are using all Skeletal Meshes which we currently have for examples, including the officials Woman, Man and Mannequin:
local woman = Character(Vector(100, 0, 100), Rotator(0, 0, 0), "nanos-world::SK_Female")
local man = Character(Vector(200, 0, 100), Rotator(0, 0, 0), "nanos-world::SK_Male")
local mannequin = Character(Vector(300, 0, 100), Rotator(0, 0, 0), "nanos-world::SK_Mannequin")
local mannequin_female = Character(Vector(400, 0, 100), Rotator(0, 0, 0), "nanos-world::SK_Mannequin_Female")

local post_apocalyptic = Character(Vector(400, 0, 100), Rotator(0, 0, 0), "nanos-world::SK_PostApocalyptic")
local classic_male = Character(Vector(500, 0, 100), Rotator(0, 0, 0), "nanos-world::SK_ClassicMale")

-- Adds Clothes to Man. Note: some Meshes only supports a specific Mesh (Men/Woman)
man:AddSkeletalMeshAttached("shirt", "nanos-world::SK_Shirt") -- Men only
man:AddSkeletalMeshAttached("shirt", "nanos-world::SK_Underwear") -- Men only
man:AddSkeletalMeshAttached("pants", "nanos-world::SK_Pants") -- Men only
man:AddSkeletalMeshAttached("shoes", "nanos-world::SK_Shoes_01")
man:AddSkeletalMeshAttached("tie", "nanos-world::SK_Tie")

-- Adds Clothes to Woman
woman:AddSkeletalMeshAttached("full", "nanos-world::SK_CasualSet") -- Woman only
woman:AddSkeletalMeshAttached("shoes", "nanos-world::SK_Sneakers")

-- Adds Beard to Man
man:AddStaticMeshAttached("beard", "nanos-world::SM_Beard_Extra", "beard")
man:AddStaticMeshAttached("beard", "nanos-world::SM_Beard_Middle", "beard")
man:AddStaticMeshAttached("beard", "nanos-world::SM_Beard_Mustache_01", "beard")
man:AddStaticMeshAttached("beard", "nanos-world::SM_Beard_Mustache_02", "beard")
man:AddStaticMeshAttached("beard", "nanos-world::SM_Beard_Side", "beard")

-- Adds Hair to Man
man:AddStaticMeshAttached("hair", "nanos-world::SM_Hair_Long", "hair_male")
man:AddStaticMeshAttached("hair", "nanos-world::SM_Hair_Short", "hair_male")

-- Adds Hair to Woman
woman:AddStaticMeshAttached("hair", "nanos-world::SM_Hair_Kwang", "hair_female")

Plus d'exemples comme celui-ci:

Play as Propgetting-started/tutorials-and-examples/play-as-prop Nametagsgetting-started/tutorials-and-examples/name-tags Character Meshes Guideassets-modding/creating-assets/skeletal-meshes/characters-meshes

🛠 Constructors

Default Constructor

local my_character = Character(location, rotation, skeletal_mesh_asset, collision_type?, gravity_enabled?, max_health?, death_sound?, pain_sound?)
TypeNameDefaultDescription
Vectorlocation Required parameter No description provided
Rotatorrotation Required parameter No description provided
SkeletalMesh Referenceskeletal_mesh_asset Required parameter No description provided
CollisionTypecollision_typeCollisionType.AutoNo description provided
booleangravity_enabledtrueNo description provided
integermax_health100Current / Max Health
Sound Referencedeath_soundnanos-world::A_Male_01_DeathPlayed when Character dies
Sound Referencepain_soundnanos-world::A_Male_01_PainPlayed when Character takes damage

🗿 Static Functions

Inherited Entity Static Functions
Character inherits from Base Entity Class, sharing it's methods and functions:
Base Entityscripting-reference/classes/base-classes/Entity
ReturnsNameDescription
table of Base EntityGetAllReturns a table containing all Entities of the class this is called on
Base EntityGetByIndexReturns a specific Entity of this class at an index
integerGetCountReturns how many Entities of this class exist
table of tableGetInheritedClassesGets a list of all directly inherited classes from this Class created with the Inheriting System
iteratorGetPairsReturns an iterator with all Entities of this class to be used with pairs()
table or nilGetParentClassGets the parent class if this Class was created with the Inheriting System
tableInheritInherits this class with the Inheriting System
booleanIsChildOfGets if this Class is child of another class if this Class was created with the Inheriting System
functionSubscribeSubscribes to an Event for all entities of this Class
functionSubscribeRemoteSubscribes to a custom event called from server
UnsubscribeUnsubscribes all callbacks from this Event in this Class within this Package, or only the callback passed
This class doesn't have own static functions.

🦠 Functions

Inherited Entity Functions
Character inherits from Base Entity Class, sharing it's methods and functions:
Base Entityscripting-reference/classes/base-classes/Entity
ReturnsNameDescription
BroadcastRemoteEventCalls a custom remote event directly on this entity to all Players
CallRemoteEventCalls a custom remote event directly on this entity to a specific Player
CallRemoteEventCalls a custom remote event directly on this entity
DestroyDestroys this Entity
table of stringGetAllValuesKeysGets a list of all values keys
tableGetClassGets the class of this entity
integerGetIDGets the universal network ID of this Entity (same on both client and server)
anyGetValueGets a Value stored on this Entity at the given key
booleanIsARecursively checks if this entity is inherited from a Class
booleanIsValidReturns true if this Entity is valid (i.e. wasn't destroyed and points to a valid Entity)
SetValueSets a Value in this Entity
functionSubscribeSubscribes to an Event on this specific entity
functionSubscribeRemoteSubscribes to a custom event called from server on this specific entity
UnsubscribeUnsubscribes all callbacks from this Event in this Entity within this Package, or only the callback passed
Inherited Actor Functions
Character inherits from Base Actor Class, sharing it's methods and functions:
Base Actorscripting-reference/classes/base-classes/Actor
ReturnsNameDescription
AddActorTagAdds an Unreal Actor Tag to this Actor
AddImpulseApplies a force in world world to this Actor
AttachToAttaches this Actor to any other Actor, optionally at a specific bone
DetachDetaches this Actor from AttachedTo Actor
table of stringGetActorTagsGets all Unreal Actor Tags on this Actor
table of Base ActorGetAttachedEntitiesGets all Actors attached to this Actor
Base Actor or nilGetAttachedToGets the Actor this Actor is attached to
tableGetBoundsGets this Actor's bounds
CollisionTypeGetCollisionGets this Actor's collision type
integerGetDimensionGets this Actor's dimension
floatGetDistanceFromCameraGets the distance of this Actor from the Camera
VectorGetForceGets this Actor's force (set by SetForce())
VectorGetLocationGets this Actor's location in the game world
Player or nilGetNetworkAuthorityGets this Actor's Network Authority Player
VectorGetRelativeLocationGets this Actor's Relative Location if it's attached
RotatorGetRelativeRotationGets this Actor's Relative Rotation if it's attached
RotatorGetRotationGets this Actor's angle in the game world
VectorGetScaleGets this Actor's scale
floatGetScreenPercentageGets the percentage of this Actor size in the screen
VectorGetVelocityGets this Actor's current velocity
booleanHasAuthorityGets if this Actor was spawned by the client side
booleanHasNetworkAuthorityReturns true if the local Player is currently the Network Authority of this Actor
booleanIsBeingDestroyedReturns true if this Actor is being destroyed
booleanIsGravityEnabledReturns true if gravity is enabled on this Actor
booleanIsInWaterReturns true if this Actor is in water
booleanIsNetworkDistributedReturns true if this Actor is currently network distributed
booleanIsVisibleReturns true if this Actor is visible
RemoveActorTagRemoves an Unreal Actor Tag from this Actor
RotateToSmoothly rotates this actor to an angle over a certain time
SetCollisionSets this Actor's collision type
SetDimensionSets this Actor's Dimension
SetForceAdds a permanent force to this Actor, set to Vector(0, 0, 0) to cancel
SetGravityEnabledSets whether gravity is enabled on this Actor
SetHighlightEnabledSets whether the highlight is enabled on this Actor, and which highlight index to use
SetLifeSpanSets the time (in seconds) before this Actor is destroyed. After this time has passed, the actor will be automatically destroyed.
SetLocationSets this Actor's location in the game world
SetNetworkAuthoritySets the Player to have network authority over this Actor
SetNetworkAuthorityAutoDistributedSets if this Actor will auto distribute the network authority between players
SetOutlineEnabledSets whether the outline is enabled on this Actor, and which outline index to use
SetRelativeLocationSets this Actor's relative location in local space (only if this actor is attached)
SetRelativeRotationSets this Actor's relative rotation in local space (only if this actor is attached)
SetRotationSets this Actor's rotation in the game world
SetScaleSets this Actor's scale
SetVisibilitySets whether the actor is visible or not
TranslateToSmoothly moves this actor to a location over a certain time
booleanWasRecentlyRenderedGets if this Actor was recently rendered on screen
Inherited Paintable Functions
Character inherits from Base Paintable Class, sharing it's methods and functions:
Base Paintablescripting-reference/classes/base-classes/Paintable
ReturnsNameDescription
ResetMaterialResets the material from the specified index to the original one
SetMaterialSets the material at the specified index of this Actor
SetMaterialColorParameterSets a Color parameter in this Actor's material
SetMaterialFromCanvasSets the material at the specified index of this Actor to a Canvas object
SetMaterialFromSceneCaptureSets the material at the specified index of this Actor to a SceneCapture object
SetMaterialFromWebUISets the material at the specified index of this Actor to a WebUI object
SetMaterialScalarParameterSets a Scalar parameter in this Actor's material
SetMaterialTextureParameterSets a texture parameter in this Actor's material to an image on disk
SetMaterialVectorParameterSets a Vector parameter in this Actor's material
SetPhysicalMaterialOverrides this Actor's Physical Material with a new one
Inherited Damageable Functions
Character inherits from Base Damageable Class, sharing it's methods and functions:
Base Damageablescripting-reference/classes/base-classes/Damageable
ReturnsNameDescription
integerApplyDamageDo damage to this entity
integerGetHealthGets the current health
integerGetMaxHealthGets the Max Health
RespawnRespawns the Entity, fullying it's Health and moving it to it's Initial Location
SetHealthSets the Health of this Entity
SetMaxHealthSets the MaxHealth of this Entity
Inherited Pawn Functions
Character inherits from Base Pawn Class, sharing it's methods and functions:
Base Pawnscripting-reference/classes/base-classes/Pawn
ReturnsNameDescription
AddSkeletalMeshAttachedAttaches a Skeletal Mesh as master pose to this entity
AddStaticMeshAttachedAttaches a Static Mesh to this entity
FollowAI: Makes this Character to follow another actor
table of stringGetAllSkeletalMeshAttachedGets all Skeletal Meshes attached to this entity
table of stringGetAllStaticMeshAttachedGets all Static Meshes attached to this entity
RotatorGetControlRotationGets the Control Rotation
SkeletalMesh ReferenceGetMeshGets the base Mesh Asset
VectorGetMovingToGets the Moving To location
Player or nilGetPlayerGets the possessing Player
HideBoneHides a bone of this Character
booleanIsBoneHiddenGets if a bone is hidden
JumpTriggers this Character to jump
MoveToAI: Makes this Character to walk to the Location
RemoveAllSkeletalMeshesAttachedRemoves all SkeletalMeshes attached
RemoveAllStaticMeshesAttachedRemoves all StaticMeshes attached
RemoveSkeletalMeshAttachedRemoves, if it exists, a SkeletalMesh from this entity given its custom ID
RemoveStaticMeshAttachedRemoves, if it exists, a StaticMesh from this enitity given its custom ID
SetBrakingSettingsSets the Movement Braking Settings of this Character
SetCanCrouchSets if this Character is allowed to Crouch and to Prone
SetCanJumpSets if this Character is allowed to Jump
SetCapsuleSizeSets this Character's Capsule size
SetJumpZVelocitySets the velocity of the jump
SetStaticMeshAttachedTransformSets a Static Mesh Attached location and rotation
StopAnimationStops an Animation Montage on this character
StopMovementAI: Stops the movement
UnHideBoneUnHide a bone of this Character
ReturnsNameDescription
ClearMorphTargetsClear all Morph Target that are set to this Mesh
DropDrops any Pickable the Character is holding
EnterVehicleEnters the Vehicle at Seat (0 - Driver)
table of stringGetAllMorphTargetNamesReturns a table with all morph targets available
tableGetBoneTransformGets a Bone Transform in world space given a bone name
CameraModeGetCameraModeGets the camera mode
booleanGetCanAimGets if can aim
booleanGetCanCrouchGets if can crouch
booleanGetCanDropGets if can drop
booleanGetCanGrabPropsGets if can grab props
booleanGetCanPickupPickablesGets if can pickup Pickables (Weapons, Melee, Grenade...)
booleanGetCanPunchGets if can punch
booleanGetCanSprintGets if can sprint
tableGetCapsuleSizeGets the Capsule Size
floatGetDamageMultiplierGets the Damage Multiplier of a bone
integerGetFallDamageTakenGets the Fall Damage
FallingModeGetFallingModeGets the FallingMode
booleanGetFlyingModeGets if it's in Flying mode
GaitModeGetGaitModeGets the GaitMode
Prop or nilGetGrabbedPropGets the Grabbed Prop
floatGetGravityScaleGets the gravity scale
integerGetImpactDamageTakenGets the impact damage taken
integerGetJumpZVelocityGets the Jump Z Velocity
floatGetMorphTargetReturns the value of a Morph Target
Base Pickable or nilGetPickedGets the Pickable if picking up
integerGetPunchDamageGets the punch damage
floatGetSpeedMultiplierGets the speed multiplier
StanceModeGetStanceModeGets the Stance Mode
SwimmingModeGetSwimmingModeGets the Swimming Mode
integerGetTeamGets the Team
Base Vehicle or nilGetVehicleGets the entered Vehicle
integerGetVehicleSeatGets the entered Vehicle seat
ViewModeGetViewModeGets the View Mode
AimModeGetWeaponAimModeGets the Weapon Aim Mode
GrabPropGives a Prop to the Character
booleanIsInputEnabledGets if has input enabled
booleanIsInRagdollModeGets if Character is in ragdoll mode
booleanIsInvulnerableGets if is invulnerable
LeaveVehicleLeaves the current Vehicle
LookAtAI: Tries to make this Character to look at Location
PickUpGives a Melee/Grenade/Weapon (Pickable) to the Character
PlayAnimationPlays an Animation Montage on this character
ResetPhysicalAnimationSettingsResets all Physical Animation settings
SetAccelerationSettingsSets the Movement Max Acceleration of this Character
SetAnimationIdleWalkRunCrouchingSets the Blend Space (2D) Animation for Crouching

Horizontal Axis stands for Speed X and Vertical Axis for Speed Y
SetAnimationIdleWalkRunProningSets the Blend Space (2D) Animation for Proning

Horizontal Axis stands for Speed X and Vertical Axis for Speed Y
SetAnimationIdleWalkRunStandingSets the Blend Space (2D) Animation for Standing
SetAnimationsTransitionCrouchingProningSets the Transition Animation between Crouching and Proning
SetAnimationsTransitionStandingCrouchingSets the Transition Animation between Standing and Crouching
SetCameraModeSets the Camera Mode
SetCameraOffsetSets the Camera Offset (only affects TPS)
SetCanAimSets if this Character is allowed to Aim
SetCanDeployParachuteSets if this Character is allowed to deploy the Parachute
SetCanDiveSets if this Character is allowed to Dive
SetCanDropSets if this Character is allowed to Drop the Picked up item
SetCanGrabPropsSets if this Character is allowed to Grab any Prop
SetCanPickupPickablesSets if this Character is allowed to Pick up any Pickable (Weapon, Grenade, Melee...)
SetCanPunchSets if this Character is allowed to Punch
SetCanSprintSets if this Character is allowed to Sprint
SetDamageMultiplierChanges how much damage this character takes on specific bones
SetDeathSoundChanges the Death sound when Character dies
SetFallDamageTakenSet the Fall Damage multiplier taken when falling from High places
SetFlyingModeSets the Flying Mode
SetFootstepVolumeMultiplierSet the Footstep Volume multiplier
SetFOVMultiplierSets the Field of View multiplier
SetGaitModeSets the Gait Mode
SetGravityScaleChanges the Gravity Scale
SetHighFallingTimeSets time to transition to HighFalling state
SetHitReactionEnabledSets if the character will react to damage by applying small dynamic ragdoll effect to local bones damaged
SetImpactDamageTakenSet the Impact Damage taken when being roamed by things
SetInputEnabledEnables/Disables Character's Input
SetInvulnerableSets if the Character can receive any damage
SetMeshChanges the Character Mesh on the fly
SetMorphTargetSet Morph Target with Name and Value
SetPainSoundChanges the Pain sound when Character takes damage
SetParachuteTextureChanges the Parachute Texture
SetPhysicalAnimationSettingsApplies the physical animation settings to the body given
SetPunchDamageSet the Punch Damage this Character will apply on others
SetRadialDamageToRagdollSet the minimum radial damage (e.g. explosions) taken to enter in ragdoll mode
SetRagdollModeSets Character Ragdoll Mode
SetSimulatePhysicsSets the Character Capsule to simulate physics
SetSpeedMultiplierSets all speed multiplier
SetStanceModeSets the Stance Mode
SetTeamSets a Team which will disable damaging same Team Members
SetViewModeSets the View Mode
SetWeaponAimModeSets the Weapon's Aim Mode
UnGrabPropUnGrabs/Drops the Prop the Character is holding

ClearMorphTargets

Clear all Morph Target that are set to this Mesh

my_character:ClearMorphTargets()

See also SetMorphTarget, GetMorphTarget, GetAllMorphTargetNames.


Drop

Drops any Pickable the Character is holding

my_character:Drop()

See also GetPicked, PickUp.


EnterVehicle

Enters the Vehicle at Seat (0 - Driver)

my_character:EnterVehicle(vehicle, seat?)
TypeParameterDefaultDescription
Base Vehiclevehicle Required parameter No description provided
integerseat?0No description provided

See also GetVehicle, GetVehicleSeat, EnterVehicle, AttemptEnterVehicle.


GetAllMorphTargetNames

Returns a table with all morph targets available

— Returns table of string (table with all morph targets available).

local ret = my_character:GetAllMorphTargetNames()

See also SetMorphTarget, GetMorphTarget, ClearMorphTargets.


GetBoneTransform

Gets a Bone Transform in world space given a bone name

— Returns table (with this format).

local ret = my_character:GetBoneTransform(bone_name)
TypeParameterDefaultDescription
stringbone_name Required parameter No description provided

GetCameraMode

Gets the camera mode

— Returns CameraMode.

local ret = my_character:GetCameraMode()

See also SetCameraMode.


GetCanAim

Gets if can aim

— Returns boolean.

local ret = my_character:GetCanAim()

See also SetCanAim.


GetCanCrouch

Gets if can crouch

— Returns boolean.

local ret = my_character:GetCanCrouch()

GetCanDrop

Gets if can drop

— Returns boolean.

local ret = my_character:GetCanDrop()

See also SetCanDrop.


GetCanGrabProps

Gets if can grab props

— Returns boolean.

local ret = my_character:GetCanGrabProps()

See also SetCanGrabProps.


GetCanPickupPickables

Gets if can pickup Pickables (Weapons, Melee, Grenade...)

— Returns boolean.

local ret = my_character:GetCanPickupPickables()

See also SetCanPickupPickables.


GetCanPunch

Gets if can punch

— Returns boolean.

local ret = my_character:GetCanPunch()

See also SetCanPunch.


GetCanSprint

Gets if can sprint

— Returns boolean.

local ret = my_character:GetCanSprint()

See also SetCanSprint.


GetCapsuleSize

Gets the Capsule Size

— Returns table (with this format).

local ret = my_character:GetCapsuleSize()

GetDamageMultiplier

Gets the Damage Multiplier of a bone

— Returns float (the damage multiplier of the bone).

local ret = my_character:GetDamageMultiplier(bone_name)
TypeParameterDefaultDescription
stringbone_name Required parameter No description provided

See also SetDamageMultiplier.


GetFallDamageTaken

Gets the Fall Damage

— Returns integer.

local ret = my_character:GetFallDamageTaken()

See also SetFallDamageTaken.


GetFallingMode

Gets the FallingMode

— Returns FallingMode.

local ret = my_character:GetFallingMode()

GetFlyingMode

Gets if it's in Flying mode

— Returns boolean.

local ret = my_character:GetFlyingMode()

See also SetFlyingMode.


GetGaitMode

Gets the GaitMode

— Returns GaitMode.

local ret = my_character:GetGaitMode()

See also SetGaitMode.


GetGrabbedProp

Gets the Grabbed Prop

— Returns Prop or nil.

local ret = my_character:GetGrabbedProp()

See also GrabProp, UnGrabProp.


GetGravityScale

Gets the gravity scale

— Returns float.

local ret = my_character:GetGravityScale()

See also SetGravityScale.


GetImpactDamageTaken

Gets the impact damage taken

— Returns integer.

local ret = my_character:GetImpactDamageTaken()

See also SetImpactDamageTaken.


GetJumpZVelocity

Gets the Jump Z Velocity

— Returns integer.

local ret = my_character:GetJumpZVelocity()

GetMorphTarget

Returns the value of a Morph Target

— Returns float (value of the Morph Target).

local ret = my_character:GetMorphTarget(name)
TypeParameterDefaultDescription
stringname Required parameter Morph Target Name

See also SetMorphTarget, ClearMorphTargets, GetAllMorphTargetNames.


GetPicked

Gets the Pickable if picking up

— Returns Base Pickable or nil.

local ret = my_character:GetPicked()

See also PickUp, Drop.


GetPunchDamage

Gets the punch damage

— Returns integer.

local ret = my_character:GetPunchDamage()

See also SetPunchDamage.


GetSpeedMultiplier

Gets the speed multiplier

— Returns float.

local ret = my_character:GetSpeedMultiplier()

See also SetSpeedMultiplier.


GetStanceMode

Gets the Stance Mode

— Returns StanceMode.

local ret = my_character:GetStanceMode()

See also SetStanceMode.


GetSwimmingMode

Gets the Swimming Mode

— Returns SwimmingMode.

local ret = my_character:GetSwimmingMode()

GetTeam

Gets the Team

— Returns integer.

local ret = my_character:GetTeam()

See also SetTeam.


GetVehicle

Gets the entered Vehicle

— Returns Base Vehicle or nil.

local ret = my_character:GetVehicle()

See also EnterVehicle, LeaveVehicle.


GetVehicleSeat

Gets the entered Vehicle seat

— Returns integer.

local ret = my_character:GetVehicleSeat()

GetViewMode

Gets the View Mode

— Returns ViewMode.

local ret = my_character:GetViewMode()

See also SetViewMode.


GetWeaponAimMode

Gets the Weapon Aim Mode

— Returns AimMode.

local ret = my_character:GetWeaponAimMode()

See also SetWeaponAimMode.


GrabProp

Gives a Prop to the Character

my_character:GrabProp(prop)
TypeParameterDefaultDescription
Propprop Required parameter No description provided

See also GetGrabbedProp.


IsInputEnabled

Gets if has input enabled

— Returns boolean.

local ret = my_character:IsInputEnabled()

See also SetInputEnabled.


IsInRagdollMode

Gets if Character is in ragdoll mode

— Returns boolean.

local ret = my_character:IsInRagdollMode()

IsInvulnerable

Gets if is invulnerable

— Returns boolean.

local ret = my_character:IsInvulnerable()

See also SetInvulnerable.


LeaveVehicle

Leaves the current Vehicle

my_character:LeaveVehicle()

See also EnterVehicle, GetVehicle, LeaveVehicle, AttemptLeaveVehicle.


LookAt

AI: Tries to make this Character to look at Location

my_character:LookAt(location)
TypeParameterDefaultDescription
Vectorlocation Required parameter World location to look

PickUp

Gives a Melee/Grenade/Weapon (Pickable) to the Character

my_character:PickUp(pickable)
TypeParameterDefaultDescription
Base Pickablepickable Required parameter No description provided

See also Drop, GetPicked.


PlayAnimation

Plays an Animation Montage on this character

my_character:PlayAnimation(animation_path, slot_type?, loop_indefinitely?, blend_in_time?, blend_out_time?, play_rate?, stop_all_montages?)
TypeParameterDefaultDescription
Animation Referenceanimation_path Required parameter No description provided
AnimationSlotTypeslot_type?AnimationSlotType.FullBodyNo description provided
booleanloop_indefinitely?falseNo description provided
floatblend_in_time?0.25No description provided
floatblend_out_time?0.25No description provided
floatplay_rate?1.0No description provided
booleanstop_all_montages?falseStops all running Montages from the same Group

See also StopAnimation.


ResetPhysicalAnimationSettings

Resets all Physical Animation settings

my_character:ResetPhysicalAnimationSettings()

SetAccelerationSettings

Sets the Movement Max Acceleration of this Character

my_character:SetAccelerationSettings(walking?, parachuting?, skydiving?, falling?, swimming?, swimming_surface?, flying?)
TypeParameterDefaultDescription
integerwalking?768No description provided
integerparachuting?512No description provided
integerskydiving?768No description provided
integerfalling?128No description provided
integerswimming?256No description provided
integerswimming_surface?256No description provided
integerflying?1024No description provided

SetAnimationIdleWalkRunCrouching

Sets the Blend Space (2D) Animation for Crouching

Horizontal Axis stands for Speed X and Vertical Axis for Speed Y

my_character:SetAnimationIdleWalkRunCrouching(blend_space_path, enable_turn_in_place?)
TypeParameterDefaultDescription
Animation Referenceblend_space_path Required parameter No description provided
booleanenable_turn_in_place?falseNo description provided

SetAnimationIdleWalkRunProning

Sets the Blend Space (2D) Animation for Proning

Horizontal Axis stands for Speed X and Vertical Axis for Speed Y

my_character:SetAnimationIdleWalkRunProning(blend_space_path)
TypeParameterDefaultDescription
Animation Referenceblend_space_path Required parameter No description provided

SetAnimationIdleWalkRunStanding

Sets the Blend Space (2D) Animation for Standing

Horizontal Axis stands for Speed X and Vertical Axis for Speed Y

my_character:SetAnimationIdleWalkRunStanding(blend_space_path, enable_turn_in_place?)
TypeParameterDefaultDescription
Animation Referenceblend_space_path Required parameter No description provided
booleanenable_turn_in_place?falseNo description provided

SetAnimationsTransitionCrouchingProning

Sets the Transition Animation between Crouching and Proning

my_character:SetAnimationsTransitionCrouchingProning(crouching_to_proning, pronng_to_crouching)
TypeParameterDefaultDescription
Animation Referencecrouching_to_proning Required parameter No description provided
Animation Referencepronng_to_crouching Required parameter No description provided

SetAnimationsTransitionStandingCrouching

Sets the Transition Animation between Standing and Crouching

my_character:SetAnimationsTransitionStandingCrouching(standing_to_crouching, crouching_to_standing)
TypeParameterDefaultDescription
Animation Referencestanding_to_crouching Required parameter No description provided
Animation Referencecrouching_to_standing Required parameter No description provided

SetCameraMode

Sets the Camera Mode (i.e. Only TPS, FPS or if allow both)

Using FPSOnly CameraMode on AI will lock his body rotation (when using LookAt)

my_character:SetCameraMode(camera_mode)
TypeParameterDefaultDescription
CameraModecamera_mode Required parameter No description provided

See also GetCameraMode.


SetCameraOffset

Sets the Camera Offset (only affects TPS)

my_character:SetCameraOffset(camera_offset)
TypeParameterDefaultDescription
Vectorcamera_offset Required parameter No description provided

SetCanAim

Sets if this Character is allowed to Aim

my_character:SetCanAim(can_aim)
TypeParameterDefaultDescription
booleancan_aim Required parameter No description provided

See also GetCanAim.


SetCanDeployParachute

Sets if this Character is allowed to deploy the Parachute

my_character:SetCanDeployParachute(can_deploy_parachute)
TypeParameterDefaultDescription
booleancan_deploy_parachute Required parameter No description provided

SetCanDive

Sets if this Character is allowed to Dive

my_character:SetCanDive(can_dive)
TypeParameterDefaultDescription
booleancan_dive Required parameter No description provided

SetCanDrop

Sets if this Character is allowed to Drop the Picked up item

my_character:SetCanDrop(can_drop)
TypeParameterDefaultDescription
booleancan_drop Required parameter No description provided

See also GetCanDrop.


SetCanGrabProps

Sets if this Character is allowed to Grab any Prop

my_character:SetCanGrabProps(can_grab_props)
TypeParameterDefaultDescription
booleancan_grab_props Required parameter No description provided

See also GetCanGrabProps.


SetCanPickupPickables

Sets if this Character is allowed to Pick up any Pickable (Weapon, Grenade, Melee...)

my_character:SetCanPickupPickables(can_pickup)
TypeParameterDefaultDescription
booleancan_pickup Required parameter No description provided

See also GetCanPickupPickables.


SetCanPunch

Sets if this Character is allowed to Punch

my_character:SetCanPunch(can_punch)
TypeParameterDefaultDescription
booleancan_punch Required parameter No description provided

See also GetCanPunch.


SetCanSprint

Sets if this Character is allowed to Sprint

my_character:SetCanSprint(can_sprint)
TypeParameterDefaultDescription
booleancan_sprint Required parameter No description provided

See also GetCanSprint.


SetDamageMultiplier

Changes how much damage this character takes on specific bones

my_character:SetDamageMultiplier(bone_name, multiplier)
TypeParameterDefaultDescription
stringbone_name Required parameter No description provided
floatmultiplier Required parameter No description provided

See also GetDamageMultiplier.


SetDeathSound

Changes the Death sound when Character dies

my_character:SetDeathSound(sound_asset)
TypeParameterDefaultDescription
stringsound_asset Required parameter No description provided

SetFallDamageTaken

Set the Fall Damage multiplier taken when falling from High places.

Setting to 0 will make the Character to do not take any damage

my_character:SetFallDamageTaken(damage)
TypeParameterDefaultDescription
integerdamage Required parameter Default is 10

See also GetFallDamageTaken.


SetFlyingMode

Sets the Flying Mode

my_character:SetFlyingMode(flying_mode)
TypeParameterDefaultDescription
booleanflying_mode Required parameter No description provided

See also GetFlyingMode.


SetFootstepVolumeMultiplier

Set the Footstep Volume multiplier

my_character:SetFootstepVolumeMultiplier(volume_multiplier)
TypeParameterDefaultDescription
floatvolume_multiplier Required parameter No description provided

SetFOVMultiplier

Sets the Field of View multiplier

my_character:SetFOVMultiplier(multiplier)
TypeParameterDefaultDescription
floatmultiplier Required parameter No description provided

SetGaitMode

Sets the Gait Mode

my_character:SetGaitMode(gait_mode)
TypeParameterDefaultDescription
GaitModegait_mode Required parameter No description provided

See also GetGaitMode.


SetGravityScale

Changes the Gravity Scale of this Character (can be negative)

my_character:SetGravityScale(gravity_scale)
TypeParameterDefaultDescription
floatgravity_scale Required parameter No description provided

See also GetGravityScale.


SetHighFallingTime

Sets time elapsed until automatically transition to HighFalling state (from SmallFalling) in seconds

Set it to -1 to never enter HighFalling time and consequently do not ragdoll when falling

my_character:SetHighFallingTime(time)
TypeParameterDefaultDescription
floattime Required parameter Default is 1 second

SetHitReactionEnabled

Sets if the character will react to damage by applying small dynamic ragdoll effect to local bones damaged

my_character:SetHitReactionEnabled(is_enabled)
TypeParameterDefaultDescription
booleanis_enabled Required parameter No description provided

SetImpactDamageTaken

Set the Impact Damage taken when being roamed by things.

Setting to 0 will make the Character to do not take damage or enter ragdoll mode

my_character:SetImpactDamageTaken(impact_damage)
TypeParameterDefaultDescription
integerimpact_damage Required parameter Default is 10

See also GetImpactDamageTaken.


SetInputEnabled

Enables/Disables Character's Input

my_character:SetInputEnabled(is_enabled)
TypeParameterDefaultDescription
booleanis_enabled Required parameter No description provided

See also IsInputEnabled.


SetInvulnerable

Sets if the Character can receive any damage

my_character:SetInvulnerable(is_invulnerable)
TypeParameterDefaultDescription
booleanis_invulnerable Required parameter No description provided

See also IsInvulnerable.


SetMesh

Changes the Character Mesh on the fly

my_character:SetMesh(skeletal_mesh_asset)
TypeParameterDefaultDescription
SkeletalMesh Referenceskeletal_mesh_asset Required parameter No description provided

SetMorphTarget

Set Morph Target with Name and Value

my_character:SetMorphTarget(name, value)
TypeParameterDefaultDescription
stringname Required parameter Morph Target Name
floatvalue Required parameter No description provided

See also GetMorphTarget, ClearMorphTargets, GetAllMorphTargetNames.


SetPainSound

Changes the Pain sound when Character takes damage

my_character:SetPainSound(sound_asset)
TypeParameterDefaultDescription
Sound Referencesound_asset Required parameter No description provided

SetParachuteTexture

Changes the Parachute Texture

my_character:SetParachuteTexture(texture)
TypeParameterDefaultDescription
Image Pathtexture Required parameter No description provided

SetPhysicalAnimationSettings

Applies the physical animation settings to the body given

my_character:SetPhysicalAnimationSettings(bone, include_self, is_local_simulation, orientation_strength?, angular_velocity_strength?, position_strength?, velocity_strength?, max_linear_force?, max_angular_force?)
TypeParameterDefaultDescription
stringbone Required parameter The body we will be driving
booleaninclude_self Required parameter Whether to modify the given body
booleanis_local_simulation Required parameter Whether the drive targets are in world space or local
floatorientation_strength?0The strength used to correct orientation error
floatangular_velocity_strength?0The strength used to correct angular velocity error
floatposition_strength?0The strength used to correct linear position error. Only used for non-local simulation
floatvelocity_strength?0The strength used to correct linear velocity error. Only used for non-local simulation
floatmax_linear_force?0The max force used to correct linear errors
floatmax_angular_force?0The max force used to correct angular errors

SetPunchDamage

Set the Punch Damage this Character will apply on others

my_character:SetPunchDamage(punch_damage)
TypeParameterDefaultDescription
integerpunch_damage Required parameter Default is 15

See also GetPunchDamage.


SetRadialDamageToRagdoll

Set the minimum radial damage taken (e.g. explosions) to enter in ragdoll mode.

Setting to -1 will make the Character to do not enter ragdoll mode when getting radial damage

my_character:SetRadialDamageToRagdoll(damage)
TypeParameterDefaultDescription
integerdamage Required parameter Default is 50

SetRagdollMode

Sets Character Ragdoll Mode

my_character:SetRagdollMode(ragdoll_enabled)
TypeParameterDefaultDescription
booleanragdoll_enabled Required parameter No description provided

SetSimulatePhysics

Sets the Character Capsule to simulate physics

my_character:SetSimulatePhysics(simulate_physics)
TypeParameterDefaultDescription
booleansimulate_physics Required parameter No description provided

SetSpeedMultiplier

Sets all speed multiplier

my_character:SetSpeedMultiplier(speed_multiplier)
TypeParameterDefaultDescription
floatspeed_multiplier Required parameter 1 is normal

See also GetSpeedMultiplier.


SetStanceMode

Sets the Stance Mode

my_character:SetStanceMode(stance_mode)
TypeParameterDefaultDescription
StanceModestance_mode Required parameter No description provided

See also GetStanceMode.


SetTeam

Sets a Team which will disable damaging same Team Members

my_character:SetTeam(team)
TypeParameterDefaultDescription
integerteam Required parameter 0 is neutral and default

See also GetTeam.


SetViewMode

Sets the View Mode

my_character:SetViewMode(view_mode)
TypeParameterDefaultDescription
ViewModeview_mode Required parameter No description provided

See also GetViewMode.


SetWeaponAimMode

Sets the Weapon's Aim Mode

my_character:SetWeaponAimMode(aim_mode)
TypeParameterDefaultDescription
AimModeaim_mode Required parameter No description provided

See also GetWeaponAimMode.


UnGrabProp

UnGrabs/Drops the Prop the Character is holding

my_character:UnGrabProp()

🚀 Events

Inherited Entity Events
Character inherits from Base Entity Class, sharing it's events:
Base Entityscripting-reference/classes/base-classes/Entity
NameDescription
ClassRegisterTriggered when a new Class is registered with the Inheriting System
DestroyTriggered when an Entity is destroyed
SpawnTriggered when an Entity is spawned/created
ValueChangeTriggered when an Entity has a value changed with :SetValue()
Inherited Actor Events
Character inherits from Base Actor Class, sharing it's events:
Base Actorscripting-reference/classes/base-classes/Actor
NameDescription
DimensionChangeTriggered when an Actor changes it's dimension
Inherited Damageable Events
Character inherits from Base Damageable Class, sharing it's events:
Base Damageablescripting-reference/classes/base-classes/Damageable
NameDescription
DeathWhen Entity Dies
HealthChangeWhen Entity has it's Health changed, or because took damage or manually set through scripting or respawning
RespawnWhen Entity Respawns
TakeDamageTriggered when this Entity takes damage
Inherited Pawn Events
Character inherits from Base Pawn Class, sharing it's events:
Base Pawnscripting-reference/classes/base-classes/Pawn
NameDescription
MoveCompleteCalled when AI reaches it's destination, or when it fails
PossessWhen Character is possessed
UnPossessWhen Character is unpossessed
NameDescription
AnimationBeginNotifyWhen an Animation Montage Notify begins
AnimationEndNotifyWhen an Animation Montage Notify ends
AttackTriggered when the Character effectively attacks with a Melee
AttemptEnterVehicleTriggered when a Character attempts to enter a vehicle
AttemptLeaveVehicleTriggered when this Character attempts to leave a vehicle
AttemptReloadTriggered when this Character attempts to reload
DropWhen Character drops the currently picked up Pickable
EnterVehicleWhen Character enters a vehicle
FallingModeChangeCalled when FallingMode changes
FireWhen Character fires a Weapon
GaitModeChangeCalled when GaitMode changes
GrabPropWhen Character grabs up a Prop
HighlightWhen Character highlights/looks at a Prop or a Pickable
InteractTriggered when a Character interacts with a Prop or Pickable
LeaveVehicleWhen Character leaves a vehicle
PickUpWhen Character picks up anything
PullUseTriggered when a Character presses the use button for a Pickable (i.e. clicks left mouse button with this equipped)
PunchWhen Character punches
RagdollModeChangeWhen Character enters or leaves ragdoll
ReleaseUseTriggered when a Character releases the use button for a Pickable (i.e. releases left mouse button with this equipped)
ReloadWhen Character reloads a weapon
StanceModeChangeCalled when StanceMode changes
SwimmingModeChangeCalled when Swimming Mode changes
UnGrabPropWhen Character drops a Prop
ViewModeChangeWhen Character changes it's View Mode
WeaponAimModeChangeCalled when Weapon Aim Mode changes

AnimationBeginNotify

When an Animation Montage Notify begins
Character.Subscribe("AnimationBeginNotify", function(self, notify_name)
-- AnimationBeginNotify was called
end)
TypeArgumentDescription
CharacterselfNo description provided
stringnotify_nameNo description provided

AnimationEndNotify

When an Animation Montage Notify ends
Character.Subscribe("AnimationEndNotify", function(self, notify_name)
-- AnimationEndNotify was called
end)
TypeArgumentDescription
CharacterselfNo description provided
stringnotify_nameNo description provided

Attack

Triggered when the Character effectively attacks with a Melee
Character.Subscribe("Attack", function(self, melee)
-- Attack was called
end)
TypeArgumentDescription
CharacterselfNo description provided
MeleemeleeNo description provided

AttemptEnterVehicle

Triggered when a Character attempts to enter a vehicle

Return false to prevent it
Character.Subscribe("AttemptEnterVehicle", function(self, vehicle, seat_index)
-- AttemptEnterVehicle was called
end)
TypeArgumentDescription
CharacterselfNo description provided
Base VehiclevehicleNo description provided
integerseat_indexNo description provided

See also GetVehicle, EnterVehicle, EnterVehicle.


AttemptLeaveVehicle

Triggered when this Character attempts to leave a vehicle

Return false to prevent it
Character.Subscribe("AttemptLeaveVehicle", function(self, vehicle)
-- AttemptLeaveVehicle was called
end)
TypeArgumentDescription
CharacterselfNo description provided
Base VehiclevehicleNo description provided

See also LeaveVehicle, LeaveVehicle.


AttemptReload

Triggered when this Character attempts to reload

Return false to prevent it
Character.Subscribe("AttemptReload", function(self, weapon)
-- AttemptReload was called
end)
TypeArgumentDescription
CharacterselfNo description provided
WeaponweaponNo description provided

Drop

When Character drops the currently picked up Pickable
Character.Subscribe("Drop", function(self, object, triggered_by_player)
-- Drop was called
end)
TypeArgumentDescription
CharacterselfNo description provided
Base PickableobjectNo description provided
booleantriggered_by_playerNo description provided

EnterVehicle

When Character enters a vehicle
Character.Subscribe("EnterVehicle", function(self, vehicle, seat_index)
-- EnterVehicle was called
end)
TypeArgumentDescription
CharacterselfNo description provided
Base VehiclevehicleNo description provided
integerseat_indexNo description provided

See also GetVehicle, EnterVehicle, AttemptEnterVehicle.


FallingModeChange

Called when FallingMode changes
Character.Subscribe("FallingModeChange", function(self, old_state, new_state)
-- FallingModeChange was called
end)
TypeArgumentDescription
CharacterselfNo description provided
FallingModeold_stateNo description provided
FallingModenew_stateNo description provided

Fire

When Character fires a Weapon
Character.Subscribe("Fire", function(self, weapon)
-- Fire was called
end)
TypeArgumentDescription
CharacterselfNo description provided
WeaponweaponNo description provided

GaitModeChange

Called when GaitMode changes
Character.Subscribe("GaitModeChange", function(self, old_state, new_state)
-- GaitModeChange was called
end)
TypeArgumentDescription
CharacterselfNo description provided
GaitModeold_stateNo description provided
GaitModenew_stateNo description provided

GrabProp

When Character grabs up a Prop
Character.Subscribe("GrabProp", function(self, prop)
-- GrabProp was called
end)
TypeArgumentDescription
CharacterselfNo description provided
ProppropNo description provided

Highlight

When Character highlights/looks at a Prop or a Pickable
Character.Subscribe("Highlight", function(self, is_highlighted, object)
-- Highlight was called
end)
TypeArgumentDescription
CharacterselfNo description provided
booleanis_highlightedWhether the object is being highlighted or not
Prop or Base PickableobjectNo description provided

Interact

Triggered when a Character interacts with a Prop or Pickable

Return false to prevent it
Character.Subscribe("Interact", function(self, object)
-- Interact was called
end)
TypeArgumentDescription
CharacterselfNo description provided
Prop or Base PickableobjectNo description provided

LeaveVehicle

When Character leaves a vehicle
Character.Subscribe("LeaveVehicle", function(self, vehicle)
-- LeaveVehicle was called
end)
TypeArgumentDescription
CharacterselfNo description provided
Base VehiclevehicleNo description provided

See also LeaveVehicle, AttemptLeaveVehicle.


PickUp

When Character picks up anything
Character.Subscribe("PickUp", function(self, object)
-- PickUp was called
end)
TypeArgumentDescription
CharacterselfNo description provided
Base PickableobjectNo description provided

See also GetPicked.


PullUse

Triggered when a Character presses the use button for a Pickable (i.e. clicks left mouse button with this equipped)
Character.Subscribe("PullUse", function(self, pickable)
-- PullUse was called
end)
TypeArgumentDescription
CharacterselfThe Character that used it
Base PickablepickableThe Pickable which has just been used

Punch

When Character punches
Character.Subscribe("Punch", function(self)
-- Punch was called
end)
TypeArgumentDescription
CharacterselfNo description provided

RagdollModeChange

When Character enters or leaves ragdoll
Character.Subscribe("RagdollModeChange", function(self, old_state, new_state)
-- RagdollModeChange was called
end)
TypeArgumentDescription
CharacterselfNo description provided
booleanold_stateNo description provided
booleannew_stateNo description provided

ReleaseUse

Triggered when a Character releases the use button for a Pickable (i.e. releases left mouse button with this equipped)
Character.Subscribe("ReleaseUse", function(self, pickable)
-- ReleaseUse was called
end)
TypeArgumentDescription
CharacterselfThe Character that stopped using it
Base PickablepickableThe Pickable which has just stopped being used

Reload

When Character reloads a weapon
Character.Subscribe("Reload", function(self, weapon, ammo_to_reload)
-- Reload was called
end)
TypeArgumentDescription
CharacterselfNo description provided
WeaponweaponNo description provided
integerammo_to_reloadNo description provided

StanceModeChange

Called when StanceMode changes
Character.Subscribe("StanceModeChange", function(self, old_state, new_state)
-- StanceModeChange was called
end)
TypeArgumentDescription
CharacterselfNo description provided
StanceModeold_stateNo description provided
StanceModenew_stateNo description provided

SwimmingModeChange

Called when Swimming Mode changes
Character.Subscribe("SwimmingModeChange", function(self, old_state, new_state)
-- SwimmingModeChange was called
end)
TypeArgumentDescription
CharacterselfNo description provided
SwimmingModeold_stateNo description provided
SwimmingModenew_stateNo description provided

UnGrabProp

When Character drops a Prop
Character.Subscribe("UnGrabProp", function(self, prop)
-- UnGrabProp was called
end)
TypeArgumentDescription
CharacterselfNo description provided
ProppropNo description provided

ViewModeChange

When Character changes it's View Mode
Character.Subscribe("ViewModeChange", function(self, old_state, new_state)
-- ViewModeChange was called
end)
TypeArgumentDescription
CharacterselfNo description provided
ViewModeold_stateNo description provided
ViewModenew_stateNo description provided

WeaponAimModeChange

Called when Weapon Aim Mode changes
Character.Subscribe("WeaponAimModeChange", function(self, old_state, new_state)
-- WeaponAimModeChange was called
end)
TypeArgumentDescription
CharacterselfNo description provided
AimModeold_stateNo description provided
AimModenew_stateNo description provided

Male & Female Customization

The following items can be used to customize Male & Female (nanos-world::SK_Male & nanos-world::SK_Female) default meshes from nanos world.

Morph TargetsMat. Scalar ParamsMat. Color ParamsMat. Texture Params
nose1BaseColorPowerLipstickTintTexture
nose2MuscularBrowsTintLipstickMask
browsSpecularBlushTintBrowsMask
mouthRoughnessEyeShadowTintBlushMask
fatScatterUnderwearTintEyeShadowMask
nose3DetailAmountHairTintNormal
chinDetailScaleTintNormalMuscular
faceUnderwearRoughnessUnderwearMask
nose4UnderwearSpecularSR
skinnyHairScatterHairTexture
jawHairAlphaPowerHairSpecular
brows2HairSpecularMultiplierHairRoughness
angryHairRoughnessMultiplierHairTangent
smirkHairPixelDepth
smirk2
smirk3
smile
nose6
jaw_forward
lips
lips2
mouth_wide
eyes1
eyes2
eyes3
eyes4
eyes_retraction
lips3
eyes5
nose7
forehead
bodyfat

Character's Skeleton Bone Names

info

Ugly list I know.

  • root
    • pelvis
      • spine_01
        • spine_02
          • spine_03
            • clavicle_l
              • upperarm_l
                • lowerarm_l
                  • hand_l
                    • index_01_l
                      • index_02_l
                        • index_03_l
                    • middle_01_l
                      • middle_02_l
                        • middle_03_l
                    • pinky_01_l
                      • pinky_02_l
                        • pinky_03_l
                    • ring_01_l
                      • ring_02_l
                        • ring_03_l
                    • thumb_01_l
                      • thumb_02_l
                        • thumb_03_l
                    • weapon_l
            • clavicle_r
              • upperarm_r
                • lowerarm_r
                  • hand_r
                    • index_01_r
                      • index_02_r
                        • index_03_r
                    • middle_01_r
                      • middle_02_r
                        • middle_03_r
                    • pinky_01_r
                      • pinky_02_r
                        • pinky_03_r
                    • ring_01_r
                      • ring_02_r
                        • ring_03_r
                    • thumb_01_r
                      • thumb_02_r
                        • thumb_03_r
                    • weapon_r
            • neck_01
              • head
                • lefteye
                • righteye
                • leftlidup
                • leftlidlow
                • rightlidup
                • rightlitlow
      • thigh_l
        • calf_l
          • foot_l
            • ball_l
      • thigh_r
        • calf_r
          • foot_r
            • ball_r