public override void Use(Mobile from) { //find any keys on the person OR on the ground to avoid exploit. if (Key.ContainsKey(from.Backpack, KeyValue)) { Key.RemoveKeys(from.Backpack, KeyValue); from.LocalOverheadMessage(MessageType.Regular, 0x3B2, false, "As you unlock the door, the key crubles in your hand."); // You quickly unlock, open, and relock the door BaseDoor link = (BaseDoor)base.Link; //unlock door and its link base.Locked = false; if (link != null) { link.Locked = false; } } ArrayList keys = new ArrayList(); foreach (Item i in this.GetItemsInRange(5)) { if (i is Key) { keys.Add(i); } } foreach (Key k in keys) { k.Delete(); } base.Use(from); }