Skip to content

Controls and action keys

All regular controls require control_enabled=true. Unless stated otherwise, authority also requires the target to be the controlled vessel when control_all_vessels=false. Write the same raw value to the leaf through /v1/fs/<path> or publish to the MQTT /set topic.

PathValuePhase / action
ctl/throttle0..1Frame, vessel.throttle
ctl/ignite, ctl/shutdown, ctl/stage1 trigger, optional engine index for ignite/shutdownFrame
ctl/engineindex 0 or 1Frame, engine.active
ctl/lights0 or 1Frame, vessel.lights
ctl/rcs0 or 1Frame, vessel.rcs
ctl/rcs_modeEnabled or DisabledSolver, vessel.rcs_mode
ctl/translatebody-axis signs x y zSolver; latches until 0 0 0
ctl/rotatebody-axis signs x y zSolver; latches until zero
ctl/attitude_modeattitude tokenSolver
ctl/attitude_frameEclBody, EnuBody, Lvlh, VlfBody, BurnBody, DockSolver
ctl/attitude_targetBody to CCI x y z wSolver, selects Custom
ctl/burnut dvx dvy dvzSolver; UT seconds, CCI Δv m/s
ctl/focus1Frame, camera focus

Manual translation maps +x to thrust along the nose. Manual rotation maps +x roll-right, +y pitch-up, +z yaw-right. Both require RCS mode Enabled; KSA clears their latched flags on focus loss, camera-mode switches, ImGui keyboard focus, vessel switch, and warp above 30×. Full manual rotation also needs manual attitude mode because automatic attitude strips those bits.

POST /v1/command and MQTT gatos/command use logical action keys. The key families are:

FamilyKeys
vesselvessel.throttle, vessel.ignite, vessel.shutdown, vessel.stage, vessel.lights, vessel.rcs, vessel.rcs_mode, vessel.translate, vessel.rotate, vessel.attitude_mode, vessel.attitude_frame, vessel.attitude_target, vessel.burn, vessel.focus, vessel.scale, vessel.always_render
modulesengine.active, engine.min_throttle, rcs.active, light.on, light.brightness, light.color, light.outer_angle, light.inner_angle, animation.goal, docking.undock, decoupler.fire
debugdebug.teleport, debug.impulse, debug.refill_fuel, debug.refill_battery, debug.warp, debug.focus, debug.control_vessel, weld, IVA, thug-life, and FX actions
mediaaudio.play, audio.set, audio.stop, all camera.* actions
schedulingschedule.pause, schedule.scrub, schedule.rate, schedule.loop, schedule.stop, schedule.remove, schedule.clear

For an HTTP/MQTT client, these are the remaining exact action keys. Their leaf-shaped grammar is documented on the linked feature pages; ordinal selects a module/object where the table says n or id.

FamilyExact keys
debug worlddebug.control_vessel, debug.teleport, debug.impulse, debug.refill_fuel, debug.refill_battery, debug.docking_pushoff, debug.warp, debug.always_render_iva
debug weldsdebug.weld_create, debug.weld_here, debug.weld_remove, debug.weld_enable, debug.weld_clear
debug cosmeticsdebug.thug_life_add, debug.thug_life_remove, debug.thug_life_clear, debug.thug_life_position, debug.thug_life_rotation, debug.thug_life_size, debug.thug_life_visible
debug IVAdebug.iva_physics, debug.iva_run_outside_iva, debug.iva_adopt, debug.iva_adopt_all, debug.iva_release, debug.iva_clear, debug.iva_nudge
debug FXdebug.engineplume_set, debug.engineplume_reset, debug.plumetrail_set, debug.plumetrail_reset, debug.plumetrail_clear, debug.clouds_set, debug.clouds_reset, debug.terrain_set, debug.terrain_reset
audioaudio.play, audio.set, audio.stop
scheduleschedule.pause, schedule.scrub, schedule.rate, schedule.loop, schedule.stop, schedule.remove, schedule.clear
camera ownershipcamera.enabled, camera.release, camera.mode, camera.follow, camera.tidal, camera.map_scope
camera posecamera.position, camera.frame, camera.anchor, camera.geo, camera.orbit_radius, camera.orbit_azimuth, camera.orbit_elevation, camera.rotation, camera.aim, camera.aim_target, camera.aim_offset, camera.aim_frame, camera.aim_up, camera.roll, camera.fov, camera.ortho, camera.ortho_height, camera.smoothing, camera.pose_reset
camera playbackcamera.play, camera.set, camera.stop

debug.impulse accepts a cci or body frame token and ns or dv unit selector. debug.weld_create takes target ID plus part ID, offset, Euler rotation, and lock flag; debug.weld_here takes target, part, and lock. audio.play accepts clip token plus start/end ms, volume, loop, pan, pitch, and group. Camera and playback controls are authority-exempt but respect their feature gates. Prefer leaf writes for shell work; use the logical envelope when the caller is not naturally filesystem-shaped.