Skip to content

Latest commit

 

History

History
2540 lines (1177 loc) · 43.3 KB

File metadata and controls

2540 lines (1177 loc) · 43.3 KB

Home > server

server package

Classes

Class

Description

AssetsLibrary

Manages the assets library and synchronization of assets to the local assets directory in development.

When to use: pulling assets from the shared library during local development. Do NOT use for: production asset loading; the library is disabled in production.

Audio

Represents a audio playback in a world.

AudioManager

Manages audio instances in a world.

When to use: querying or bulk-controlling audio in a specific world. Do NOT use for: individual playback configuration; use Audio instances.

Block

Represents a block in a world.

When to use: reading block data from queries like raycasts or chunk lookups. Do NOT use for: creating or placing blocks directly; use ChunkLattice.setBlock.

BlockTextureRegistry

Manages block textures and block texture atlas generation of the game.

When to use: querying texture atlas UVs and transparency hints for blocks. Do NOT use for: runtime texture modifications; regenerate atlas offline in dev.

BlockType

Represents a block type definition.

When to use: defining new block types (textures, colliders, liquid behavior). Do NOT use for: placing blocks directly; use ChunkLattice.setBlock.

BlockTypeRegistry

Manages known block types in a world.

When to use: registering and retrieving block types for a specific world. Do NOT use for: placing blocks; use ChunkLattice.setBlock.

ChatManager

Manages chat and commands in a world.

When to use: broadcasting chat, sending system messages, or registering chat commands. Do NOT use for: player HUD/menus; use PlayerUI for rich UI.

Chunk

A 16^3 chunk of blocks representing a slice of world terrain.

When to use: reading chunk data or working with bulk block operations. Do NOT use for: creating terrain directly; prefer ChunkLattice.

ChunkLattice

A lattice of chunks that represent a world's terrain.

When to use: reading or mutating blocks in world space. Do NOT use for: per-entity placement logic; prefer higher-level game systems.

Collider

Represents a collider in a world's physics simulation.

When to use: defining collision shapes for rigid bodies or entities. Do NOT use for: gameplay queries; use Simulation.raycast or intersection APIs instead.

CollisionGroupsBuilder

A helper class for building and decoding collision groups.

When to use: creating custom collision filters for colliders and rigid bodies. Do NOT use for: per-frame changes; collision group changes are usually infrequent.

DefaultPlayerEntity

Represents the default player model entity.

When to use: standard player avatars with built-in cosmetics and default controls. Do NOT use for: fully custom player rigs that don't match the default model's anchors/animations.

DefaultPlayerEntityController

The default player entity controller implementation.

When to use: player-controlled avatars using DefaultPlayerEntity. Do NOT use for: NPCs or non-player entities; use SimpleEntityController or PathfindingEntityController instead.

Entity

Represents a dynamic or static object in a world.

When to use: any non-player object that needs physics, visuals, or interactions. Do NOT use for: player-controlled avatars (use PlayerEntity / DefaultPlayerEntity). Do NOT use for: voxel blocks (use block APIs on ChunkLattice).

EntityManager

Manages entities in a world.

When to use: querying and filtering entities within a specific world. Do NOT use for: cross-world queries; access each world's manager separately.

EntityModelAnimation

Represents a single animation of the model used for an Entity.

When to use: controlling individual animation playback, blending, and looping on model entities. Do NOT use for: block entities (they have no model animations).

EntityModelNodeOverride

Represents a name-match model node override rule for an Entity.

When to use: configuring visual and transform overrides for one or more model nodes selected by name match.

ErrorHandler

Manages error and warning logging.

When to use: reporting recoverable issues or fatal errors with consistent formatting. Do NOT use for: normal control flow; prefer explicit return values or exceptions.

EventRouter

Routes events to listeners in local, world, or global scope.

When to use: event-driven hooks within server subsystems. Do NOT use for: high-frequency per-entity updates; prefer direct method calls for hot paths.

GameServer

Global entry point for server systems (players, worlds, assets).

When to use: accessing global managers and registries after startup. Do NOT use for: constructing your own server instance.

IterationMap

A high-performance Map-like data structure optimized for frequent iteration.

When to use: per-tick collections that are built, iterated, and cleared each frame. Do NOT use for: long-lived maps with rare iteration; a standard Map is simpler.

Matrix2

Represents a 2x2 matrix.

When to use: 2D transforms or linear algebra utilities. Do NOT use for: immutable math; most methods mutate the instance.

Matrix3

Represents a 3x3 matrix.

When to use: 2D homogeneous transforms or normal matrix math. Do NOT use for: immutable math; most methods mutate the instance.

Matrix4

Represents a 4x4 matrix.

When to use: 3D transforms (translation, rotation, scale) and camera math. Do NOT use for: immutable math; most methods mutate the instance.

ModelRegistry

Manages model data for all known models of the game.

When to use: querying model metadata (bounds, node names, animations, trimesh). Do NOT use for: runtime mesh editing; use dedicated tooling or physics colliders.

ParticleEmitter

Represents a particle emitter in the world. Emit 2D particles that always face the camera.

ParticleEmitterManager

Manages ParticleEmitter instances in a world.

When to use: querying or bulk-cleaning particle emitters for a world. Do NOT use for: configuring emitters; use ParticleEmitter instances directly.

PathfindingEntityController

A pathfinding entity controller built on top of SimpleEntityController.

When to use: obstacle-aware movement to a target coordinate. Do NOT use for: per-tick recalculation; pathfinding is synchronous and can be expensive.

PersistenceManager

Manages persistence of player and global data.

When to use: reading or writing persisted data shared across lobbies or per player. Do NOT use for: per-tick state; cache data in memory and write back periodically.

Player

A connected player in the game.

When to use: interacting with a connected player's state, UI, and world membership. Do NOT use for: constructing players or representing offline users.

PlayerCamera

The camera for a Player.

When to use: controlling a player's view, mode, and camera offsets. Do NOT use for: moving the player or entities; use entity movement APIs.

PlayerEntity

Represents an entity controlled by a player in a world.

When to use: custom player avatars that respond to player input. Do NOT use for: non-player NPCs; use Entity with a controller instead.

PlayerManager

Manages all connected players in a game server.

When to use: accessing online players, reacting to connection lifecycle events, or routing players to worlds. Do NOT use for: constructing or persisting players yourself; players are created automatically on connection.

PlayerUI

The UI for a player.

When to use: showing overlays, HUDs, menus, and custom UI for a specific player. Do NOT use for: world-level UI shared by all players; use scene UI systems instead.

Quaternion

Represents a quaternion.

When to use: rotation math for entities, cameras, or transforms. Do NOT use for: immutable math; most methods mutate the instance.

RigidBody

Represents a rigid body in a world's physics simulation.

When to use: physics-simulated or kinematic objects that need forces, collisions, or velocity. Do NOT use for: purely visual transforms; use entity transforms without physics when possible.

SceneUI

UI rendered within the 3D space of a world's game scene.

SceneUIManager

Manages SceneUI instances in a world.

When to use: querying or bulk-unloading scene UI elements in a world. Do NOT use for: player HUD/menus; use PlayerUI for per-player UI.

SimpleEntityController

A simple entity controller with basic movement functions.

When to use: straightforward movement and facing without pathfinding. Do NOT use for: obstacle-aware movement; use PathfindingEntityController.

Simulation

Represents the physics simulation for a world.

When to use: advanced physics queries, custom gravity, or debug rendering. Do NOT use for: typical movement; use entity/rigid body APIs instead.

Telemetry

Manages performance telemetry and error tracking through your Sentry account.

When to use: profiling and diagnosing slow ticks or runtime errors in production. Do NOT use for: high-volume custom metrics; use a dedicated metrics pipeline instead.

Vector2

Represents a 2D vector.

When to use: performance-sensitive math in game loops or geometry utilities. Do NOT use for: immutable math; most methods mutate the instance.

Vector3

Represents a 3-dimensional vector.

When to use: performance-sensitive 3D math and transforms. Do NOT use for: immutable math; most methods mutate the instance.

World

Represents an isolated simulation space (a world) on the server.

When to use: your primary container for game objects, physics, and players. Use multiple worlds to run separate rooms, arenas, or instances. Do NOT use for: cross-world global state; keep that in your own services or GameServer.

WorldLoop

Manages the tick loop for a world.

When to use: advanced scheduling or instrumentation of a world's tick cycle. Do NOT use for: normal lifecycle control—use World.start and World.stop.

WorldManager

Manages all worlds in a game server.

When to use: creating additional worlds, routing players, or querying the active world set. Do NOT use for: instantiating World directly for gameplay; use WorldManager.createWorld to ensure IDs and lifecycle are managed consistently.

Abstract Classes

Abstract Class

Description

BaseEntityController

A base class for entity controller implementations.

When to use: implementing custom entity behavior and movement logic. Do NOT use for: one-off entity changes; prefer direct entity APIs.

Enumerations

Enumeration

Description

AudioEvent

Event types an Audio instance can emit.

See AudioEventPayloads for the payloads.

**Category:** Events

BaseEntityControllerEvent

Event types a BaseEntityController instance can emit.

See BaseEntityControllerEventPayloads for the payloads.

**Category:** Events

BlockTypeEvent

Event types a BlockType instance can emit.

See BlockTypeEventPayloads for the payloads.

**Category:** Events

BlockTypeRegistryEvent

Event types a BlockTypeRegistry instance can emit.

See BlockTypeRegistryEventPayloads for the payloads.

**Category:** Events

ChatEvent

Event types a ChatManager instance can emit.

See ChatEventPayloads for the payloads.

**Category:** Events

ChunkLatticeEvent

Event types a ChunkLattice instance can emit.

See ChunkLatticeEventPayloads for the payloads.

**Category:** Events

CoefficientCombineRule

The coefficient for friction or bounciness combine rule.

**Category:** Physics

ColliderShape

The shapes a collider can be.

**Category:** Physics

CollisionGroup

The default collision groups.

EntityEvent

Event types an Entity instance can emit.

See EntityEventPayloads for the payloads.

**Category:** Events

EntityModelAnimationBlendMode

The blend mode of an entity model animation.

**Category:** Entities

EntityModelAnimationEvent

Event types an EntityModelAnimation instance can emit.

See EntityModelAnimationEventPayloads for the payloads.

**Category:** Events

EntityModelAnimationLoopMode

The loop mode of an entity model animation.

**Category:** Entities

EntityModelAnimationState

The state of an entity model animation.

**Category:** Entities

EntityModelNodeOverrideEvent

Event types an EntityModelNodeOverride instance can emit.

See EntityModelNodeOverrideEventPayloads for payloads.

**Category:** Events

GameServerEvent

Event types a GameServer instance can emit to the global event router.

See GameServerEventPayloads for the payloads.

**Category:** Events

ParticleEmitterEvent

Event types a ParticleEmitter instance can emit.

See ParticleEmitterEventPayloads for the payloads.

**Category:** Events

PlayerCameraEvent

Event types a PlayerCamera can emit.

See PlayerCameraEventPayloads for the payloads.

**Category:** Events

PlayerCameraMode

The mode of the camera.

**Category:** Players

PlayerEvent

Event types a Player can emit.

See PlayerEventPayloads for the payloads.

**Category:** Events

PlayerManagerEvent

Event types a PlayerManager can emit.

See PlayerManagerEventPayloads for the payloads.

**Category:** Events

PlayerUIEvent

Event types a PlayerUI can emit.

See PlayerUIEventPayloads for the payloads.

**Category:** Events

RigidBodyType

The types a RigidBody can be.

**Category:** Physics

SceneUIEvent

Event types a SceneUI instance can emit.

See SceneUIEventPayloads for the payloads.

**Category:** Events

SimulationEvent

Event types a Simulation instance can emit.

See SimulationEventPayloads for the payloads.

**Category:** Events

TelemetrySpanOperation

Performance telemetry span operation types.

**Category:** Telemetry

WorldEvent

Event types a World instance can emit.

See WorldEventPayloads for the payloads.

**Category:** Events

WorldLoopEvent

Event types a WorldLoop instance can emit.

See WorldLoopEventPayloads for the payloads.

**Category:** Events

WorldManagerEvent

Event types a WorldManager instance can emit to the global event router.

See WorldManagerEventPayloads for the payloads.

**Category:** Events

Functions

Function

Description

startServer(init)

Boots the server runtime, runs your init callback, and starts accepting connections.

Use for: normal server startup in your entry file. Do NOT use for: restarting an already running server within the same process.

Interfaces

Interface

Description

AudioEventPayloads

Event payloads for Audio emitted events.

**Category:** Events

AudioOptions

Options for creating an Audio instance.

Positional audio can be configured via AudioOptions.attachedToEntity or AudioOptions.position.

Use for: configuring audio before calling Audio.play. Do NOT use for: runtime updates after playback starts; use Audio.set* methods.

**Category:** Audio

BallColliderOptions

The options for a ball collider.

Use for: sphere-shaped colliders. Do NOT use for: other shapes; use the matching collider option type.

**Category:** Physics

BaseColliderOptions

The base options for a collider.

Use for: configuring colliders when creating entities or rigid bodies. Do NOT use for: runtime changes; use Collider methods instead.

**Category:** Physics

BaseEntityControllerEventPayloads

Event payloads for BaseEntityController emitted events.

**Category:** Events

BaseEntityOptions

The base options for an entity.

Use for: common entity configuration shared by block and model entities. Do NOT use for: runtime changes after spawn; use Entity setters instead.

**Category:** Entities

BaseRigidBodyOptions

The base options for a rigid body.

Use for: initial rigid body configuration when creating entities or bodies. Do NOT use for: runtime changes; use RigidBody setter methods instead.

**Category:** Physics

BlockColliderOptions

The options for a block collider.

Use for: axis-aligned box colliders. Do NOT use for: other shapes; use the matching collider option type.

**Category:** Physics

BlockEntityOptions

The options for creating a block entity.

Use for: entities rendered as blocks with a BlockType texture. Do NOT use for: model entities; use ModelEntityOptions.

**Category:** Entities

BlockPlacement

A block placement in world coordinates.

**Category:** Blocks

BlockTypeEventPayloads

Event payloads for BlockType emitted events.

**Category:** Events

BlockTypeOptions

Options for creating a block type instance.

Use for: defining new block types to register in a BlockTypeRegistry. Do NOT use for: placing blocks; use ChunkLattice.setBlock.

**Category:** Blocks

BlockTypeRegistryEventPayloads

Event payloads for BlockTypeRegistry emitted events.

**Category:** Events

CapsuleColliderOptions

The options for a capsule collider.

Use for: capsule-shaped colliders. Do NOT use for: other shapes; use the matching collider option type.

**Category:** Physics

ChatEventPayloads

Event payloads for ChatManager emitted events.

**Category:** Events

ChunkLatticeEventPayloads

Event payloads for ChunkLattice emitted events.

**Category:** Events

ConeColliderOptions

The options for a cone collider.

Use for: cone-shaped colliders. Do NOT use for: other shapes; use the matching collider option type.

**Category:** Physics

CylinderColliderOptions

The options for a cylinder collider.

Use for: cylinder-shaped colliders. Do NOT use for: other shapes; use the matching collider option type.

**Category:** Physics

DefaultPlayerEntityControllerOptions

Options for creating a DefaultPlayerEntityController instance.

Use for: configuring default player movement and animation behavior at construction time. Do NOT use for: per-frame changes; override methods or adjust controller state instead.

**Category:** Controllers

DynamicRigidBodyOptions

The options for a dynamic rigid body, also the default type.

Use for: physics-driven bodies affected by forces and collisions. Do NOT use for: kinematic bodies; use the kinematic option types instead.

**Category:** Physics

EntityEventPayloads

Event payloads for Entity emitted events.

**Category:** Events

EntityModelAnimationEventPayloads

Event payloads for EntityModelAnimation emitted events.

**Category:** Events

EntityModelAnimationOptions

The options for creating an EntityModelAnimation instance.

**Category:** Entities

EntityModelNodeOverrideEventPayloads

Event payloads for EntityModelNodeOverride emitted events.

**Category:** Events

EntityModelNodeOverrideOptions

The options for creating an EntityModelNodeOverride instance.

**Category:** Entities

EventPayloads

The payloads for all events in the game server.

**Category:** Events

FixedRigidBodyOptions

The options for a fixed rigid body.

Use for: immovable bodies (world geometry, static platforms). Do NOT use for: moving objects; use dynamic or kinematic options.

**Category:** Physics

GameServerEventPayloads

Event payloads for GameServer emitted events.

**Category:** Events

KinematicPositionRigidBodyOptions

The options for a kinematic position rigid body.

Use for: moving bodies by setting target positions each tick. Do NOT use for: physics-driven motion; use dynamic bodies instead.

**Category:** Physics

KinematicVelocityRigidBodyOptions

The options for a kinematic velocity rigid body.

Use for: moving bodies by setting velocities each tick. Do NOT use for: physics-driven motion; use dynamic bodies instead.

**Category:** Physics

ModelEntityOptions

The options for creating a model entity.

Use for: entities rendered from a glTF model. Do NOT use for: block entities; use BlockEntityOptions.

**Category:** Entities

NoneColliderOptions

The options for an error type "none" collider.

Use for: explicitly disabling collider creation. Do NOT use for: physical interactions; no collider will be created.

**Category:** Physics

Outline

The options for rendering an outline.

**Category:** Types

ParticleEmitterEventPayloads

Event payloads for ParticleEmitter emitted events.

**Category:** Events

ParticleEmitterOptions

Options for creating a ParticleEmitter instance.

Use for: configuring an emitter before calling ParticleEmitter.spawn. Do NOT use for: runtime updates after spawn; use ParticleEmitter.set* methods.

**Category:** Particles

PlayerCameraEventPayloads

Event payloads for PlayerCamera emitted events.

**Category:** Events

PlayerEventPayloads

Event payloads for Player emitted events.

**Category:** Events

PlayerManagerEventPayloads

Event payloads for PlayerManager emitted events.

**Category:** Events

PlayerUIEventPayloads

Event payloads for PlayerUI emitted events.

**Category:** Events

QuaternionLike

A quaternion.

**Category:** Math

RgbColor

An RGB color. r, g, and b expect a value between 0 and 255.

**Category:** Types

RoundCylinderColliderOptions

The options for a round cylinder collider.

Use for: rounded cylinder colliders. Do NOT use for: other shapes; use the matching collider option type.

**Category:** Physics

SceneUIEventPayloads

Event payloads for SceneUI emitted events.

**Category:** Events

SceneUIOptions

Options for creating a SceneUI instance.

Use for: configuring scene UI before SceneUI.load. Do NOT use for: runtime updates after load; use SceneUI.set* methods.

**Category:** UI

SimulationEventPayloads

Event payloads for Simulation emitted events.

**Category:** Events

SpdMatrix3

A 3x3 symmetric positive-definite matrix for spatial dynamics.

**Category:** Math

TrimeshColliderOptions

The options for a trimesh collider.

Use for: mesh-based colliders from model data. Do NOT use for: simple primitives; prefer analytic shapes when possible.

**Category:** Physics

Vector2Boolean

A 2-dimensional vector of boolean values.

**Category:** Math

Vector2Like

A 2-dimensional vector.

**Category:** Math

Vector3Boolean

A 3-dimensional vector of boolean values.

**Category:** Math

Vector3Like

A 3-dimensional vector.

**Category:** Math

VoxelsColliderOptions

The options for a voxels collider.

Use for: voxel-based colliders (block volumes). Do NOT use for: simple primitives; prefer analytic shapes when possible.

**Category:** Physics

WedgeColliderOptions

The options for a wedge collider.

Use for: wedge-shaped colliders (inclined planes). Do NOT use for: other shapes; use the matching collider option type.

**Category:** Physics

WorldEventPayloads

Event payloads for World emitted events.

**Category:** Events

WorldLoopEventPayloads

Event payloads for WorldLoop emitted events.

**Category:** Events

WorldManagerEventPayloads

Event payloads for WorldManager emitted events.

**Category:** Events

WorldMap

A map representation for initializing a world.

Use for: importing static maps or tooling exports via World.loadMap. Do NOT use for: incremental edits while a world is live; use chunk/block APIs instead.

WorldOptions

Options for creating a World instance.

Use for: initializing a world and its environment at construction time. Do NOT use for: runtime changes; use the corresponding set* methods on World.

Variables

Variable

Description

BLOCK_ROTATIONS

All valid block rotations, named as {face pointing up}_{Y rotation degrees}.

N prefix = negative axis (e.g. NZ_90 = -Z face up, rotated 90° around global Y).

**Category:** Blocks

DEFAULT_ENTITY_RIGID_BODY_OPTIONS

The default rigid body options for a model entity when EntityOptions.rigidBodyOptions is not provided.

**Category:** Entities

SUPPORTED_INPUTS

The inputs that are included in PlayerInput.

**Category:** Players

Type Aliases

Type Alias

Description

BlockRotation

A block rotation from BLOCK_ROTATIONS.

**Category:** Blocks

BlockTextureMetadata

Block texture metadata including UVs and rendering hints.

**Category:** Textures

ColliderOptions

The options for a collider.

Use for: providing collider definitions when creating rigid bodies or entities. Do NOT use for: runtime changes; use Collider APIs instead.

**Category:** Physics

CollisionCallback

A callback function that is called when a collision occurs.

CollisionGroups

A set of collision groups.

**Category:** Physics

CommandCallback

A callback function for a chat command.

ContactForceData

Data for contact forces.

**Category:** Physics

ContactManifold

A contact manifold.

**Category:** Physics

DecodedCollisionGroups

A decoded set of collision groups represented as their string equivalents.

**Category:** Physics

DefaultPlayerEntityOptions

Options for creating a DefaultPlayerEntity instance.

Use for: customizing the default player avatar (for example cosmetic visibility). Do NOT use for: changing movement behavior; use DefaultPlayerEntityControllerOptions.

**Category:** Entities

EntityOptions

The options for creating an Entity instance.

Use for: constructing an entity; choose BlockEntityOptions or ModelEntityOptions. Do NOT use for: mutating entity state after spawn; use entity setters and methods.

**Category:** Entities

FaceCallback

Callback invoked as the entity rotates toward a target.

FaceCompleteCallback

Callback invoked when the entity finishes rotating to face a target.

FaceOptions

Options for SimpleEntityController.face.

Use for: customizing a single face() call (callbacks, completion). Do NOT use for: persistent defaults; use SimpleEntityControllerOptions.

**Category:** Controllers

FilterOptions

Filter options for raycasting and intersection queries.

Use for: scoping physics queries to specific colliders or groups. Do NOT use for: persistent collision configuration; use CollisionGroupsBuilder.

**Category:** Physics

IntersectionResult

An intersection result.

**Category:** Physics

ModelBoundingBox

A bounding box for a model.

**Category:** Models

ModelTrimesh

A trimesh for a model.

**Category:** Models

MoveCallback

Callback invoked as the entity moves toward a target coordinate.

MoveCompleteCallback

Callback invoked when the entity reaches the target coordinate.

MoveOptions

Options for SimpleEntityController.move.

Use for: customizing a single move() call. Do NOT use for: persistent defaults; use SimpleEntityControllerOptions.

**Category:** Controllers

ParticleEmitterOrientation

The orientation mode for particles.

**Category:** Particles

PathfindAbortCallback

Callback invoked when pathfinding aborts.

**Category:** Controllers

PathfindCompleteCallback

Callback invoked when pathfinding completes and the entity reaches the target.

**Category:** Controllers

PathfindingOptions

Options for PathfindingEntityController.pathfind.

Use for: configuring a single pathfinding request. Do NOT use for: per-tick recalculation; call pathfind sparingly.

**Category:** Controllers

PlayerCameraOrientation

The camera orientation state of a Player.

**Category:** Players

PlayerCosmetics

The cosmetics of a player.

**Category:** Networking

PlayerCosmeticsEquippedItem

An equipped item of a player's cosmetics.

**Category:** Networking

PlayerCosmeticSlot

The slots used for player cosmetics.

**Category:** Entities

PlayerEntityOptions

Options for creating a PlayerEntity instance.

Use for: creating a player-bound entity (requires player). Do NOT use for: non-player entities; use EntityOptions.

**Category:** Entities

PlayerInput

The input state of a Player.

**Category:** Players

RawCollider

A raw collider object from the Rapier physics engine.

**Category:** Physics

RawCollisionGroups

A raw set of collision groups represented as a 32-bit number.

**Category:** Physics

RawShape

A raw shape object from the Rapier physics engine.

**Category:** Physics

RaycastHit

A hit result from a raycast.

**Category:** Physics

RaycastOptions

Options for raycasting.

Use for: configuring Simulation.raycast calls. Do NOT use for: caching long-term query state; build per query.

**Category:** Physics

RigidBodyAdditionalMassProperties

Additional mass properties for a RigidBody.

**Category:** Physics

RigidBodyOptions

The options for a rigid body.

Use for: constructing rigid bodies; choose an option type matching RigidBodyType. Do NOT use for: runtime changes; use RigidBody methods instead.

**Category:** Physics

TelemetrySpanOptions

Options for creating a telemetry span.

Use for: configuring Telemetry.startSpan calls. Do NOT use for: long-lived spans; keep spans short and scoped to a task.

**Category:** Telemetry

WaypointMoveCompleteCallback

Callback invoked when the entity finishes moving to a waypoint.

WaypointMoveSkippedCallback

Callback invoked when a waypoint is skipped due to timeout.