> 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/interaction-manager/interactionmanager.getmissingkeys.md).

# InteractionManager.GetMissingKeys

Returns a list of tuples representing **missing key requirements**:

* The `Key` entry is filled when a condition requires a **specific Key**;
* The `string` entry is filled when the condition is **name-based**.

(One of the tuple items may be `null` depending on the condition.)

```csharp
public Interactable mainDoor;

void NewInteractionDistance()
{
    foreach ((Key k, string s) in InteractionManager.singleton.GetMissingKeys(mainDoor);
    {
        if (k != null) Debug.Log(k.KeyName); // shows the specific key name
        if (s != null) Debug.Log(s);         // shows the name used in the system
    }
    
    // Or with a for loop:
    
    List<(Key, string)> missingKeys = GetMissingKeys(mainDoor);
    for (int i = 0; i < missingKeys.Count; i++)
    {
        Key currentSpecifcKey = missingKeys[i].Item1;
        string currentKeyName = missingKeys[i].Item2;

        if (currentSpecifcKey != null) Debug.Log(missingKeys[i].Item1.KeyName);
        if (String.IsNullOrEmpty(currentKeyName) == false) Debug.Log(currentKeyName);
    }
}
```
