# Advanced: Manual Step Calls

Here, we work with the step-calling logic manually using public wrapper methods in the TutorialSceneReferences (TSR).

1. In the script from which you will call the step, **create a reference to TSR**. For example:\
   `[SerializeField] private TutorialSceneReferences sceneReferences;`
2. Use public method calls depending on the desired result:

<table><thead><tr><th width="216">Method in TSR</th><th width="260">Description</th><th>Call Example</th></tr></thead><tbody><tr><td>IsStepDisplaying(int stepIndex)</td><td>Check whether a step is currently being played.</td><td>if (IsStepDisplaying(0)) {}</td></tr><tr><td>IsStepDone(int stepIndex)</td><td>Check whether a step has been completed.</td><td>if (IsStepDone(0)) {}</td></tr><tr><td>IsStepManualStart(int stepIndex)</td><td>Check whether a step requires manual triggering.</td><td>if (IsStepManualStart(0)) {}</td></tr><tr><td>TurnOffTutorial()</td><td>Turns off tutorial. Useful for switching between different tutorials on the same scene.</td><td><code>sceneReferences.TurnOnffTutorial();</code></td></tr><tr><td>TurnOnTutorial()</td><td>Launches tutorial on the scene. Useful if Autostart is set to false.</td><td><code>sceneReferences.TurnOnTutorial();</code></td></tr><tr><td>TranslateAllTutorial(InputStringsScriptableObject.Language language)</td><td>Translates all tutorial hints into one of the supported languages.</td><td><code>sceneReferences.InputStringsScriptableObject.Language.Italian);</code></td></tr><tr><td>TranslateAllTutorialByString(string language)</td><td>Translates all tutorial hints into any language present in CSV file (finds header with this string).</td><td><code>sceneReferences.TranslateAllTutorialByString("Polish");</code></td></tr><tr><td>ChangeStepVisualText(int stepIndex, string textValue, TextToChange textField)</td><td>It is used to pass custom text to the selected hint of the selected step in runtime.</td><td><code>sceneReferences.ChangeStepVisualText(2, "Your text", TextToChange.PointerText)</code></td></tr><tr><td>StartTutorialStep(int stepIndex)</td><td>Starts a specific tutorial step by its index and disables others.</td><td><code>sceneReferences.StartTutorialStep(2);</code></td></tr><tr><td>AsyncStartTutorialStep(int stepIndex)</td><td>Starts a specific tutorial step by its index and doesnt disable others.</td><td><code>sceneReferences.AsyncStartTutorialStep(2);</code></td></tr><tr><td>StartTutorialStepWithTargets(int stepIndex, List targetObjects, bool stopOtherSteps)</td><td>Starts a tutorial step with custom target GameObjects.</td><td><code>sceneReferences.ForceCompleteStep(2, myGameObjectList, false);</code></td></tr><tr><td>ForceCompleteStep(int stepIndex)</td><td>Finishes the step by setting its status to "Done" regardless of the completion conditions.</td><td><code>sceneReferences.ForceCompleteStep(2);</code></td></tr><tr><td>ForceCompleteTutorial()</td><td>Completes all tutorial steps on the scene without exception, marking as Done.</td><td><code>sceneReferences.ForceCompleteTutorial();</code></td></tr><tr><td>SkipTutorial()</td><td>Skips tutorial steps, either by using ForceCompleteTutorial or through custom logic (to complete only selected steps).</td><td><code>sceneReferences.SkipTutorial();</code></td></tr><tr><td>SkipActiveTutorialModule()</td><td>Skips the tutorial selectively, according to the specified list of steps.</td><td><code>sceneReferences.SkipActiveTutorialModule();</code></td></tr><tr><td>ResetTutorialStep(int stepIndex)</td><td>Disables the step along with its visuals by setting its status to "NotDoneYet".</td><td><code>ResetTutorialStep(0);</code></td></tr><tr><td>HideTutorial()</td><td>Resets all currently displaying tutorial steps.</td><td><code>sceneReferences.HideTutorial();</code></td></tr><tr><td>ContinueTutorial()</td><td>After a reset, attempts to automatically resume steps that were previously paused.</td><td><code>sceneReferences.ContinueTutorial();</code></td></tr></tbody></table>

3. It is recommended to set the steps you call from the script to **Start Step** → **Manually Call** to ensure unified control over execution.
4. Button inside of any tooltip prefab can also call public methods.

<table><thead><tr><th width="200">UIGraphicAnimation Method</th><th width="275">Description</th><th>Call Example</th></tr></thead><tbody><tr><td>InitializeByConfirm()</td><td>It is triggered upon button click and sets BlockedByButton to false in the step. Then, the step continues until the player meets the main condition.</td><td><img src="/files/SpO750lgvFTYnqFQUAgn" alt="" data-size="original"></td></tr><tr><td>FinishStep()</td><td>Can also be triggered by a button to immediately complete the step upon click.</td><td><img src="/files/0IGy0IYXdme5RHEJ5STm" alt="" data-size="original"></td></tr><tr><td>FinishStepAndSkipTutorial()</td><td>Can also be triggered by a button to complete the step upon click and skip the whole tutorial.</td><td></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://octanta-studio.gitbook.io/automatic-tutorial-maker-for-unity-in-game-tips/usage-guide/advanced-manual-step-calls.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
