> For the complete documentation index, see [llms.txt](https://travljen.gitbook.io/unit-system/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://travljen.gitbook.io/unit-system/getting-started/database.md).

# Database

### Editor

**SystemDatabase** is a scriptable object used for managing system **assets**, their unique **ID**s. Initially designed to be used in **Editor**, but it may also be accessed at **runtime**.

You can **register** all assets in the project here or **clear** the database. But creating a new assets should be done through [Manager Window](/unit-system/getting-started/manager-window.md).

<figure><img src="/files/R3q1H4Tk3hWyZz5JTK6I" alt=""><figcaption><p>Database ScriptableObject UI</p></figcaption></figure>

### Runtime

Items in the database are scriptable objects as well, so they can be as any other asset in unity.

Alternatively you can retrieve them using their IDs from this database.

```csharp
[SerielizeField] private SystemDatabase database;
[SerielizeField] private int resourceID;

private void Awake()
{
    // Or at runtime
    // var database = SystemDatabase.GetInstance();
    
    // Find the asset using its ID.
    var resource = database.FindAssetById(resourceID);
}
```
