public override void OnQuestCancelled() { PlayerMobile pm = Instance.Player; Container pack = pm.Backpack; if (pack == null) { return; } Type checkType = m_Objective.AcceptedType; Item[] items = pack.FindItemsByType(checkType, false); foreach (Item item in items) { if (item.QuestItem && !MLQuestSystem.CanMarkQuestItem(pm, item, checkType)) // does another quest still need this item? (OSI just unmarks everything) { item.QuestItem = false; } } }