> For the complete documentation index, see [llms.txt](https://modeltrainscript.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://modeltrainscript.gitbook.io/docs/manual/automation/examples/auto-switch-turnout.md).

# Auto switch turnout

This example demonstrates a self-resetting turnout, inspired by the automatically switching turnouts (Rückfallweiche) of the HSB narrow-gauge railway in the Harz mountains, Germany.

{% embed url="<https://youtu.be/RQTrhCL2wRk>" %}

## Concept

The turnout has a fixed default position. When a train approaches from the diverging side, the turnout switches direction. Once the train has passed, the turnout automatically resets to its default position after a delay. While resetting, the signal warns other trains not to enter since the turnout state may change.

## Script features

* **Sensor trigger** — The script is triggered when a sensor detects the turnout is in a non-default state.
* **Signal protection** — The signal switches to a warning state during the reset period and back to proceed afterwards.
* **Retry mechanism** — If the turnout does not return to its default state (e.g. because a train is still on it), the script retries automatically.
* **Manual override** — Conditional sections prevent the auto-reset from executing when the turnout was switched manually.

## Demo

{% embed url="<https://youtu.be/dDQjgpwPkYA>" %}
