Skip to content

gatos.schedule_batch

tool Scheduling

Create a typed timed command sequence on render, wall, or UT time.

Use when
Commands need absolute offsets, mixed phases, looping, catch-up, or lifecycle controls.
Availability
schedule_enabled plus each entry's action gates at execution time.

Input

FieldTypeRequirementDescription
entriesschedule_entry[]RequiredEntries shaped as {at_ms, command}; equal offsets preserve authored order.
idstring | nullOptional · generatedOptional player id, reserved only after complete validation.
groupstring | nullOptional · nullOptional schedule group.
clock"render" | "wall" | "ut"Optional · "wall"Existing playback clock base.
ratenumberOptional · 1Initial playback rate.
loopbooleanOptional · falseLoop when the duration is reached.

Call example

gatos.schedule_batch({"id":"launch-seq","group":"launch","clock":"wall","entries":[{"at_ms":0,"command":{"action":"vessel.throttle","vessel_id":"Hunter","value":1}},{"at_ms":1200,"command":{"action":"vessel.ignite","vessel_id":"Hunter","value":1}}]})

Result

Assigned id, entry count, clock, rate, and loop state immediately after submission.

Errors

  • EOPNOTSUPP when schedules are disabled; EINVAL for clock, id/group, rate, offsets, actions, or shared entry/byte/live limits.

Operational notes

  • Mixed Frame/Solver phases are allowed because entries execute at their own times.
  • Catch-up preserves triggers and coalesces state controls by canonical action/vessel/ordinal key.
  • Offsets and player positions are milliseconds.