🧑🦲 CharacterSimple
CharacterSimple is a simpler Character implementation with basic Movement implementation. Aimed for custom NPCs or basic Pawns.
🎒 Examples
-- Spawns a Stack-O-Bot Character
local stack_o_bot = CharacterSimple(Vector(100, 0, 100), Rotator(0, 0, 0), "nanos-world::SK_StackOBot", "nanos-world::ABP_StackOBot")
stack_o_bot:SetSpeedSettings(275, 150)
🛠 Constructors
Default Constructor
local my_charactersimple = CharacterSimple(location, rotation, mesh, custom_animation_blueprint?, collision_type?, gravity_enabled?)
Type | Name | Default | Description |
---|---|---|---|
Vector | location | ||
Rotator | rotation | ||
SkeletalMesh Reference or StaticMesh Reference | mesh | ||
Blueprint Reference | custom_animation_blueprint |
| |
CollisionType | collision_type | CollisionType.Auto | |
boolean | gravity_enabled | true |
🗿 Static Functions
Inherited Entity Static Functions
Base Entityscripting-reference/classes/base-classes/Entity
Returns | Name | Description | |
---|---|---|---|
![]() | table of Base Entity | GetAll | Returns a table containing all Entities of the class this is called on |
![]() | Base Entity | GetByIndex | Returns a specific Entity of this class at an index |
![]() | integer | GetCount | Returns how many Entities of this class exist |
![]() | table of table | GetInheritedClasses | Gets a list of all directly inherited classes from this Class created with the Inheriting System |
![]() | iterator | GetPairs | Returns an iterator with all Entities of this class to be used with pairs() |
![]() | table or nil | GetParentClass | Gets the parent class if this Class was created with the Inheriting System |
![]() | table | Inherit | Inherits this class with the Inheriting System |
![]() | boolean | IsChildOf | Gets if this Class is child of another class if this Class was created with the Inheriting System |
![]() | function | Subscribe | Subscribes to an Event for all entities of this Class |
![]() | function | SubscribeRemote | Subscribes to a custom event called from server |
![]() | Unsubscribe | Unsubscribes all callbacks from this Event in this Class within this Package, or only the callback passed |
🦠 Functions
Inherited Entity Functions
Base Entityscripting-reference/classes/base-classes/Entity
Returns | Name | Description | |
---|---|---|---|
BroadcastRemoteEvent | Calls a custom remote event directly on this entity to all Players | ||
CallRemoteEvent | Calls a custom remote event directly on this entity to a specific Player | ||
CallRemoteEvent | Calls a custom remote event directly on this entity | ||
Destroy | Destroys this Entity | ||
![]() | table | GetClass | Gets the class of this entity |
![]() | integer | GetID | Gets the universal network ID of this Entity (same on both client and server) |
![]() | any | GetValue | Gets a Value stored on this Entity at the given key |
![]() | boolean | IsA | Recursively checks if this entity is inherited from a Class |
![]() | boolean | IsValid | Returns true if this Entity is valid (i.e. wasn't destroyed and points to a valid Entity) |
![]() | SetValue | Sets a Value in this Entity | |
![]() | function | Subscribe | Subscribes to an Event on this specific entity |
![]() | function | SubscribeRemote | Subscribes to a custom event called from server on this specific entity |
![]() | Unsubscribe | Unsubscribes all callbacks from this Event in this Entity within this Package, or only the callback passed |
Inherited Actor Functions
Base Actorscripting-reference/classes/base-classes/Actor
Returns | Name | Description | |
---|---|---|---|
AddActorTag | Adds an Unreal Actor Tag to this Actor | ||
![]() | AddImpulse | Applies a force in world world to this Actor | |
AttachTo | Attaches this Actor to any other Actor, optionally at a specific bone | ||
Detach | Detaches this Actor from AttachedTo Actor | ||
table of string | GetActorTags | Gets all Unreal Actor Tags on this Actor | |
![]() | table of Base Actor | GetAttachedEntities | Gets all Actors attached to this Actor |
![]() | Base Actor or nil | GetAttachedTo | Gets the Actor this Actor is attached to |
table | GetBounds | Gets this Actor's bounds | |
![]() | CollisionType | GetCollision | Gets this Actor's collision type |
![]() | integer | GetDimension | Gets this Actor's dimension |
float | GetDistanceFromCamera | Gets the distance of this Actor from the Camera | |
![]() | Vector | GetForce | Gets this Actor's force (set by SetForce() ) |
![]() | Vector | GetLocation | Gets this Actor's location in the game world |
Player or nil | GetNetworkAuthority | Gets this Actor's Network Authority Player | |
![]() | Vector | GetRelativeLocation | Gets this Actor's Relative Location if it's attached |
![]() | Rotator | GetRelativeRotation | Gets this Actor's Relative Rotation if it's attached |
![]() | Rotator | GetRotation | Gets this Actor's angle in the game world |
![]() | Vector | GetScale | Gets this Actor's scale |
float | GetScreenPercentage | Gets the percentage of this Actor size in the screen | |
![]() | Vector | GetVelocity | Gets this Actor's current velocity |
boolean | HasAuthority | Gets if this Actor was spawned by the client side | |
boolean | HasNetworkAuthority | Returns true if the local Player is currently the Network Authority of this Actor | |
![]() | boolean | IsBeingDestroyed | Returns true if this Actor is being destroyed |
![]() | boolean | IsGravityEnabled | Returns true if gravity is enabled on this Actor |
![]() | boolean | IsInWater | Returns true if this Actor is in water |
![]() | boolean | IsNetworkDistributed | Returns true if this Actor is currently network distributed |
![]() | boolean | IsVisible | Returns true if this Actor is visible |
RemoveActorTag | Removes an Unreal Actor Tag from this Actor | ||
![]() | RotateTo | Smoothly rotates this actor to an angle over a certain time | |
SetCollision | Sets this Actor's collision type | ||
SetDimension | Sets this Actor's Dimension | ||
![]() | SetForce | Adds a permanent force to this Actor, set to Vector(0, 0, 0) to cancel | |
SetGravityEnabled | Sets whether gravity is enabled on this Actor | ||
SetHighlightEnabled | Sets whether the highlight is enabled on this Actor, and which highlight index to use | ||
SetLifeSpan | Sets the time (in seconds) before this Actor is destroyed. After this time has passed, the actor will be automatically destroyed. | ||
SetLocation | Sets this Actor's location in the game world | ||
SetNetworkAuthority | Sets the Player to have network authority over this Actor | ||
SetNetworkAuthorityAutoDistributed | Sets if this Actor will auto distribute the network authority between players | ||
SetOutlineEnabled | Sets whether the outline is enabled on this Actor, and which outline index to use | ||
SetRelativeLocation | Sets this Actor's relative location in local space (only if this actor is attached) | ||
SetRelativeRotation | Sets this Actor's relative rotation in local space (only if this actor is attached) | ||
SetRotation | Sets this Actor's rotation in the game world | ||
SetScale | Sets this Actor's scale | ||
![]() | SetVisibility | Sets whether the actor is visible or not | |
![]() | TranslateTo | Smoothly moves this actor to a location over a certain time | |
boolean | WasRecentlyRendered | Gets if this Actor was recently rendered on screen |
Inherited Paintable Functions
Base Paintablescripting-reference/classes/base-classes/Paintable
Returns | Name | Description | |
---|---|---|---|
![]() | ResetMaterial | Resets the material from the specified index to the original one | |
![]() | SetMaterial | Sets the material at the specified index of this Actor | |
![]() | SetMaterialColorParameter | Sets a Color parameter in this Actor's material | |
SetMaterialFromCanvas | Sets the material at the specified index of this Actor to a Canvas object | ||
SetMaterialFromSceneCapture | Sets the material at the specified index of this Actor to a SceneCapture object | ||
SetMaterialFromWebUI | Sets the material at the specified index of this Actor to a WebUI object | ||
![]() | SetMaterialScalarParameter | Sets a Scalar parameter in this Actor's material | |
![]() | SetMaterialTextureParameter | Sets a texture parameter in this Actor's material to an image on disk | |
![]() | SetMaterialVectorParameter | Sets a Vector parameter in this Actor's material | |
![]() | SetPhysicalMaterial | Overrides this Actor's Physical Material with a new one |
Inherited Damageable Functions
Base Damageablescripting-reference/classes/base-classes/Damageable
Returns | Name | Description | |
---|---|---|---|
integer | ApplyDamage | Do damage to this entity | |
![]() | integer | GetHealth | Gets the current health |
![]() | integer | GetMaxHealth | Gets the Max Health |
Respawn | Respawns the Entity, fullying it's Health and moving it to it's Initial Location | ||
SetHealth | Sets the Health of this Entity | ||
SetMaxHealth | Sets the MaxHealth of this Entity |
Returns | Name | Description | |
---|---|---|---|
![]() | AddSkeletalMeshAttached | Attaches a Skeletal Mesh as master pose to this entity | |
![]() | AddStaticMeshAttached | Attaches a Static Mesh to this entity | |
Follow | AI: Makes this Character to follow another actor | ||
![]() | table of string | GetAllSkeletalMeshAttached | Gets all Skeletal Meshes attached to this entity |
![]() | table of string | GetAllStaticMeshAttached | Gets all Static Meshes attached to this entity |
![]() | Rotator | GetControlRotation | Gets the Control Rotation |
![]() | SkeletalMesh Reference or StaticMesh Reference | GetMesh | Gets the Skeletal Mesh Asset |
![]() | Vector | GetMovingTo | Gets the Moving To location |
![]() | Player or nil | GetPlayer | Gets the possessing Player |
![]() | HideBone | Hides a bone of this Character | |
![]() | boolean | IsBoneHidden | Gets if a bone is hidden |
Jump | Triggers this Character to jump | ||
MoveTo | AI: Makes this Character to walk to the Location | ||
PlayAnimation | Plays an Animation Montage on this character | ||
![]() | RemoveAllSkeletalMeshesAttached | Removes all SkeletalMeshes attached | |
![]() | RemoveAllStaticMeshesAttached | Removes all StaticMeshes attached | |
![]() | RemoveSkeletalMeshAttached | Removes, if it exists, a SkeletalMesh from this entity given its custom ID | |
![]() | RemoveStaticMeshAttached | Removes, if it exists, a StaticMesh from this enitity given its custom ID | |
SetAnimationBlueprint | Sets the Animation Blueprint of this Character | ||
SetBrakingSettings | Sets the Movement Braking Settings of this Character | ||
SetCanCrouch | Sets if this Character is allowed to Crouch and to Prone | ||
SetCanJump | Sets if this Character is allowed to Jump | ||
SetCapsuleSize | Sets this Character's Capsule size | ||
SetJumpZVelocity | Sets the velocity of the jump | ||
SetMaxAcceleration | Sets the max acceleration | ||
SetMesh | Changes the Character Mesh on the fly | ||
SetPawnSettings | Sets the Pawn Settings of this Character | ||
SetRotationSettings | Sets the Rotation Settings of this Character | ||
SetSpeedSettings | Sets the Speed Settings of this Character | ||
SetSpringArmSettings | Sets the Spring Arm Settings of this Character | ||
![]() | SetStaticMeshAttachedTransform | Sets a Static Mesh Attached location and rotation | |
StopAnimation | Stops an Animation Montage on this character | ||
StopMovement | AI: Stops the movement | ||
![]() | UnHideBone | UnHide a bone of this Character |

AddSkeletalMeshAttached
Spawns and attaches a SkeletalMesh to this entity, the SkeletalMesh must have the same skeleton used by this Actor's mesh, and will follow all animations from it. Uses a custom ID to be used for removing/customizing it afterwards
my_charactersimple:AddSkeletalMeshAttached(id, skeletal_mesh_path, use_parent_bounds?)
Type | Parameter | Default | Description |
---|---|---|---|
string | id | Used further for removing or applying material settings on it | |
SkeletalMesh Reference | skeletal_mesh_path | Path to SkeletalMesh asset to attach | |
boolean | use_parent_bounds? | true | If true, this component uses its parents bounds when attached. This can be a significant optimization with many components attached together |
See also RemoveSkeletalMeshAttached.

AddStaticMeshAttached
Spawns and attaches a StaticMesh to this entity in a Socket with a relative location and rotation. Uses a custom ID to be used for removing/customizing it afterwards
my_charactersimple:AddStaticMeshAttached(id, static_mesh_path, socket?, relative_location?, relative_rotation?, use_parent_bounds?)
Type | Parameter | Default | Description |
---|---|---|---|
string | id | Unique ID to assign to the StaticMesh | |
StaticMesh Reference | static_mesh_path | Path to StaticMesh asset to attach | |
string | socket? |
| Bone socket to attach to |
Vector | relative_location? | Vector(0, 0, 0) | Relative location |
Rotator | relative_rotation? | Rotator(0, 0, 0) | Relative rotation |
boolean | use_parent_bounds? | true | If true, this component uses its parents bounds when attached. This can be a significant optimization with many components attached together |
See also SetStaticMeshAttachedTransform, RemoveStaticMeshAttached.

Follow
AI: Makes this Character to follow another actor
Triggers event MoveComplete
my_charactersimple:Follow(actor, acceptance_radius?, stop_on_succeed?, stop_on_fail?, update_rate?)
Type | Parameter | Default | Description |
---|---|---|---|
Base Actor | actor | Actor to follow | |
float | acceptance_radius? | 50 | Radius to consider success |
boolean | stop_on_succeed? | false | Whether to stop when reaching the target |
boolean | stop_on_fail? | false | Whether to stop when failed to reach the target |
float | update_rate? | 0.25 | How often to recalculate the AI path |
See also StopMovement, MoveTo, MoveComplete.

GetAllSkeletalMeshAttached
Gets all Skeletal Meshes attached to this entity
— Returns table of string (the key as the Attached ID, and the value as the Asset Path).
local ret = my_charactersimple:GetAllSkeletalMeshAttached()

GetAllStaticMeshAttached
Gets all Static Meshes attached to this entity
— Returns table of string (the key as the Attached ID, and the value as the Asset Path).
local ret = my_charactersimple:GetAllStaticMeshAttached()

GetControlRotation
Gets the Control Rotation
— Returns Rotator.
local ret = my_charactersimple:GetControlRotation()

GetMesh
Gets the Skeletal Mesh Asset
— Returns SkeletalMesh Reference or StaticMesh Reference.
local ret = my_charactersimple:GetMesh()
See also SetMesh.

GetMovingTo
Gets the Moving To location
— Returns Vector (the moving to location or Vector(0, 0, 0) if not moving).
local ret = my_charactersimple:GetMovingTo()

GetPlayer
Gets the possessing Player
local ret = my_charactersimple:GetPlayer()

HideBone
Hides a bone of this Character.
Check Bone Names List
my_charactersimple:HideBone(bone_name?)
Type | Parameter | Default | Description |
---|---|---|---|
string | bone_name? |
| Bone to hide |

IsBoneHidden
Gets if a bone is hidden
— Returns boolean (if the bone is hidden).
local ret = my_charactersimple:IsBoneHidden(bone_name)
Type | Parameter | Default | Description |
---|---|---|---|
string | bone_name | Bone to check |

Jump
Triggers this Character to jump
my_charactersimple:Jump()

MoveTo
AI: Makes this Character to walk to the Location
Triggers event MoveComplete
my_charactersimple:MoveTo(location, acceptance_radius?)
See also StopMovement, Follow, MoveComplete.

PlayAnimation
Plays an Animation Montage on this character
my_charactersimple:PlayAnimation(animation_path, slot_name?, loop_indefinitely?, blend_in_time?, blend_out_time?, play_rate?, stop_all_montages?)
Type | Parameter | Default | Description |
---|---|---|---|
Animation Reference | animation_path | ||
string | slot_name? |
| |
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? | false | Stops all running Montages from the same Group |

RemoveAllSkeletalMeshesAttached
Removes all SkeletalMeshes attached
my_charactersimple:RemoveAllSkeletalMeshesAttached()

RemoveAllStaticMeshesAttached
Removes all StaticMeshes attached
my_charactersimple:RemoveAllStaticMeshesAttached()

RemoveSkeletalMeshAttached
Removes, if it exists, a SkeletalMesh from this entity given its custom ID
my_charactersimple:RemoveSkeletalMeshAttached(id)
Type | Parameter | Default | Description |
---|---|---|---|
string | id | Unique ID of the SkeletalMesh to remove |
See also AddSkeletalMeshAttached.

RemoveStaticMeshAttached
Removes, if it exists, a StaticMesh from this enitity given its custom ID
my_charactersimple:RemoveStaticMeshAttached(id)
Type | Parameter | Default | Description |
---|---|---|---|
string | id | Unique ID of the StaticMesh to remove |
See also AddStaticMeshAttached.

SetAnimationBlueprint
Sets the Animation Blueprint of this Character
my_charactersimple:SetAnimationBlueprint(custom_animation_blueprint)
Type | Parameter | Default | Description |
---|---|---|---|
Blueprint Reference | custom_animation_blueprint |

SetBrakingSettings
Sets the Movement Braking Settings of this Character
my_charactersimple:SetBrakingSettings(ground_friction?, braking_friction_factor?, braking_walking?, braking_flying?, braking_swimming?, braking_falling?)
Type | Parameter | Default | Description |
---|---|---|---|
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 |

SetCanCrouch
Sets if this Character is allowed to Crouch and to Prone
my_charactersimple:SetCanCrouch(can_crouch)
Type | Parameter | Default | Description |
---|---|---|---|
boolean | can_crouch |

SetCanJump
Sets if this Character is allowed to Jump
my_charactersimple:SetCanJump(can_jump)
Type | Parameter | Default | Description |
---|---|---|---|
boolean | can_jump |

SetCapsuleSize
Sets this Character's Capsule size (will affect Camera location and Character's collision)
my_charactersimple:SetCapsuleSize(radius, half_height)

SetJumpZVelocity
Sets the velocity of the jump
my_charactersimple:SetJumpZVelocity(velocity)
Type | Parameter | Default | Description |
---|---|---|---|
integer | velocity | Default is 450 |

SetMaxAcceleration
Sets the max acceleration
my_charactersimple:SetMaxAcceleration(acceleration)
Type | Parameter | Default | Description |
---|---|---|---|
integer | acceleration | Default is 2048 |

SetMesh
Changes the Character Mesh on the fly
my_charactersimple:SetMesh(mesh_asset, adjust_capsule_size)
Type | Parameter | Default | Description |
---|---|---|---|
SkeletalMesh Reference or StaticMesh Reference | mesh_asset | ||
boolean | adjust_capsule_size | Auto adjust the capsule size based on the Mesh size |
See also GetMesh.

SetPawnSettings
Sets the Pawn Settings of this Character
my_charactersimple:SetPawnSettings(use_controller_rotation_pitch, use_controller_rotation_yaw, use_controller_rotation_roll)
Type | Parameter | Default | Description |
---|---|---|---|
boolean | use_controller_rotation_pitch | ||
boolean | use_controller_rotation_yaw | ||
boolean | use_controller_rotation_roll |

SetRotationSettings
Sets the Rotation Settings of this Character
my_charactersimple:SetRotationSettings(rotation_rate, use_controller_desired_rotation, orient_rotation_to_movement)
Type | Parameter | Default | Description |
---|---|---|---|
Rotator | rotation_rate | ||
boolean | use_controller_desired_rotation | ||
boolean | orient_rotation_to_movement |

SetSpeedSettings
Sets the Speed Settings of this Character
my_charactersimple:SetSpeedSettings(max_walk_speed, max_walk_speed_crouched)

SetSpringArmSettings
Sets the Spring Arm Settings of this Character
my_charactersimple:SetSpringArmSettings(relative_location, target_arm_length, socket_offset, enable_camera_lag, camera_lag_speed)
Type | Parameter | Default | Description |
---|---|---|---|
Vector | relative_location | ||
float | target_arm_length | ||
Vector | socket_offset | ||
boolean | enable_camera_lag | ||
float | camera_lag_speed |

SetStaticMeshAttachedTransform
Sets a Static Mesh Attached location and rotation
my_charactersimple:SetStaticMeshAttachedTransform(id, relative_location, relative_rotation)
Type | Parameter | Default | Description |
---|---|---|---|
string | id | Unique ID of the StaticMesh set with AddStaticMeshAttached | |
Vector | relative_location | New relative location | |
Rotator | relative_rotation | New relative rotation |
See also AddStaticMeshAttached.

StopAnimation
Stops an Animation Montage on this character
my_charactersimple:StopAnimation(animation_asset)
Type | Parameter | Default | Description |
---|---|---|---|
Animation Reference | animation_asset |

StopMovement
AI: Stops the movement
Triggers event MoveComplete
my_charactersimple:StopMovement()
See also MoveTo, Follow, MoveComplete.

UnHideBone
UnHide a bone of this Character.
Check Bone Names List
my_charactersimple:UnHideBone(bone_name)
Type | Parameter | Default | Description |
---|---|---|---|
string | bone_name | Bone to unhide |
🚀 Events
Inherited Entity Events
Base Entityscripting-reference/classes/base-classes/Entity
Name | Description | |
---|---|---|
![]() | ClassRegister | Triggered when a new Class is registered with the Inheriting System |
![]() | Destroy | Triggered when an Entity is destroyed |
![]() | Spawn | Triggered when an Entity is spawned/created |
![]() | ValueChange | Triggered when an Entity has a value changed with :SetValue() |
Inherited Actor Events
Base Actorscripting-reference/classes/base-classes/Actor
Name | Description | |
---|---|---|
DimensionChange | Triggered when an Actor changes it's dimension |
Inherited Damageable Events
Base Damageablescripting-reference/classes/base-classes/Damageable
Name | Description | |
---|---|---|
![]() | Death | When Entity Dies |
![]() | HealthChange | When Entity has it's Health changed, or because took damage or manually set through scripting or respawning |
![]() | Respawn | When Entity Respawns |
![]() | TakeDamage | Triggered when this Entity takes damage |
Name | Description | |
---|---|---|
![]() | MoveComplete | Called when AI reaches it's destination, or when it fails |
![]() | Possess | When Character is possessed |
![]() | UnPossess | When Character is unpossessed |

MoveComplete
Called when AI reaches it's destination, or when it fails
CharacterSimple.Subscribe("MoveComplete", function(self, succeeded)
-- MoveComplete was called
end)
See also StopMovement, MoveTo, Follow.

Possess
When Character is possessed
CharacterSimple.Subscribe("Possess", function(self, possesser)
-- Possess was called
end)
Type | Argument | Description |
---|---|---|
CharacterSimple | self | |
Player | possesser |

UnPossess
When Character is unpossessed
CharacterSimple.Subscribe("UnPossess", function(self, old_possesser)
-- UnPossess was called
end)
Type | Argument | Description |
---|---|---|
CharacterSimple | self | |
Player | old_possesser |