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

# Design - Structure

Getting Attributes onto an Agent is easy.

#### Relevant Components

`AgentAttributes`, `AgentVitals`, `AttributePreset`, &#x20;

#### Typical Setup

1. Create an `AttributePreset` in the Vault Dashboard. Configure it as you wish.
2. Add `AgentAttributes` and `AgentVitals` components to a GameObject.&#x20;
3. Point the `AgentAttributes` to the `AttributePreset` you've made in the Vault.
4. Profit.

#### Scenario A (ideal)

Structure :

* Scene GameObject "Player Bob" (`YourPlayerClass`)(`AgentAttributes`) (`AgentVitals`) where `YourPlayerClass` implements `IAttributeUser.`

That's it, you're done. If you're using Mirror then the complier directives will automatically enable the networking code for `AgentVitals.cs` (incomplete feature as of 2/2021). Just make sure you properly interact with the server/client in your own code.&#x20;

Refer to the the **In Concept** and **In Practice** page for more information.
