> For the complete documentation index, see [llms.txt](https://saitama-studio.gitbook.io/essential-systems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://saitama-studio.gitbook.io/essential-systems/systems/interface.md).

# Interface

<figure><img src="/files/LAgJnZh2C0hZs44fVgrX" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
You **must** add the `Interface <your input system>` to the **build settings**.\
For example: if you're using the New Input System you add the `Interface New` to the build settings.
{% endhint %}

The interface is added to any scene using `LoadScene(scene, LoadSceneMode.Additive)`. This will add the interface on top of the current activated scene.

This can be done a couple of different ways. For example; you can add a script to every scene where you want the interface to accessible that looks something like the following:

```csharp
public class AddInterface : MonoBehaviour
{
    private void Start()
    {
        SceneManager.LoadScene("Interface", LoadSceneMode.Additive);
    }
}
```

Alternatively, we can have a `static method` that adds the interface whenever **any** scene is loaded:

```csharp
public static class AddInterface
{
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    private static void Init()
    {
        SceneManager.LoadScene("Interface", LoadSceneMode.Additive);
    }
}
```

In the interface we can add whatever UI logic we want. For example, as seen in the demo, we can add a `Pause` menu.
