OK, I tried, I don't know, I'm confused.
I made a script where you stick an item (alias: SoulGem1) into a box, and that should complete the objective. I added the item to a list, and I set up the items alias.
Scriptname ltowerSoulgemReceptacleScript extends ObjectReference Conditional;"Work, damn it!"~ScoutReferenceAlias Property SoulGem1 Auto Quest Property ltowerQuestPart1 Auto int Property Used Auto ConditionalEvent OnInit() AddInventoryEventFilter(ltowerQuestSoulGemList)EndEventEvent OnItemAdded(Form BaseItem, int ItemCount, ObjectReference ItemReference, ObjectReference SourceContainer) if Used == 0 if ItemReference == SoulGem1.GetReference() Debug.MessageBox("It works") ltowerQuestPart1.SetObjectiveCompleted(20) Used=1 endif endifEndEventFormList Property ltowerQuestSoulGemList Auto
So, from this script, it should:
- Exclude items not on list
- Place item in box
- Check if item in box is Soulgem1
- Display message on screen "It Works!" and completes objective
Very simple stuff, or it should be. For some reason that's beyond me; it's doing just the opposite. It's ignoring Soulgem1 and Soulgem1 only. If you place anything else in the box, it completes the objective and displays the debug message.
Seriously, this is beyond me. Not only is my form list check being ignored for some reason
if ItemReference == SoulGem1.GetReference()
is acting like
if ItemReference != SoulGem1.GetReference()