---
url: /api/kiln/classes/Replayer.md
---
[Kiln API](../../index.md) / [kiln](../index.md) / Replayer

# Class: Replayer

Plays a recording on an app that hasn't run Startup. Call `play()` to advance (all frames, or
up to a frame); the app can be inspected and stepped between calls.

## Constructors

### Constructor

```ts
new Replayer(app, recording): Replayer;
```

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `app` | [`App`](App.md) |
| `recording` | [`Recording`](../interfaces/Recording.md) |

#### Returns

`Replayer`

## Properties

### recording

```ts
readonly recording: Recording;
```

## Accessors

### frame

#### Get Signature

```ts
get frame(): number;
```

Frames played so far.

##### Returns

`number`

***

### done

#### Get Signature

```ts
get done(): boolean;
```

True once every recorded frame has played.

##### Returns

`boolean`

***

### status

#### Get Signature

```ts
get status(): ReplayResult;
```

##### Returns

[`ReplayResult`](../interfaces/ReplayResult.md)

## Methods

### warnOnce()

```ts
warnOnce(text): void;
```

Adds a note to the result, once per distinct text. Plugins call it when a replay can't apply something.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `text` | `string` |

#### Returns

`void`

***

### play()

```ts
play(until?): Promise<ReplayResult>;
```

Plays to frame `until` (default: the end). Events emitted during the replay stay readable with app.events(E).

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `until` | `number` |

#### Returns

`Promise`<[`ReplayResult`](../interfaces/ReplayResult.md)>
