# How To

## New admin lockpick (inherit from CRDTN\_AdminLockPick)

{% code fullWidth="false" %}

```cpp
class AdminLockPick_NewOfYourChoice : CRDTN_AdminLockPick
{
    displayName = "Universal Admin Lockpick - Whatever";
    keys[] = {"MyVeryCoolKey"};
    descriptionShort = "Description goes here";
};
```

{% endcode %}

## New key (inherit from CRDTN\_Key\_Base)

```cpp
class MyVeryCoolKey : CRDTN_Key_Base
{
    scope = 2;
    displayName = "My very cool key";
    descriptionShort = "Modded key to unlock new types of doors I use.";
};
```

If you follow the instructions and will use something like above, when you use the `AdminLockPick_NewOfYourChoice` on the doors, it will automatically generate the config object for the certain doors on that particular location.&#x20;

## Extending your current keys / cards and using keys from other mods

I cannot guarantee the others mods will work properly because people are doing a lot of things differently.&#x20;

But it should be able to use your own cards/keys by just extending the class by my base class. There are basically 2 approaches:&#x20;

* Set the actions on your class
* Inherit from my base class&#x20;

```csharp
// Add Actions
override void SetActions()
{
    super.SetActions();
    AddAction(CRDTN_ActionUnlockLockedDoor);
}

// Inherit your class from CRDTN_LockedDoors_ItemBase
class YOUR_NEW_CLASSTYPE : CRDTN_LockedDoors_ItemBase {};

```
