# play.desync

> Talos next · Since next

Where two runs part: on {every} hashes each sim system per tick; compare {ticks} (another run's read with leaves) names the first tick, system and entity; dump {system, entity} the state.

on {resim: true, depth?} re-runs each tick from a snapshot depth ticks back (try 8) and reports the first difference.

| | |
|---|---|
| Title | Desync finder |
| Mode | `editor` |
| Token cost | about 205 tokens (listed only when its toolset is enabled) |
| Toolset | `profile` |

## Arguments

| Argument | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `action` | `enum` | yes |  | `on`, `off`, `read`, `report`, `dump`, `compare` |  |
| `dense` | `any[]` | no |  |  |  |
| `depth` | `integer` | no |  |  |  |
| `entity` | `string` | no |  |  |  |
| `every` | `integer` | no |  |  |  |
| `from` | `integer` | no |  |  |  |
| `leaves` | `boolean` | no |  |  |  |
| `resim` | `boolean` | no |  |  |  |
| `system` | `string` | no |  |  |  |
| `ticks` | `any[]` | no |  |  |  |
| `to` | `integer` | no |  |  |  |

## Example

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

```json
{
  "name": "play.desync",
  "arguments": {
    "action": "on"
  }
}
```
