# play.measure

> Talos next · Since 0.6; changed in next

Step Play tick by tick with actions held over chosen ticks, reading entity fields after each: per field first, final, min and max with the tick; the first tick each condition held; rows on request.

For jump apex, run speed, time to a target. A despawn is recorded (despawned), not an error. Leaves the world paused, keys up.

| | |
|---|---|
| Title | Measure a run |
| Mode | `editor` |
| Token cost | about 321 tokens (listed only when its toolset is enabled) |
| Toolset | `measure` |

## Arguments

| Argument | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `agent` | `string` | no |  |  | The name of the agent making the call, when several agents share one connection: each named agent is its own actor and plays its own game. Leave it out when there is one agent. |
| `every` | `integer` | no | `1` |  | Sample every N ticks |
| `inputs` | `object[]` | no |  |  | [{name, value?, from?, to?}]: an action held from tick from (0) to to (end); value as play.input's |
| `rows` | `boolean` | no |  |  | Include the sampled rows |
| `sample` | `object[]` | no |  |  | [{entity, field}]: field a dotted path into /entity/{id} (position.y, script.state.x), or speed (horizontal m/s) |
| `stopOnError` | `boolean` | no |  |  |  |
| `ticks` | `integer` | no | `60` |  | 1/60 s each |
| `when` | `object[]` | no |  |  | [{entity, field, op, value, stop?}]: op is > >= < <= == != changes; or [{event, stop?}] |

## Example

An MCP `tools/call` with the required arguments (placeholders in angle brackets).

```json
{
  "name": "play.measure",
  "arguments": {}
}
```
