> For the complete documentation index, see [llms.txt](https://fast-studios.gitbook.io/press-e/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fast-studios.gitbook.io/press-e/manual/scripting/interactable/interactable.addkeycondition.md).

# Interactable.AddKeyCondition

<mark style="color:blue;">public void</mark> <mark style="color:yellow;">AddKeyCondition</mark>(\
&#x20;    <mark style="color:blue;">string</mark> <mark style="color:$primary;">keyName</mark>,\
&#x20;    <mark style="color:$success;">LogicalJoin</mark> <mark style="color:$primary;">joinWithPrevious</mark> = <mark style="color:$success;">LogicalJoin</mark>.<mark style="color:blue;">And</mark>)

<mark style="color:blue;">public void</mark> <mark style="color:yellow;">AddKeyCondition</mark>(\
&#x20;    <mark style="color:$success;">Key</mark> <mark style="color:$primary;">specificKey</mark>,\\

&#x20;    <mark style="color:$success;">LogicalJoin</mark> <mark style="color:$primary;">joinWithPrevious</mark> = <mark style="color:$success;">LogicalJoin</mark>.<mark style="color:blue;">And</mark>)

Adds a **key condition** to the Conditions list.\
You can provide a **key name** or a **specific `Key`** instance.

```csharp
public Interactable interactable;

public void AddKeyCondition()
{    
    // By key name (GameObject auto-resolved):
    interactable.AddConditionDynamic("Master Key");
    
    // From the second condition on, join with previous:
    interactable.AddConditionDynamic(
        "Master Key",
        LogicalJoin.Or);
        
    // By specific Key component:
    Key masterKey = this.gameObject.GetComponent<Key>();
    
    interactable.AddConditionDynamic(
        masterKey,
        LogicalJoin.Or);
}
```
