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 derived 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

HasMotion

Field Type Serializable Description
velocity float32[6] yes The committed velocity of this entity. 6DoF: (vx, vy, vz, wx, wy, wz). Owned by the physics system (written at commit), not an input surface.
acceleration float32[6] yes The committed acceleration of this entity. 6DoF: (ax, ay, az, wax, way, waz). Owned by the physics system (written at commit), not an input surface.
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)
physics_level int32[1] yes The physics level
max_velocities float32[6] yes The maximum velocities for physics_level 1 (level-1 cap; unused at level 2)
max_accelerations float32[6] yes The maximum accelerations for physics_level 2 (unused at level 1)
drag_coefficient float32[1] yes The drag coefficient for physics_level 2 (unused at level 1)
candidate_velocity float32[6] no The future (t+1) velocity. Used for collision checking in the physics system before updating pose. Internal staging buffer: not serialized, recomputed every tick by the physics system, and overwritten by it (write it in a per-tick system, not once)
candidate_acceleration float32[6] no The future (t+1) acceleration. Used for collision checking in the physics system before updating pose. Internal staging buffer: not serialized, recomputed every tick by the physics system, and overwritten by it (write it in a per-tick system, not once)

HasCollision

Field Type Serializable Description
is_colliding bool[1] no Whether this entity is colliding now with something
collider_kind object[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

GroundFloor

Field Type Serializable Description

See Adding Motion to a Scene Object for defining and registering your own component, and Architecture & Main Loop for how systems read and write these each tick.