# Getting Started

1. To get started, go to **Tools -> UHFPS -> Setup -> Add HEROPLAYER.** This will add the **GAMEMANAGER** and **HEROPLAYER** objects to the scene.

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

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

{% hint style="info" %}
If you remove **HEROPLAYER** or **GAMEMANAGER** from the scene or lose some references between the Player and the Game Manager, you can select the <mark style="color:yellow;">**Fix Missing**</mark> option to fix the setup.

If you have made any changes to the **Player** or **Game Manager** and want to reload **HEROPLAYER** or **GAMEMANAGER** to a new one, select <mark style="color:yellow;">**Reload Setup**</mark>. Be aware that this will require you to re-set any level-specific scriptables or saveables.
{% endhint %}

{% hint style="danger" %}
The player's rotation must always be zero. When you rotate the player to face a specific direction, the rotation is automatically transferred to the camera's look rotation, and the player's rotation is reset to zero.
{% endhint %}

When you lose the reference between the game manager and the player, you can reassign them by following this guide:

{% content-ref url="/pages/BpJulKB3c66hKERumjgA" %}
[References](/uhfps/getting-started/references.md)
{% endcontent-ref %}

2. In the **GAMEMANAGER**, navigate to **Player Presence Manager** and select **Player Unlock Type** to specify whether you prefer **Automatic** or **Manual** unlocking of the player.

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

{% hint style="info" %}
With the **Player Unlock Type** set to **Automatically**, the player will be unlocked either at the beginning of the game or when loading a saved game.
{% endhint %}

{% hint style="info" %}
When the **Player Unlock Type** is set to **Manually**, you need to invoke **`PlayerPresenceManager.UnlockPlayer()`** in order to unlock the player or **`PlayerPresenceManager.FadeBackground()`** to fade out the background through your custom script. This option is useful for playing cutscenes or performing other actions before fully engaging in the game.
{% endhint %}

Here's how you can unlock the player manually:

```csharp
using UHFPS.Runtime;

void Start()
{
    // fade out the background and unlock the player
    PlayerPresenceManager.Instance.UnlockPlayer();
    
    // or
    
    // fade out the background
    PlayerPresenceManager.Instance.FadeBackground(true, 
        () => { /* custom actions after fade */ });
}
```


---

# 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://docs.twgamesdev.com/uhfps/getting-started.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.
