> 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.addconditiondynamic.md).

# Interactable.AddConditionDynamic

<mark style="color:blue;">public void</mark> <mark style="color:yellow;">AddConditionDynamic</mark>(\
&#x20;    <mark style="color:$success;">Component</mark> <mark style="color:$primary;">leftComponent</mark>, <mark style="color:blue;">string</mark> <mark style="color:$primary;">leftMember</mark>,\
&#x20;    <mark style="color:$success;">ConditionOperator</mark> <mark style="color:$primary;">op</mark>,\
&#x20;    <mark style="color:$success;">Component</mark> <mark style="color:$primary;">rightComponent</mark>, <mark style="color:blue;">string</mark> <mark style="color:$primary;">rightMember</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;">AddConditionDynamic</mark>(\
&#x20;    <mark style="color:$success;">GameObject</mark> <mark style="color:$primary;">leftTarget</mark>,&#x20;<mark style="color:$success;">Type</mark> <mark style="color:$primary;">leftComponentType</mark>,&#x20;<mark style="color:blue;">string</mark> <mark style="color:$primary;">leftMember</mark>,\
&#x20;    <mark style="color:$success;">ConditionOperator</mark> <mark style="color:$primary;">op</mark>,\
&#x20;    <mark style="color:$success;">GameObject</mark> <mark style="color:$primary;">rightTarget</mark>,&#x20;<mark style="color:$success;">Type</mark> <mark style="color:$primary;">rightComponentType</mark>,&#x20;<mark style="color:blue;">string</mark> <mark style="color:$primary;">rightMember</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 **condition comparing two variables** (left vs. right) instead of a constant.\
You may pass components directly or use the GameObject + component type form.

```csharp
public Interactable interactable;

public void AddCondition()
{
    TestCondition testCondition = this.gameObject.GetComponent<TestCondition>()
    
    // Component + member names:
    interactable.AddConditionDynamic(
        testCondition,
        nameof(testCondition.myFloatVar),
        ConditionOperator.Equal,
        testCondition,
        nameof(testCondition.mySecondFloatVar));
    
    // From the second condition on, choose And/Or as needed:
    interactable.AddConditionDynamic(
        testCondition,
        nameof(testCondition.myFloatVar), // Tambem podemos passar: "myFloatVar"
        ConditionOperator.Equal, // Cheque quais variaveis suportam quais operações
        testCondition,
        nameof(testCondition.mySecondFloatVar));
        LogicalJoin.Or);
        
    // GameObject + Type overload:
    interactable.AddConditionDynamic(
        gameObject, typeof(TestCondition), "myFloatVar",
        ConditionOperator.Equal,
        gameObject, typeof(TestCondition), "mySecondFloatVar");
}
```
