# Requisite Attributes

<figure><img src="https://2431624982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MY3N_li2jPq7az6mYfq%2Fuploads%2FJyVnKHRbdiWhEoifqNba%2FScreenshot%202023-06-16%20at%207.52.33%20PM.png?alt=media&#x26;token=fbb31923-4ae4-4dde-b700-3b1d89d16acd" alt=""><figcaption><p>Of course anything with an "of the Gods" attribute must be good..right??</p></figcaption></figure>

The Requisite Attributes section allows you to add both Required and Incompatible attributes.

## **Required Attributes**

As seen above, the `ItemAttribute` "Rare" is required, meaning that when "of Ice" is added to a `GameItemAttributeList` (perhaps the one that is attached to a `GameItemObject`), the "Rare" `ItemAttribute` will be added as well, replacing any other "Rarity" attributes.

## **Incompatible Attributes**

The "of Ice" `ItemAttribute` is incompatibel with the Flaming `ItemAttribute`.

This means that if the Flaming `ItemAttribute` is already present in a `GameItemAttributeList`, `Add()` and `ReceiveTransfer()` methods will return null, being unable to add the "of Ice" attribute to the list.

{% hint style="warning" %}
Setting an attribute incompatile does not automatically create the connection the other way around. The logic around incompatiblity and required attributes may not be the same in every project, so rather than dictate, we let you decide how to handle things.
{% endhint %}
