> ## 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.

# VR content hierarchy (simulation & tour)

> From settings modules to scenario assets; then activities and steps (simulation) or tour areas and spots (tour).

This page describes **how VR training content is structured** in the Molca VR SDK: configuration **modules**, **scenario** data and runtime, then either **activities and steps** (simulation) or **tour areas and spots** (tour). It complements [VR architecture](/vr/architecture) with a **content tree**.

**Product:** [Molca VR SDK](/overview/platforms) (`_MolcaSDK/_VR`). Molca Core supplies [Step](/core/step) and [SequenceController](/core/sequence-controller); the Digital Twin SDK does not use this scenario model ([DT overview](/dt/overview)).

## End-to-end hierarchy

```mermaid theme={null}
flowchart TB
  subgraph config["Modules & Setting"]
    MPS[MolcaProjectSettings]
    RMprefab[RuntimeManager prefab]
    GS[GlobalSettings]
    SDC[ScenarioDataConfig + other SettingModules]
    MPS --> RMprefab
    MPS --> GS
    GS --> SDC
  end

  subgraph scenarioLayer["Scenario"]
    BSD[BaseScenarioData asset]
    Kind{Kind}
    SimData[SimulationScenarioData]
    TourData[TourScenarioData]
    SM[ScenarioManager in scene]
    BSD --> Kind
    Kind --> SimData
    Kind --> TourData
    SDC -->|collections / lookup| BSD
    SimData --> SM
    TourData --> SM
  end

  subgraph sim["Simulation"]
    Acts[ScenarioActivity array]
    Seq[SequenceController]
    Steps[Step tree + auxiliaries]
    DriverSim[SimulationScenarioModeDriver]
    SM --> Acts
    SM --> DriverSim
    Acts --> Seq
    Seq --> Steps
  end

  subgraph tour["Tour"]
    DriverTour[TourScenarioModeDriver]
    TourSys[TourSubsystem]
    Areas[Tour areas / additive scenes]
    Spots[TourSpotController]
    SM --> DriverTour
    DriverTour --> TourSys
    TourSys --> Areas
    Areas --> Spots
  end
```

**Dependency direction:** **modules** register where scenarios live and how the app boots; **scenario data** selects simulation vs tour and is referenced by **ScenarioManager**; **simulation** drives ordered **activities** and **steps**; **tour** drives **TourSubsystem** (areas and spots), not the sequence graph.

## 1. Modules and settings

| Piece                                                 | Role                                                                                                      |
| ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| [MolcaProjectSettings](/setup/molca-project-settings) | Picks the **RuntimeManager prefab** and **GlobalSettings** asset used at startup.                         |
| [GlobalSettings](/setup/global-settings)              | Bag of **`SettingModule`** assets (VR catalog, execution mode, etc.).                                     |
| [ScenarioDataConfig](/setup/scenario-data-config)     | **Scenario collections**, execution/player mode, lookup by id — how runtime finds **`BaseScenarioData`**. |

Other `SettingModule` types may appear in the same bag for media, modals, or networking; **ScenarioDataConfig** is the one most authors touch for **which scenarios exist** in the build or after a content fetch.

Together, these are the **module layer**: they are not gameplay sequences themselves, but they **wire** the app to scenario assets and session behavior.

## 2. Scenario (asset and runtime)

* **Asset:** `BaseScenarioData` in `Scenario/Data/` — concrete types include **`SimulationScenarioData`** and **`TourScenarioData`** (see [VR architecture glossary](/vr/architecture)).
* **Runtime:** [ScenarioManager](/vr/scenario-manager) holds **`scenarioData`**, **`activities`** (used for **simulation**), timers, pause, and session hooks.
* **Branching:** [Scenario mode drivers](/vr/scenario-mode-drivers) implement simulation vs tour lifecycle (`SimulationScenarioModeDriver` vs `TourScenarioModeDriver`) so the manager stays a single orchestration point.

**Simulation** scenarios attach **time limits** and **activity lists** on the data side where applicable; **tour** scenarios pair with [TourSubsystem](/vr/tour/tour-subsystem) for world navigation.

## 3a. Simulation: activity → step

Simulation training is **sequential**: users complete **activities**, each backed by a Molca Core **sequence**.

| Level           | Type / concept                                    | Notes                                                                                                                                                    |
| --------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Activity**    | [ScenarioActivity](/vr/scenario-activity)         | Listed on ScenarioManager; owns a **SequenceController** and root **Step** list; ties into [activity scoring](/vr/scoring/activity-scoring) and session. |
| **Sequence**    | [SequenceController](/core/sequence-controller)   | Advances the **root steps** (and nested children such as parallel groups).                                                                               |
| **Step**        | [Step](/core/step)                                | One unit of training logic; **VR step** subclasses live under **VR steps** in the docs nav. Completes when self and **child** steps complete.            |
| **Auxiliaries** | [Step auxiliaries](/vr/steps/vr-step-auxiliaries) | Optional behaviors on a step (scoring, haptics, UI hints).                                                                                               |

Typical author flow: define **scenario data** → place **ScenarioManager** + **ScenarioActivity** entries in the scenario scene → assign **root steps** under each activity → add VR **Step** components for grabs, valves, teleports, etc.

## 3b. Tour: area → spot (not step-based)

**Tour** uses **exploration**, not the same activity/step graph as simulation.

| Level         | Type / concept                                      | Notes                                                                                       |
| ------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| **Subsystem** | [TourSubsystem](/vr/tour/tour-subsystem)            | `RuntimeSubsystem`: loads **areas**, teleports to **spots**, optional **home** scene.       |
| **Area**      | [Tour area and spots](/vr/tour/tour-area-and-spots) | Often an **additive scene** managed per tour data.                                          |
| **Spot**      | `TourSpotController`                                | Teleport target; may surface **informational materials** (tour “content” at that location). |

Progress and session posting still go through the same **scenario/session** stack; the **mode driver** routes lifecycle into **TourSubsystem** instead of stepping activities.

## Simulation vs tour (quick comparison)

|                           | **Simulation**                  | **Tour**                                               |
| ------------------------- | ------------------------------- | ------------------------------------------------------ |
| **Scenario data**         | `SimulationScenarioData`        | `TourScenarioData`                                     |
| **Primary runtime**       | Activities + sequences + steps  | [TourSubsystem](/vr/tour/tour-subsystem) + areas/spots |
| **Designer mental model** | Ordered tasks / checklist       | Free roam + hotspots                                   |
| **Molca Core**            | Heavy use of [Step](/core/step) | Steps optional only if you add custom hybrid flows     |

## Related

* [Architecture](/overview/architecture) — Core vs products (neutral)
* [VR assets and scenes](/vr/sdk-assets-and-scenes) — `BaseScenarioData` vs scenario / shell / tour scenes
* [Runtime and settings](/overview/runtime-and-settings) — bootstrap from `MolcaProjectSettings` to subsystems
* [ScenarioManager](/vr/scenario-manager) — scene orchestration
* [New scenario quick start](/setup/new-scenario-quickstart) — asset-to-scene workflow
