> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Unity Quickstart

> Install the HyperX SDK in Unity and create your first user.

This guide connects a production HyperX project to a Unity client. Unity 2021 LTS or later with `.NET Standard 2.1` compatibility is recommended.

## 1. Download the SDK DLL

Download [HyperX.netstandard2.1.dll](https://public-assets.hyperx.dev/dotnet-sdk-releases/HyperX.netstandard2.1.dll).

## 2. Add It to Unity

Place the DLL under `Assets/Plugins`.

<img src="https://mintcdn.com/hyperx/qtojUqZ7CXN0cWTT/images/quickstart-unity/1.png?fit=max&auto=format&n=qtojUqZ7CXN0cWTT&q=85&s=7a8d35e5763e6fe15ace51f5c947a037" width="1636" height="580" data-path="images/quickstart-unity/1.png" />

In Unity `Player Settings`, set `Api Compatibility Level` to `.NET Standard 2.1` or later.

<img src="https://mintcdn.com/hyperx/qtojUqZ7CXN0cWTT/images/quickstart-unity/3.png?fit=max&auto=format&n=qtojUqZ7CXN0cWTT&q=85&s=f405711ae28fbe3e65f4f56d7ad807bd" width="1042" height="466" data-path="images/quickstart-unity/3.png" />

## 3. Copy the Project Code

Open the project in Console and copy its project code from the URL or project settings.

<img src="https://mintcdn.com/hyperx/qtojUqZ7CXN0cWTT/images/quickstart-unity/2.png?fit=max&auto=format&n=qtojUqZ7CXN0cWTT&q=85&s=275f09d91a34c01abb65582888973479" width="1736" height="318" data-path="images/quickstart-unity/2.png" />

## 4. Initialize and Create a Guest User

Attach this script to an empty GameObject and replace `PROJECT_CODE`.

```cs theme={null}
using UnityEngine;

public class HyperXBootstrap : MonoBehaviour
{
    async void Start()
    {
        await HyperX.Core.Init("PROJECT_CODE");

        var player = await HyperX.Core.Users.StartGuestSession(
            authenticationToken: SystemInfo.deviceUniqueIdentifier,
            country: "US",
            language: "en"
        );

        var me = await player.Me();
        Debug.Log($"HyperX user: {me.Id}, name: {me.Name}");
    }
}
```

Run the scene, then confirm the created user on the Console `Users` page.

`StartGuestSession` returns a player session that carries the access token. After that, authenticated calls such as user data, ranking, coupons, notifications, and chat can use `player.PutUserDataJson(...)`, `player.SubmitRankingJson(...)`, and `player.Notifications(...)` without passing `session.AccessToken` through every call.

## Next Steps

<CardGroup cols={2}>
  <Card icon="user" href="/guide/en/dotnet/user-lifecycle" title="User Lifecycle">
    Add guest, custom, social login, and session refresh.
  </Card>

  <Card icon="database" href="/guide/en/dotnet/data-management" title="Data Management">
    Choose shared data, user data, or character data.
  </Card>

  <Card icon="box-open" href="/guide/en/dotnet/public-storage" title="Public Storage">
    Check file hashes and download only changed CDN files.
  </Card>

  <Card icon="message-circle" href="/guide/en/dotnet/social-communication" title="Social Features">
    Add friends, mail, messages, guilds, and notifications.
  </Card>
</CardGroup>
