> For the complete documentation index, see [llms.txt](https://docs.rootcause.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rootcause.ai/more-details/applications/application-modules/scenarioinput.md).

# Scenario Input

> Lets viewers of the published app adjust simulation parameters within your bounds.

Turns a viewer's controls into a scenario a sim can run.

The bridge between a dashboard and a twin: `controls` are rendered as the scenario widget, and what the viewer sets rides out of `scenario` into any sim's `scenario` port, merging over whatever that sim has saved.

## At a glance

|                          |                       |
| ------------------------ | --------------------- |
| Module type              | `ScenarioInput`       |
| Category                 | Inputs                |
| Default tier             | `reactive`            |
| Runs on                  | `reactive`, `durable` |
| Starts a flow            | no                    |
| Holds a body             | no                    |
| Keeps state between runs | no                    |
| Available in             | `dashboard`           |

## Parameters

### `controls`

`object[]` · required · defaults to `[]`

The controls a viewer sets. Each has an `id`, the `variable` it drives, the `control` to render — a slider, a picker, a direct value — and the bounds that control is held to.

### `digitalTwinId`

`string | null` · optional · defaults to `""`

The twin whose variables the controls are built from.

## Inputs

| Port | Kind    | Required | Description                                                                                                                           |
| ---- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `on` | `event` | no       | Implicit on every module that does not itself start a flow: wire an event here to make this module the start of what that event runs. |

## Outputs

| Port       | Kind   | Connects to                | Description                                                          |
| ---------- | ------ | -------------------------- | -------------------------------------------------------------------- |
| `scenario` | `json` | `json`, `scalar`, `signal` | The viewer's settings, in the shape a sim's `scenario` port expects. |

***

[← All application modules](/more-details/applications/application-modules.md)
