> ## Documentation Index
> Fetch the complete documentation index at: https://docs-unity.molca.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Scenario mode drivers

> IScenarioModeDriver, SimulationScenarioModeDriver, and TourScenarioModeDriver.

**Interface:** `Assets/_MolcaSDK/_VR/Scripts/Scenario/Drivers/IScenarioModeDriver.cs`

## Contract

`Initialize(ScenarioManager, BaseScenarioData)`, `OnBeforeScenarioStart`, `OnScenarioStarted`, `OnScenarioUpdate`, lifecycle hooks for complete/timeout/fail, `OnNodeCompleted`, `OnProgressCommitted`, `OnScenarioStop`, `GetScenarioKind()`.

## Implementations

* **`SimulationScenarioModeDriver`**
* **`TourScenarioModeDriver`**

[ScenarioManager](/vr/scenario-manager) selects the driver from the scenario data **kind** so branching stays out of the manager itself.

```mermaid theme={null}
flowchart TD
  SD["BaseScenarioData asset"] --> K{Scenario kind}
  K -->|Simulation| SIM["SimulationScenarioModeDriver"]
  K -->|Tour| TOUR["TourScenarioModeDriver"]
  SIM --> M[ScenarioManager delegates lifecycle hooks]
  TOUR --> M
```

At runtime the active driver receives `OnScenarioStarted`, `OnScenarioUpdate`, `OnScenarioComplete`, `OnScenarioTimeout`, `OnScenarioFail`, and related calls from `ScenarioManager`.

## Unity Editor

<Frame hint="Optional: debug break or custom editor showing active driver — or document in prose only and skip image." caption="Mode driver selection (scenario data asset or runtime)">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/ptmolcateknologinusantara/images/features/vr/scenario-mode-driver.png" alt="Unity Editor context for scenario mode driver" />
</Frame>
