Skip to main content
Version: bleeding-edge 🩸

πŸ§‘ Character

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.
πŸ‘ͺInheritance
This class shares methods and events from Base Entity Base Actor Base Paintable .

Characters are Skeletal Meshes using Unreal's Mannequin Skeletal, with animations and interactivity already natively integrated into nanos world. It is possible to import any Skeletal Mesh (which uses Unreal's Mannequin Skeletal) to this Character.

πŸŽ’Β 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")

More related examples:

Play as Propgetting-started/tutorials-and-examples/play-as-propNametagsgetting-started/tutorials-and-examples/name-tagsCharacter Meshes Guideassets-modding/creating-assets/skeletal-meshes/characters-meshes

πŸ› Β Constructors​

Default Constructor​

local my_character = Character(location, rotation, skeletal_mesh, collision_type?, gravity_enabled?, max_health?, death_sound?, pain_sound?)
TypeNameDefaultDescription
Vector location
Rotator rotation
SkeletalMesh Reference skeletal_mesh
CollisionTypecollision_typeCollisionType.Normal
boolean gravity_enabledtrue
integer max_health100Current / Max Health
Sound Reference death_soundnanos-world::A_Male_01_DeathPlayed when Character dies
Sound Reference pain_soundnanos-world::A_Male_01_PainPlayed when Character takes damage

πŸ—ΏΒ Static Functions​

Inherited Entity Static Functions
Base Entityscripting-reference/classes/base-classes/entity
ReturnsNameDescription
table of Base Entity GetAllReturns a table containing all Entities of the class this is called on
Base Entity GetByIndexReturns a specific Entity of this class at an index
integer GetCountReturns how many Entities of this class exist
iterator GetPairsReturns an iterator with all Entities of this class to be used with pairs()
table InheritInherits this class with the Inheriting System
table of table GetInheritedClassesGets a list of all directly inherited classes from this Class created with the Inheriting System
table or nilGetParentClassGets the parent class if this Class was created with the Inheriting System
boolean IsChildOfGets if this Class is child of another class if this Class was created with the Inheriting System
function SubscribeSubscribes to an Event for all entities of this Class
function SubscribeRemoteSubscribes 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 entity doesn't have own static functions.

🦠 Functions​

Inherited Entity Functions
Base Entityscripting-reference/classes/base-classes/Entity
ReturnsNameDescription
integer GetIDGets the universal network ID of this Entity (same on both client and server)
table GetClassGets the class of this entity
boolean IsARecursively checks if this entity is inherited from a Class
function SubscribeSubscribes to an Event on this specific entity
function SubscribeRemoteSubscribes 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
SetValueSets a Value in this Entity
any GetValueGets a Value stored on this Entity at the given key
DestroyDestroys this Entity
boolean IsValidReturns true if this Entity is valid (i.e. wasn't destroyed and points to a valid Entity)
CallRemoteEventCalls a custom remote event directly on this entity to a specific Player
CallRemoteEventCalls a custom remote event directly on this entity
BroadcastRemoteEventCalls a custom remote event directly on this entity to all Players
Inherited Actor Functions
Base Actorscripting-reference/classes/base-classes/actor
ReturnsNameDescription
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
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
SetVisibilitySets whether the actor is visible or not
SetHighlightEnabledSets whether the highlight is enabled on this Actor, and which highlight index to use
SetOutlineEnabledSets whether the outline is enabled on this Actor, and which outline 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
SetRotationSets this Actor's rotation in the game world
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)
SetScaleSets this Actor's scale
SetNetworkAuthoritySets the Player to have network authority over this Actor
SetNetworkAuthorityAutoDistributedSets if this Actor will auto distribute the network authority betwen players
TranslateToSmoothly moves this actor to a location over a certain time
RotateToSmoothly rotates this actor to an angle over a certain time
boolean IsBeingDestroyedReturns true if this Actor is being destroyed
boolean IsVisibleReturns true if this Actor is visible
boolean IsGravityEnabledReturns true if gravity is enabled on this Actor
boolean IsInWaterReturns true if this Actor is in water
boolean IsNetworkDistributedReturns true if this Actor is currently network distributed
table of Base Actor GetAttachedEntitiesGets all Actors attached to this Actor
Base Actor or nilGetAttachedToGets the Actor this Actor is attached to
table GetBoundsGets this Actor's bounds
CollisionTypeGetCollisionGets this Actor's collision type
Vector GetLocationGets this Actor's location in the game world
Vector GetRelativeLocationGets this Actor's Relative Location if it's attached
Player or nilGetNetworkAuthorityGets this Actor's Network Authority Player
Rotator GetRotationGets this Actor's angle in the game world
Rotator GetRelativeRotationGets this Actor's Relative Rotation if it's attached
Vector GetForceGets this Actor's force (set by SetForce())
integer GetDimensionGets this Actor's dimension
boolean HasNetworkAuthorityReturns true if the local Player is currently the Network Authority of this Actor
boolean HasAuthorityGets if this Actor was spawned by the client side
Vector GetScaleGets this Actor's scale
Vector GetVelocityGets this Actor's current velocity
AddActorTagAdds an Unreal Actor Tag to this Actor
RemoveActorTagRemoves an Unreal Actor Tag from this Actor
table of string GetActorTagsGets all Unreal Actor Tags on this Actor
boolean WasRecentlyRenderedGets if this Actor was recently rendered on screen
float GetDistanceFromCameraGets the distance of this Actor from the Camera
float GetScreenPercentageGets the percentage of this Actor size in the screen
Inherited Paintable Functions
Base Paintablescripting-reference/classes/base-classes/paintable
ReturnsNameDescription
SetMaterialSets the material at the specified index of this Actor
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
ResetMaterialResets the material from the specified index to the original one
SetMaterialColorParameterSets a Color parameter in this Actor's material
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
ReturnsNameDescription
integer ApplyDamageDo damage to a character
AddSkeletalMeshAttachedSpawns and Attaches a SkeletalMesh into this Character
AddStaticMeshAttachedSpawns and Attaches a StaticMesh into this Character
DropDrops any Pickable the Character is holding
EnterVehicleEnters the Vehicle at Seat (0 - Driver)
GrabPropGives a Prop to the Character
HideBoneHides a bone of this Character
UnHideBoneUnHide a bone of this Character
boolean IsBoneHiddenGets if a bone is hidden
JumpTriggers this Character to jump
LeaveVehicleLeaves the current Vehicle
LookAtAI: Tries to make this Character to look at Location
MoveToAI: Makes this Character to walk to the Location
FollowAI: Makes this Character to follow another actor
StopMovementAI: Stops the movement
PickUpGives a Melee/Grenade/Weapon (Pickable) to the Character
PlayAnimationPlays an Animation Montage on this character
StopAnimationStops an Animation Montage on this character
RemoveSkeletalMeshAttachedRemoves, if existing, a SkeletalMesh from this Character given it's custom ID
RemoveStaticMeshAttachedRemoves, if existing, a StaticMesh from this Character given it's custom ID
RemoveAllStaticMeshesAttachedRemoves all StaticMeshes attached
RemoveAllSkeletalMeshesAttachedRemoves all SkeletalMeshes attached
RespawnRespawns the Character, fullying it's Health and moving it to it's Initial Location
SetAnimationIdleWalkRunStandingSets the Blend Space (2D) Animation for Standing
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
SetAnimationsTransitionStandingCrouchingSets the Transition Animation between Standing and Crouching
SetAnimationsTransitionCrouchingProningSets the Transition Animation between Crouching and Proning
SetAccelerationSettingsSets the Movement Max Acceleration of this Character
SetBrakingSettingsSets the Movement Braking Settings of this Character
SetCameraModeSets the Camera Mode
SetCameraOffsetSets the Camera Offset (only affects TPS)
SetCanCrouchSets if this Character is allowed to Crouch and to Prone
SetCanAimSets if this Character is allowed to Aim
SetCanDropSets if this Character is allowed to Drop the Picked up item
SetCanJumpSets if this Character is allowed to Jump
SetCanDiveSets if this Character is allowed to Dive
SetCanSprintSets if this Character is allowed to Sprint
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
SetCanDeployParachuteSets if this Character is allowed to deploy the Parachute
SetCapsuleSizeSets this Character's Capsule size
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
SetFOVMultiplierSets the Field of View multiplier
SetHighFallingTimeSets time to transition to HighFalling state
SetGaitModeSets the Gait Mode
SetGravityScaleChanges the Gravity Scale
SetHealthSets the Health of this Character
SetImpactDamageTakenSet the Impact Damage taken when being roamed by things
SetInvulnerableSets if the Character can receive any damage
SetJumpZVelocitySets the velocity of the jump
SetMaxHealthSets the MaxHealth of this Character
SetMeshChanges the Character Mesh on the fly
SetMorphTargetSet Morph Target with Name and Value
float GetMorphTargetReturns the value of a Morph Target
ClearMorphTargetsClear all Morph Target that are set to this Mesh
table of string GetAllMorphTargetNamesReturns a table with all morph targets available
SetPhysicalAnimationSettingsApplies the physical animation settings to the body given
ResetPhysicalAnimationSettingsResets all Physical Animation settings
SetInputEnabledEnables/Disables Character's Input
SetParachuteTextureChanges the Parachute Texture
SetPainSoundChanges the Pain sound when Character takes damage
SetPunchDamageSet the Punch Damage this Character will apply on others
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
boolean IsInRagdollModeGets if Character is in ragdoll mode
boolean IsInvulnerableGets if is invulnerable
boolean IsMovementEnabledGets if has movement enabled
CameraModeGetCameraModeGets the camera mode
boolean GetCanDropGets if can drop
boolean GetCanPunchGets if can punch
boolean GetCanAimGets if can aim
boolean GetCanCrouchGets if can crouch
boolean GetCanSprintGets if can sprint
boolean GetCanGrabPropsGets if can grab props
boolean GetCanPickupPickablesGets if can pickup Pickables (Weapons, Melee, Grenade...)
table GetCapsuleSizeGets the Capsule Size
table GetBoneTransformGets a Bone Transform in world space given a bone name
Rotator GetControlRotationGets the Control Rotation
float GetDamageMultiplierGets the Damage Multiplier of a bone
integer GetFallDamageTakenGets the Fall Damage
FallingModeGetFallingModeGets the FallingMode
boolean GetFlyingModeGets if it's in Flying mode
GaitModeGetGaitModeGets the GaitMode
Prop or nilGetGrabbedPropGets the Grabbed Prop
float GetGravityScaleGets the gravity scale
integer GetHealthGets the current health
integer GetImpactDamageTakenGets the impact damage taken
integer GetJumpZVelocityGets the Jump Z Velocity
integer GetMaxHealthGets the Max Health
SkeletalMesh Reference GetMeshGets the Skeletal Mesh Asset
Vector GetMovingToGets the Moving To location
Base Pickable or nilGetPickedGets the Pickable if picking up
Player or nilGetPlayerGets the possessing Player
integer GetPunchDamageGets the punch damage
float GetSpeedMultiplierGets the speed multiplier
StanceModeGetStanceModeGets the Stance Mode
SwimmingModeGetSwimmingModeGets the Swimming Mode
integer GetTeamGets the Team
Vehicle or nilGetVehicleGets the entered Vehicle
ViewModeGetViewModeGets the View Mode
AimModeGetWeaponAimModeGets the Weapon Aim Mode

ApplyDamage​

Do damage to a character, will trigger all related events and apply modified damage based on bone. Also will apply impulse if it's a heavy explosion

Returns integer (the damage applied)
local ret = my_character:ApplyDamage(damage, bone_name?, damage_type?, from_direction?, instigator?, causer?)
TypeParameterDefaultDescription
integer damage
string bone_name?
DamageTypedamage_type?DamageType.Shot
Vector from_direction?Vector(0, 0, 0)
Player instigator?nilThe player which caused the damage
any causer?nilThe object which caused the damage

AddSkeletalMeshAttached​

Spawns and Attaches a SkeletalMesh into this Character, the SkeletalMesh must have the same Skeletal used by the Character Mesh, and will follow all animations from it. Uses a custom ID to be used for removing it further.

For customizing the Materials specific of a SkeletalMeshAttached, please use the following syntax in the Paintable methods: attachable///[ATTACHABLE_ID]/[PARAMETER_NAME], where [ATTACHABLE_ID] is the ID of the Attachable, and [PARAMETER_NAME] is the name of the parameter you want to change.
my_character:AddSkeletalMeshAttached(id, skeletal_mesh_asset?)
TypeParameterDefaultDescription
string idUsed further for removing or applying material settings on it
SkeletalMesh Reference skeletal_mesh_asset?

AddStaticMeshAttached​

Spawns and Attaches a StaticMesh into this Character in a Socket with relative Location and Rotation. Uses a custom ID to be used for removing it further

For customizing the Materials specific of a StaticMeshAttached, please use the following syntax as the parameter_name in the Paintable methods: attachable///[ATTACHABLE_ID]/[PARAMETER_NAME], where [ATTACHABLE_ID] is the ID of the Attachable, and [PARAMETER_NAME] is the name of the parameter you want to change.
my_character:AddStaticMeshAttached(id, static_mesh_asset?, socket?, relative_location?, relative_rotation?)
TypeParameterDefaultDescription
string idUsed further for removing or applying material settings on it
StaticMesh Reference static_mesh_asset?
string socket?
Vector relative_location?Vector(0, 0, 0)
Rotator relative_rotation?Rotator(0, 0, 0)

Drop​

Drops any Pickable the Character is holding
my_character:Drop()

EnterVehicle​

Enters the Vehicle at Seat (0 - Driver)
my_character:EnterVehicle(vehicle, seat?)
TypeParameterDefaultDescription
Vehicle vehicle
integer seat?0

GrabProp​

Gives a Prop to the Character
my_character:GrabProp(prop)
TypeParameterDefaultDescription
Prop prop

HideBone​

Hides a bone of this Character.

Check Bone Names List
my_character:HideBone(bone_name?)
TypeParameterDefaultDescription
string bone_name?Bone to hide

UnHideBone​

UnHide a bone of this Character.

Check Bone Names List
my_character:UnHideBone(bone_name)
TypeParameterDefaultDescription
string bone_nameBone to unhide

IsBoneHidden​

Gets if a bone is hidden

Returns boolean (if the bone is hidden)
local ret = my_character:IsBoneHidden(bone_name)
TypeParameterDefaultDescription
string bone_nameBone to check

Jump​

Triggers this Character to jump
my_character:Jump()

LeaveVehicle​

Leaves the current Vehicle
my_character:LeaveVehicle()

LookAt​

AI: Tries to make this Character to look at Location
my_character:LookAt(location)
TypeParameterDefaultDescription
Vector locationWorld location to look

MoveTo​

AI: Makes this Character to walk to the Location

Triggers event MoveCompleted
my_character:MoveTo(location, acceptance_radius?)
TypeParameterDefaultDescription
Vector location
float acceptance_radius?50

Follow​

AI: Makes this Character to follow another actor

Triggers event MoveCompleted
my_character:Follow(actor, acceptance_radius?, stop_on_succeed?, stop_on_fail?, update_rate?)
TypeParameterDefaultDescription
Base Actor actorActor to follow
float acceptance_radius?50Radius to consider success
boolean stop_on_succeed?falseWhether to stop when reaching the target
boolean stop_on_fail?falseWhether to stop when failed to reach the target
float update_rate?0.25How often to recalculate the AI path

StopMovement​

AI: Stops the movement

Triggers event [MoveCompleted](character#movecompleted)
my_character:StopMovement()

PickUp​

Gives a Melee/Grenade/Weapon (Pickable) to the Character
my_character:PickUp(pickable)
TypeParameterDefaultDescription
Base Pickable pickable

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 Reference animation_path
AnimationSlotTypeslot_type?AnimationSlotType.FullBody
boolean loop_indefinitely?false
float blend_in_time?0.25
float blend_out_time?0.25
float play_rate?1.0
boolean stop_all_montages?falseStops all running Montages from the same Group

StopAnimation​

Stops an Animation Montage on this character
my_character:StopAnimation(animation_asset)
TypeParameterDefaultDescription
Animation Reference animation_asset

RemoveSkeletalMeshAttached​

Removes, if existing, a SkeletalMesh from this Character given it's custom ID
my_character:RemoveSkeletalMeshAttached(id)
TypeParameterDefaultDescription
string id

RemoveStaticMeshAttached​

Removes, if existing, a StaticMesh from this Character given it's custom ID
my_character:RemoveStaticMeshAttached(id)
TypeParameterDefaultDescription
string id

RemoveAllStaticMeshesAttached​

Removes all StaticMeshes attached
my_character:RemoveAllStaticMeshesAttached()

RemoveAllSkeletalMeshesAttached​

Removes all SkeletalMeshes attached
my_character:RemoveAllSkeletalMeshesAttached()

Respawn​

Respawns the Character, fullying it's Health and moving it to it's Initial Location
my_character:Respawn(location?, rotation?)
TypeParameterDefaultDescription
Vector location?initial locationIf not passed will use the initial location passed when the Character spawned
Rotator rotation?Rotator(0, 0, 0)

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
Animationblend_space_path
boolean enable_turn_in_place?false

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
Animationblend_space_path
boolean enable_turn_in_place?false

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
Animationblend_space_path

SetAnimationsTransitionStandingCrouching​

Sets the Transition Animation between Standing and Crouching
my_character:SetAnimationsTransitionStandingCrouching(standing_to_crouching, crouching_to_standing)
TypeParameterDefaultDescription
Animationstanding_to_crouching
Animationcrouching_to_standing

SetAnimationsTransitionCrouchingProning​

Sets the Transition Animation between Crouching and Proning
my_character:SetAnimationsTransitionCrouchingProning(crouching_to_proning, pronng_to_crouching)
TypeParameterDefaultDescription
Animationcrouching_to_proning
Animationpronng_to_crouching

SetAccelerationSettings​

Sets the Movement Max Acceleration of this Character
my_character:SetAccelerationSettings(walking?, parachuting?, skydiving?, falling?, swimming?, swimming_surface?, flying?)
TypeParameterDefaultDescription
integer walking?768
integer parachuting?512
integer skydiving?768
integer falling?128
integer swimming?256
integer swimming_surface?256
integer flying?1024

SetBrakingSettings​

Sets the Movement Braking Settings of this Character
my_character:SetBrakingSettings(ground_friction?, braking_friction_factor?, braking_walking?, braking_flying?, braking_swimming?, braking_falling?)
TypeParameterDefaultDescription
float ground_friction?2
float braking_friction_factor?2
integer braking_walking?96
integer braking_flying?3000
integer braking_swimming?10
integer braking_falling?0

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

SetCameraOffset​

Sets the Camera Offset (only affects TPS)
my_character:SetCameraOffset(camera_offset)
TypeParameterDefaultDescription
Vector camera_offset

SetCanCrouch​

Sets if this Character is allowed to Crouch and to Prone
my_character:SetCanCrouch(can_crouch)
TypeParameterDefaultDescription
boolean can_crouch

SetCanAim​

Sets if this Character is allowed to Aim
my_character:SetCanAim(can_aim)
TypeParameterDefaultDescription
boolean can_aim

SetCanDrop​

Sets if this Character is allowed to Drop the Picked up item
my_character:SetCanDrop(can_drop)
TypeParameterDefaultDescription
boolean can_drop

SetCanJump​

Sets if this Character is allowed to Jump
my_character:SetCanJump(can_jump)
TypeParameterDefaultDescription
boolean can_jump

SetCanDive​

Sets if this Character is allowed to Dive
my_character:SetCanDive(can_dive)
TypeParameterDefaultDescription
boolean can_dive

SetCanSprint​

Sets if this Character is allowed to Sprint
my_character:SetCanSprint(can_sprint)
TypeParameterDefaultDescription
boolean can_sprint

SetCanGrabProps​

Sets if this Character is allowed to Grab any Prop
my_character:SetCanGrabProps(can_grab_props)
TypeParameterDefaultDescription
boolean can_grab_props

SetCanPickupPickables​

Sets if this Character is allowed to Pick up any Pickable (Weapon, Grenade, Melee...)
my_character:SetCanPickupPickables(can_pickup)
TypeParameterDefaultDescription
boolean can_pickup

SetCanPunch​

Sets if this Character is allowed to Punch
my_character:SetCanPunch(can_punch)
TypeParameterDefaultDescription
boolean can_punch

SetCanDeployParachute​

Sets if this Character is allowed to deploy the Parachute
my_character:SetCanDeployParachute(can_deploy_parachute)
TypeParameterDefaultDescription
boolean can_deploy_parachute

SetCapsuleSize​

Sets this Character's Capsule size (will affect Camera location and Character's collision)
my_character:SetCapsuleSize(radius, half_height)
TypeParameterDefaultDescription
integer radiusDefault is 42
integer half_heightDefault is 96

SetDamageMultiplier​

Changes how much damage this character takes on specific bones
my_character:SetDamageMultiplier(bone_name, multiplier)
TypeParameterDefaultDescription
string bone_name
float multiplier

SetDeathSound​

Changes the Death sound when Character dies
my_character:SetDeathSound(sound_asset)
TypeParameterDefaultDescription
string sound_asset

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
integer damageDefault is 10

SetFlyingMode​

Sets the Flying Mode
my_character:SetFlyingMode(flying_mode)
TypeParameterDefaultDescription
boolean flying_mode

SetFOVMultiplier​

Sets the Field of View multiplier
my_character:SetFOVMultiplier(multiplier)
TypeParameterDefaultDescription
float multiplier

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
float timeDefault is 1 second

SetGaitMode​

Sets the Gait Mode
my_character:SetGaitMode(mode)
TypeParameterDefaultDescription
GaitModemode

SetGravityScale​

Changes the Gravity Scale of this Character (can be negative)
my_character:SetGravityScale(scale)
TypeParameterDefaultDescription
float scale

SetHealth​

Sets the Health of this Character. You can only call it on alive characters (call Respawn first)
my_character:SetHealth(new_health)
TypeParameterDefaultDescription
integer new_health

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(damage)
TypeParameterDefaultDescription
integer damageDefault is 10

SetInvulnerable​

Sets if the Character can receive any damage
my_character:SetInvulnerable(is_invulnerable)
TypeParameterDefaultDescription
boolean is_invulnerable

SetJumpZVelocity​

Sets the velocity of the jump
my_character:SetJumpZVelocity(velocity)
TypeParameterDefaultDescription
integer velocityDefault is 450

SetMaxHealth​

Sets the MaxHealth of this Character
my_character:SetMaxHealth(new_max_health)
TypeParameterDefaultDescription
integer new_max_health

SetMesh​

Changes the Character Mesh on the fly
my_character:SetMesh(skeletal_mesh_asset)
TypeParameterDefaultDescription
SkeletalMesh Reference skeletal_mesh_asset

SetMorphTarget​

Set Morph Target with Name and Value
my_character:SetMorphTarget(name, value)
TypeParameterDefaultDescription
string nameMorph Target Name
float value

GetMorphTarget​

Returns the value of a Morph Target

Returns float (value of the Morph Target)
local ret = my_character:GetMorphTarget(name)
TypeParameterDefaultDescription
string nameMorph Target Name

ClearMorphTargets​

Clear all Morph Target that are set to this Mesh
my_character:ClearMorphTargets()

GetAllMorphTargetNames​

Returns a table with all morph targets available

Returns table of string (table with all morph targets available)
local ret = my_character:GetAllMorphTargetNames()

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
string boneThe body we will be driving
boolean include_selfWhether to modify the given body
boolean is_local_simulationWhether the drive targets are in world space or local
float orientation_strength?0The strength used to correct orientation error
float angular_velocity_strength?0The strength used to correct angular velocity error
float position_strength?0The strength used to correct linear position error. Only used for non-local simulation
float velocity_strength?0The strength used to correct linear velocity error. Only used for non-local simulation
float max_linear_force?0The max force used to correct linear errors
float max_angular_force?0The max force used to correct angular errors

ResetPhysicalAnimationSettings​

Resets all Physical Animation settings
my_character:ResetPhysicalAnimationSettings()

SetInputEnabled​

Enables/Disables Character's Input
my_character:SetInputEnabled(is_enabled)
TypeParameterDefaultDescription
boolean is_enabled

SetParachuteTexture​

Changes the Parachute Texture
my_character:SetParachuteTexture(texture)
TypeParameterDefaultDescription
Image Path texture

SetPainSound​

Changes the Pain sound when Character takes damage
my_character:SetPainSound(sound_asset)
TypeParameterDefaultDescription
Sound Reference sound_asset

SetPunchDamage​

Set the Punch Damage this Character will apply on others
my_character:SetPunchDamage(damage)
TypeParameterDefaultDescription
integer damageDefault is 15

SetRagdollMode​

Sets Character Ragdoll Mode
my_character:SetRagdollMode(ragdoll_enabled)
TypeParameterDefaultDescription
boolean ragdoll_enabled

SetSimulatePhysics​

Sets the Character Capsule to simulate physics
my_character:SetSimulatePhysics(simulate_physics)
TypeParameterDefaultDescription
boolean simulate_physics

SetSpeedMultiplier​

Sets all speed multiplier
my_character:SetSpeedMultiplier(multiplier)
TypeParameterDefaultDescription
float multiplier1 is normal

SetStanceMode​

Sets the Stance Mode
my_character:SetStanceMode(mode)
TypeParameterDefaultDescription
StanceModemode

SetTeam​

Sets a Team which will disable damaging same Team Members
my_character:SetTeam(team)
TypeParameterDefaultDescription
integer team0 is neutral and default

SetViewMode​

Sets the View Mode
my_character:SetViewMode(view_mode)
TypeParameterDefaultDescription
ViewModeview_mode

SetWeaponAimMode​

Sets the Weapon's Aim Mode
my_character:SetWeaponAimMode(aim_mode)
TypeParameterDefaultDescription
AimModeaim_mode

UnGrabProp​

UnGrabs/Drops the Prop the Character is holding
my_character:UnGrabProp()

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()

IsMovementEnabled​

Gets if has movement enabled

Returns boolean
local ret = my_character:IsMovementEnabled()

GetCameraMode​

Gets the camera mode

Returns CameraMode
local ret = my_character:GetCameraMode()

GetCanDrop​

Gets if can drop

Returns boolean
local ret = my_character:GetCanDrop()

GetCanPunch​

Gets if can punch

Returns boolean
local ret = my_character:GetCanPunch()

GetCanAim​

Gets if can aim

Returns boolean
local ret = my_character:GetCanAim()

GetCanCrouch​

Gets if can crouch

Returns boolean
local ret = my_character:GetCanCrouch()

GetCanSprint​

Gets if can sprint

Returns boolean
local ret = my_character:GetCanSprint()

GetCanGrabProps​

Gets if can grab props

Returns boolean
local ret = my_character:GetCanGrabProps()

GetCanPickupPickables​

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

Returns boolean
local ret = my_character:GetCanPickupPickables()

GetCapsuleSize​

Gets the Capsule Size

Returns table (in the format { Radius: integer, HalfHeight: integer })
local ret = my_character:GetCapsuleSize()

GetBoneTransform​

Gets a Bone Transform in world space given a bone name

Returns table (in the format { Location: Vector, Rotation: Rotator })
local ret = my_character:GetBoneTransform(bone_name)
TypeParameterDefaultDescription
string bone_name

GetControlRotation​

Gets the Control Rotation

Returns Rotator
local ret = my_character:GetControlRotation()

GetDamageMultiplier​

Gets the Damage Multiplier of a bone

Returns float (the damage multiplier of the bone)
local ret = my_character:GetDamageMultiplier(bone_name)
TypeParameterDefaultDescription
string bone_name

GetFallDamageTaken​

Gets the Fall Damage

Returns integer
local ret = my_character:GetFallDamageTaken()

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()

GetGaitMode​

Gets the GaitMode

Returns GaitMode
local ret = my_character:GetGaitMode()

GetGrabbedProp​

Gets the Grabbed Prop

Returns Prop or nil
local ret = my_character:GetGrabbedProp()

GetGravityScale​

Gets the gravity scale

Returns float
local ret = my_character:GetGravityScale()

GetHealth​

Gets the current health

Returns integer
local ret = my_character:GetHealth()

GetImpactDamageTaken​

Gets the impact damage taken

Returns integer
local ret = my_character:GetImpactDamageTaken()

GetJumpZVelocity​

Gets the Jump Z Velocity

Returns integer
local ret = my_character:GetJumpZVelocity()

GetMaxHealth​

Gets the Max Health

Returns integer
local ret = my_character:GetMaxHealth()

GetMesh​

Gets the Skeletal Mesh Asset

Returns SkeletalMesh Reference
local ret = my_character:GetMesh()

GetMovingTo​

Gets the Moving To location

Returns Vector (the moving to location or Vector(0, 0, 0) if not moving)
local ret = my_character:GetMovingTo()

GetPicked​

Gets the Pickable if picking up

Returns Base Pickable or nil
local ret = my_character:GetPicked()

GetPlayer​

Gets the possessing Player

Returns Player or nil
local ret = my_character:GetPlayer()

GetPunchDamage​

Gets the punch damage

Returns integer
local ret = my_character:GetPunchDamage()

GetSpeedMultiplier​

Gets the speed multiplier

Returns float
local ret = my_character:GetSpeedMultiplier()

GetStanceMode​

Gets the Stance Mode

Returns StanceMode
local ret = my_character:GetStanceMode()

GetSwimmingMode​

Gets the Swimming Mode

Returns SwimmingMode
local ret = my_character:GetSwimmingMode()

GetTeam​

Gets the Team

Returns integer
local ret = my_character:GetTeam()

GetVehicle​

Gets the entered Vehicle

Returns Vehicle or nil
local ret = my_character:GetVehicle()

GetViewMode​

Gets the View Mode

Returns ViewMode
local ret = my_character:GetViewMode()

GetWeaponAimMode​

Gets the Weapon Aim Mode

Returns AimMode
local ret = my_character:GetWeaponAimMode()

πŸš€Β Events​

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

AnimationBeginNotify​

When an Animation Montage Notify begins
Character.Subscribe("AnimationBeginNotify", function(self, notify_name)

end)
TypeArgumentDescription
Character self
string notify_name

AnimationEndNotify​

When an Animation Montage Notify ends
Character.Subscribe("AnimationEndNotify", function(self, notify_name)

end)
TypeArgumentDescription
Character self
string notify_name

Attack​

Triggered when the Character effectively attacks with a Melee
Character.Subscribe("Attack", function(self, melee)

end)
TypeArgumentDescription
Character self
Melee melee

Death​

When Character Dies
Character.Subscribe("Death", function(self, last_damage_taken, last_bone_damaged, damage_type_reason, hit_from_direction, instigator, causer)

end)
TypeArgumentDescription
Character self
integer last_damage_taken
string last_bone_damaged
DamageTypedamage_type_reason
Vector hit_from_direction
Player or nilinstigator
Base Actor or nilcauserThe object which caused the damage

Drop​

When Character drops the currently picked up Pickable
Character.Subscribe("Drop", function(self, object, triggered_by_player)

end)
TypeArgumentDescription
Character self
Base Pickable object
boolean triggered_by_player

EnterVehicle​

When Character enters a vehicle
Character.Subscribe("EnterVehicle", function(self, vehicle, seat_index)

end)
TypeArgumentDescription
Character self
Vehicle vehicle
integer seat_index

AttemptEnterVehicle​

Triggered when a Character attempts to enter a vehicle

Return false to prevent it
Character.Subscribe("AttemptEnterVehicle", function(self, vehicle, seat_index)

end)
TypeArgumentDescription
Character self
Vehicle vehicle
integer seat_index

FallingModeChange​

Called when FallingMode changes
Character.Subscribe("FallingModeChange", function(self, old_state, new_state)

end)
TypeArgumentDescription
Character self
FallingModeold_state
FallingModenew_state

Fire​

When Character fires a Weapon
Character.Subscribe("Fire", function(self, weapon)

end)
TypeArgumentDescription
Character self
Weapon weapon

GaitModeChange​

Called when GaitMode changes
Character.Subscribe("GaitModeChange", function(self, old_state, new_state)

end)
TypeArgumentDescription
Character self
GaitModeold_state
GaitModenew_state

GrabProp​

When Character grabs up a Prop
Character.Subscribe("GrabProp", function(self, prop)

end)
TypeArgumentDescription
Character self
Prop prop

HealthChange​

When Character has it's Health changed, or because took damage or manually set through scripting or respawning
Character.Subscribe("HealthChange", function(self, old_health, new_health)

end)
TypeArgumentDescription
Character self
integer old_health
integer new_health

Highlight​

When Character highlights/looks at a Prop or a Pickable
Character.Subscribe("Highlight", function(self, is_highlighted, object)

end)
TypeArgumentDescription
Character self
boolean is_highlightedWhether the object is being highlighted or not
Prop or Base Pickable object

Interact​

Triggered when a Character interacts with a Prop or Pickable

Return false to prevent it
Character.Subscribe("Interact", function(self, object)

end)
TypeArgumentDescription
Character self
Prop or Base Pickable object

LeaveVehicle​

When Character leaves a vehicle
Character.Subscribe("LeaveVehicle", function(self, vehicle)

end)
TypeArgumentDescription
Character self
Vehicle vehicle

AttemptLeaveVehicle​

Triggered when this Character attempts to leave a vehicle

Return false to prevent it
Character.Subscribe("AttemptLeaveVehicle", function(self, vehicle)

end)
TypeArgumentDescription
Character self
Vehicle vehicle

MoveComplete​

Called when AI reaches it's destination, or when it fails
Character.Subscribe("MoveComplete", function(self, succeeded)

end)
TypeArgumentDescription
Character self
boolean succeeded

PickUp​

When Character picks up anything
Character.Subscribe("PickUp", function(self, object)

end)
TypeArgumentDescription
Character self
Base Pickable object

Possess​

When Character is possessed
Character.Subscribe("Possess", function(self, possesser)

end)
TypeArgumentDescription
Character self
Player possesser

Punch​

When Character punches
Character.Subscribe("Punch", function(self)

end)
TypeArgumentDescription
Character self

RagdollModeChange​

When Character enters or leaves ragdoll
Character.Subscribe("RagdollModeChange", function(self, old_state, new_state)

end)
TypeArgumentDescription
Character self
boolean old_state
boolean new_state

AttemptReload​

Triggered when this Character attempts to reload

Return false to prevent it
Character.Subscribe("AttemptReload", function(self, weapon)

end)
TypeArgumentDescription
Character self
Weapon weapon

Reload​

When Character reloads a weapon
Character.Subscribe("Reload", function(self, weapon, ammo_to_reload)

end)
TypeArgumentDescription
Character self
Weapon weapon
integer ammo_to_reload

Respawn​

When Character Respawns
Character.Subscribe("Respawn", function(self)

end)
TypeArgumentDescription
Character self

StanceModeChange​

Called when StanceMode changes
Character.Subscribe("StanceModeChange", function(self, old_state, new_state)

end)
TypeArgumentDescription
Character self
StanceModeold_state
StanceModenew_state

SwimmingModeChange​

Called when Swimming Mode changes
Character.Subscribe("SwimmingModeChange", function(self, old_state, new_state)

end)
TypeArgumentDescription
Character self
SwimmingModeold_state
SwimmingModenew_state

TakeDamage​

Triggered when this Character takes damage

Return false to cancel the damage (will still display animations, particles and apply impact forces)
Character.Subscribe("TakeDamage", function(self, damage, bone, type, from_direction, instigator, causer)

end)
TypeArgumentDescription
Character self
integer damage
string boneDamaged bone
DamageTypetypeDamage Type
Vector from_directionDirection of the damage relative to the damaged actor
Player instigatorThe player which caused the damage
any causerThe object which caused the damage

UnGrabProp​

When Character drops a Prop
Character.Subscribe("UnGrabProp", function(self, prop)

end)
TypeArgumentDescription
Character self
Prop prop

UnPossess​

When Character is unpossessed
Character.Subscribe("UnPossess", function(self, old_possesser)

end)
TypeArgumentDescription
Character self
Player old_possesser

ViewModeChange​

When Character changes it's View Mode
Character.Subscribe("ViewModeChange", function(self, old_state, new_state)

end)
TypeArgumentDescription
Character self
ViewModeold_state
ViewModenew_state

WeaponAimModeChange​

Called when Weapon Aim Mode changes
Character.Subscribe("WeaponAimModeChange", function(self, old_state, new_state)

end)
TypeArgumentDescription
Character self
AimModeold_state
AimModenew_state

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)

end)
TypeArgumentDescription
Character selfThe Character that used it
Base Pickable pickableThe Pickable which has just been used

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)

end)
TypeArgumentDescription
Character selfThe Character that stopped using it
Base Pickable pickableThe Pickable which has just stopped being used

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