void main()
{
    object oPC = GetEnteringObject();
    string sKeyColor = GetStringLowerCase(GetName(OBJECT_SELF));
    string sShaftColor;
    object oKey = GetItemPossessedBy(oPC, "nk_fp_key"+sKeyColor);
    if (GetIsObjectValid(oKey))
    {
        object oBrain = GetNearestObjectByTag("nk_fp_brain", OBJECT_SELF, 1);
        SetLocalInt(oBrain, GetName(OBJECT_SELF), 1);
        SetLocalObject(OBJECT_SELF, "KEYHOLDER", oPC);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oPC);
        SignalEvent(oBrain, EventUserDefined(1001));
    }
}