Here is the general structure of my mod. Quests are in Green, Aliases are in Yellow, scripts are in Blue.
Quest _DE_Main_1_6: Never runs. Is set to stage 10 to begin the mod's functionality.
Script _DE_EPMonitor_1_6 extends Quest: Attached to _DE_Main_1_6. Runs the whole show. Has continuously running RegisterForSingleUpdate(). Accesses other script's properties to gather information.
Alias DE_Player: Filled by the Player reference. Attached to _DE_Main_1_6. Has several scripts attached:
Script _DE_ClothingMonitor_1_6 extends ReferenceAlias: Monitors all armor / clothing equip / unequip events. Runs "on demand" only when an OnObjectEquip() event is sent by DE_Player.
Script _DE_CookingPot_MISC_Script extends ReferenceAlias: Watches for OnItemRemoved() event from DE_Player to swap a MiscItem cooking pot item for the furniture variant. Runs "on demand".
Script _DE_FoodDetect extends ReferenceAlias: Watches for OnObjectEquipped() events sent by DE_Player to detect when foods have been eaten. Runs "on demand".
Script _DE_WoodHarvestScript extends ReferenceAlias: Watches for an OnObjectEquipped() event from DE_Player when a Woodcutter's Axe has been equipped. Runs "on demand".
Quest _DE_PackageQuest: Never runs. Holds aliases filled by the player with certain AI packages attached, for driving the player with AI packages. In the current form, there is only a single alias attached:
Alias _DE_WoodHarvestingAlias: filled by the Player; has a single AI package attached, used for a Wood Harvesting cutscene when chopping wood. (Player paths from point A to B ).
Quest _DE_TrackingQuest: Starts game enabled. Contains quest objectives directing player to go to an Inn to find a book in an Inn, which sets _DE_Main_1_6's stage to 10, which causes _DE_Main_1_6's logic to start firing. Has two papyrus fragments attached that SetObjectiveDisplayed() and SetObjectiveCompleted().
I hope this is enough of an overview for someone to be able to tell me what the best way to update this mod for my users would be. I publish on Skyrim Nexus in a BSA-archived version as well as a "No BSA" version with all loose files. I also publish on Steam Workshop (which is BSA-archived regardless).
In the past, when I made a change to _DE_EPMonitor_1_6, it resulted in several duplicate versions of the script firing when someone upgraded the mod when loading an existing save game. The solution was to duplicate the quest that it was attached to (_DE_Main_1_6) and delete the old one. I don't know if this trick still works or if this is even the desirable thing to do.
Thank you very much for any insight and reading the multi-colored mess I just posted up above.