Yup. That's partially why this has been so confusing, all the activation handoff code has been present since day 1, but behaves in a (seems to me) inconsistent manner.
Let's focus back on the bear puzzle, since it was changed the most and is now completely nonfunctional, but *looks* like it should work fine.
In the bear; properties DoorController == EFTH_PZ1_DoorController (XMarker), LightController == EFTH_PZ1_LightController (XMarker). No other linkages present for references.
Scriptname EFTH_Puzzle01Control extends ObjectReference ObjectReference property DoorController auto ObjectReference property LightController auto Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if (aiItemCount > 0) DoorController.activate(game.getplayer()) debug.trace("DoorController called active by" + self) LightController.activate(game.getplayer()) debug.trace("LightController called active by" + self) endIf endEvent
in EFTH_PZ1_DoorController; properties ControlledDoor == EFTH_PZ1_ExitDoor (BldWoodPDoor01), no other linkages present
Scriptname EFTH_DoorControlActivator extends ObjectReference objectReference property ControlledDoor auto Event onActivate(ObjectReference akActionRef) debug.trace("DoorController recieved activation from " +akActionRef) ;ControlledDoor.Activate(game.getplayer()) if (ControlledDoor.isLocked()) ControlledDoor.unlock() ControlledDoor.setOpen() endIf endEvent
Note that I'm no longer trying activate or using a script in the door object, I'm just checking for locked condition before unlock/open.
in EFTH_PZ1_LightController; properties IndicatorLight == EmergencyLightAnim01 0700645C, no other linkages for ref
Scriptname EFTH_IndicatorLightScript extends ObjectReference ObjectReference property IndicatorLight auto bool ScriptActivated event onInit() ScriptActivated = 0 endEvent event onActivate(objectReference akActionRef) debug.trace("LightController recieved activation from " +akActionRef) if (ScriptActivated == 0) ScriptActivated = 1 IndicatorLight.PlayAnimation("Green") endIf endEvent
All that was changed here is an attempt to avoid changes to the light state (set green anim once and leave it alone) with possible errant activations.
Change in behavior? Nothing happens at all. Door's locked inaccessible and stays that way, no matter how I stuff the bear. Light never plays anim (turns green).
So... not passing activate()? If I use the activate parent link, everything fires when I open/close the bear's inventory unless I use that vanilla doorUnlockOnActivate script in the door itself, and I can't leave the door usable after that.
Ignore the other two puzzles until I can get this one working, I have a feeling they'll fall in line once the issue's fixed with this one.