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

# Field attributes

### DataObjectDropdown

<div align="left"><figure><img src="/files/LEalrOwHBCDCBEeN8A2R" alt=""><figcaption></figcaption></figure></div>

Enables a useful dropdown field with additional features such as unassign, create new and find DataObject. When using this attribute outside of a DataObject - like in a MonoBehaviour, it is necessary to add a reference to the DataLibrary object and pass the name of the DataLibrary field.

* dataLibraryFieldName: the name of the data library field
* includeSubtypes: if true, dropdown also shows derived types
* tooltip: set an additional etooltip

```csharp
public class Enemy : MonoBehaviour
{
    public DataLibrary data;
    
    [DataObjectDropdown("data")]
    public EnemyData enemyData;
}
```

### ExposeToInspector

<figure><img src="/files/0fNhlEeTp2walE4TJefV" alt=""><figcaption></figcaption></figure>

Use the ExposeToInspector attribute to mark fields which should be displayed in the popup inspector on the DataObjectDropdown property drawer.

```csharp
public EnemyData : DataObject
{
       [ExposeToInspector]
       public int health;
       [ExposeToInspector]
       public int speed;
       [ExposeToInspector]
       public GameObject prefab
       
       public Vector3 position;
}
```

### DatabrainSerialize

Mark fields which should be serialized by Databrain to a file with the \[DatabrainSerialize] attribute. Only fields of DataObjects which are in the runtime-DataLibrary will be serialized.

<pre class="language-csharp"><code class="lang-csharp"><strong>[DataObjectAddToRuntimeLibrary]
</strong><strong>public EnemyData : DataObject
</strong>{
       [ExposeToInspector]
       [DatabrainSerialize]
       public int health;
       [ExposeToInspector]
       [DatabrainSerialize]
       public int speed;
       [ExposeToInspector]
       public GameObject prefab
       
       [DatabrainSerialize]
       public Vector3 position;
}
</code></pre>

### Border

<div align="left"><figure><img src="/files/6PwEg9asxg3sKtRfOtc9" alt=""><figcaption></figcaption></figure></div>

Set a border around a field

* borderWidth: The width of the border
* color: The color of the border

### HorizontalLine

<div align="left"><figure><img src="/files/HxbVZP6pAuyTNZI4ig88" alt=""><figcaption></figcaption></figure></div>

Create a horizontal line with custom width and color

* height: height of the line
* color: color of the line (DatabrainColor)

### Dropdown

<div align="left"><figure><img src="/files/c6J6j55ql6263bIZIUjv" alt=""><figcaption></figcaption></figure></div>

Create a dropdown selection

```csharp
// string
private List<string> dropdownOptions = new List<string> { "A", "B", "C" };

[Dropdown("dropdownOptions")]
public string dropdown;

// integer
private List<int> dropdownIntOptions = new List<int> { 0, 1, 2 };

[Dropdown("dropdownIntOptions")]
public int dropdownNumber;
```

### Foldout

Group fields by foldouts (only works in the Databrain editor)

```csharp
[Foldout("curves")]
public AnimationCurve curve1;
[Foldout("curves")]
public AnimationCurve curve2;

[Foldout("Numbers")]
public int numberOne;
[Foldout("Numbers")]
public int numberTwo;
```

### InfoBox

<div align="left"><figure><img src="/files/m1B57Y3iMeztRcqdyzPl" alt=""><figcaption></figcaption></figure></div>

Shows an info box.

* infoBoxtype: The type of the infoBox (InfoBoxType.Normal / InfoBoxType.Warning / InfoBoxType.Error
* text: The text message

### EnumFlags

<div align="left"><figure><img src="/files/3CsFD42UzrCFvmpy6YIf" alt=""><figcaption></figcaption></figure></div>

Shows an enum selection toggle group for choosing multiple enums.

```csharp
public enum TerrainType
{
    none = 0,
    sand = 1,
    earth = 2,
    water = 4,
    rock = 8
}

[EnumFlags]
public TerrainType terrainType;
```

### Hide

Hides a field

### Layer

Shows a layer dropdown.

```csharp
[Layer]
public string layer;
[Layer]
public int layerInt;
```

### Slider

Create a slider with min and max value

### Scene

Create a scene dropdown field

### ShowAssetPreview

<div align="left"><figure><img src="/files/zTX76oSuv4oOH3o3EpSb" alt=""><figcaption></figcaption></figure></div>

Creates a preview window of assigned game object

* width
* height

### Tag

Creates a tag dropdown field.

```csharp
[Tag]
public string tag;
```

### Textfield

Creates a multiline textfield

### Title

Adds a title to the field with an optional border.

* title
* borderColor
* textColor
