# Debug commands of @ferret/physics-actuators, @ferret/physics-rotor

Call with `world.commands.execute(name, args)`; `world.commands.list()` on the running game is the authority. Read from the sources of these packages.

- `actuator.arrows` — what the inspector draws: a force arrow at its point (length by magnitude, colour by kind) and a torque arc for each running actuator, with phase, power and work
- `actuator.command` — set the run-time multiplier of an actuator: {name, command}
- `actuator.fire` — run an actuator from the start (one impulse or one cycle): {name}
- `actuator.off` — switch an actuator off: {name}
- `actuator.on` — switch an actuator on: {name}
- `actuator.profile` — sample a profile for the editor preview: {profile, from?, to?, samples?} -> [[x, value]] (checked like an actuator profile)
- `actuator.state` — force, torque, power, work, phase of one actuator, or all: {name?}
- `edit.motion.list` — the motion files of the level
- `edit.motion.remove` — remove a motion file and stop its programs: {name}
- `edit.motion.set` — add or replace a motion file: {name, source: text or JSON}; its programs start (a (bind "Node" …) form gets a target) -> started ids
- `edit.physics.actuator.list` — the actuator definitions of the level
- `edit.physics.actuator.remove` — remove an actuator: {name}
- `edit.physics.actuator.set` — add or replace an actuator: {name, node, kind, ...} (checked against the schema)
- `edit.physics.binding.list` — the bindings of the level
- `edit.physics.binding.remove` — remove a binding: {name}
- `edit.physics.binding.set` — bind an actuator to an input action, an interactable, a zone or an event, or to an animation: {actuator, action|interactable|zone|event, as, ...}
- `motion.eval` — REPL: run a program to its first wait and return its value and state: {source, target?, params?}
- `motion.pause` — pause a program: {id}
- `motion.resume` — resume a program: {id}
- `motion.run` — start a program: {program: text or JSON, target?: node, params?} -> {id}
- `motion.set` — set a parameter of a running program: {id, param, value}
- `motion.state` — what a program is doing (the form, what it waits on, params, error), or all: {id?}
- `motion.stop` — stop a program: {id}
- `motion.trigger` — raise a trigger a program waits for: {id, trigger}
- `edit.physics.rotor.list` — the rotor definitions of the level
- `edit.physics.rotor.remove` — remove a rotor: {name}
- `edit.physics.rotor.set` — add or replace a rotor: {name, node|shaft, axis, radius, elements, ...} (checked against the schema)
- `rotor.command` — the multiplier of the water into the buckets (a sluice): {name, command}
- `rotor.pitch` — set the pitch of a rotor's blades (rad or "5deg"): {name, pitch}
- `rotor.state` — speed, torque, power, thrust, tip-speed ratio, flow at the rotor, bucket fill: {name?}
