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

HasMotionInput

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.