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

# KnobStep

> Completes when KnobInteraction reaches a target angle.

**File:** `Assets/_MolcaSDK/_VR/Scripts/Scenario/Steps/KnobStep.cs`\
**Base:** [Step](/core/step)

## When to use

Use `Knob Step` when a VR training scenario needs this specific interaction as a step in a sequence. Configure entirely in the Inspector — no code required.

## Role

Same pattern as [ValveStep](/vr/steps/valve-step) but targets [Knob interaction](/vr/interactions/knob-interaction).

## Code

Same lifecycle as **[ValveStep](/vr/steps/valve-step)**: resolve **`knobInteractionRef`**, **`SubscribeToAngle`**, **`OnTargetAngleReached`** → **`Complete()`**; optional **`AnalogFeedbackUI`** and **`autoManageLock`**.

```csharp theme={null}
using MolcaSDK.VR.Scenario;

public class KnobLesson : UnityEngine.MonoBehaviour
{
    public KnobStep step;

    public void ApplyDifficulty(float degrees) => step.SetTargetAngle(degrees);
    public float CurrentTarget => step.GetTargetAngle();
}
```

## Troubleshooting

* **Mirror of valve issues** — See [ValveStep](/vr/steps/valve-step) (reference resolution, angle range, lock). For **snap** knobs, confirm discrete positions align with **`targetAngle`** ([Knob interaction](/vr/interactions/knob-interaction)).

## Related

* [Knob interaction](/vr/interactions/knob-interaction)
* [ValveStep](/vr/steps/valve-step) — parallel pattern
* [Reference system](/core/reference-system) — **`SceneObjectReference`**

## Unity Editor

<Frame hint="KnobStep Inspector with knob interaction reference." caption="KnobStep Inspector">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/ptmolcateknologinusantara/images/features/vr/steps/knob-step-inspector.png" alt="KnobStep in Unity Inspector" />
</Frame>
