Built-in Components (generated)
An entity is just an id plus the components it carries — each component is a small block of data with no behaviour (systems provide the behaviour). This page lists every component the simulator ships with; a server or a plugin can register more. The components list of the entity_spawn command (see Endpoints (generated)) is chosen from these names.
Auto-generated by docs/generate_components_md.py from robolib.components.ROBOLIB_COMPONENTS. Do not edit by hand — add the component / field and re-run the generator. Each field's description is its comment metadata in src/robolib/components.py.
Type is the numpy dtype[shape] of the field (float32[6] = a length-6 float array, float32[4,4] = a 4×4 matrix). Serializable = whether the field is part of the entity's to_dict() — i.e. saved to disk and returned over TCP. Non-serializable fields are runtime-only (raylib handles, sockets, per-tick scratch) and never leave the server.
HasTag
| Field |
Type |
Serializable |
Description |
tag |
object[1] |
yes |
The tag of this entity (e.g. robot, ground floor etc.) |
HasModel
| Field |
Type |
Serializable |
Description |
model_path |
object[1] |
yes |
The model path on the disk |
texture_path |
object[1] |
yes |
The texture path on the disk (optional) |
scale |
float32[1] |
yes |
The scale of the model to project in world space |
model |
object[1] |
no |
The model object (not serializable) |
model_bbox |
float32[2,3] |
no |
The bbox of the object dertived from the model itself |
model_radius |
float32[1] |
no |
The radius of the model, derived from the model itself |
HasPose
| Field |
Type |
Serializable |
Description |
pose |
float32[4,4] |
yes |
The pose of the entity (rotation & translation) as 4x4 homogeneous matrix |
candidate_pose |
float32[4,4] |
no |
The future (t+1) 4x4 pose. Used for post-collision. Needs to be updated at each frame (system). |
HasFPV
| Field |
Type |
Serializable |
Description |
fpv_camera |
object[1] |
no |
The FPV camera object, instantiated in the server. |
fpv_data |
object[1] |
no |
The frame currently displayed in the world in this FPV camera. |
fpv_texture |
object[1] |
no |
The texture where the fpv_data of this camera is rendered |
HasVelocity
| Field |
Type |
Serializable |
Description |
velocity |
float32[6] |
yes |
The velocity of an entity. We use 6 degrees of freedom (6DoF): (vx, vy, vz, wx, wy, wz). The first three numbers are the linear velocities and the last three are angular velocities. |
candidate_velocity |
float32[6] |
yes |
The future (t+1) velocity. Used for collision checking in the phsyics system before updating pose |
HasAcceleration
| Field |
Type |
Serializable |
Description |
acceleration |
float32[6] |
yes |
The acceleration of an entity. We use 6 degrees of freedom (6DoF): (ax, ay, az, wax, way, waz). The first three numbers are the linear accelerations and the last three are angular accels. |
candidate_acceleration |
float32[6] |
yes |
The future (t+1) accel. Used for collision checking in the phsyics system before updating pose |
HasPhysicsLevel1
| Field |
Type |
Serializable |
Description |
max_velocities |
float32[6] |
yes |
The maximum velocities in the monion_input for lvl 2 |
HasPhysicsLevel2
| Field |
Type |
Serializable |
Description |
max_accelerations |
float32[6] |
yes |
The maximum acc. in the monion_input for lvl 2 |
drag_coefficient |
float32[1] |
yes |
The drag coefficient for level 2 |
| Field |
Type |
Serializable |
Description |
motion_input |
float32[6] |
no |
The motion input (to change vel/acc) of this entity. Usually sent from keyboard or the entity's channel (tcp) |
HasCollision
| Field |
Type |
Serializable |
Description |
is_colliding |
bool[1] |
no |
Whether this entity is colliding now with something |
collider_kind |
int32[1] |
yes |
The collider kind. see ColliderKinds enum for options. |
collider_bbox |
float32[2,3] |
no |
Note: already in world space (scaled) by physics system |
collider_radii |
float32[1] |
no |
Note: already in world space (scaled) by physics system |
See Adding Velocity to a Scene Object for defining and registering your own component, and Architecture & Main Loop for how systems read and write these each tick.